저번에 올렸던 게시글처럼 (https://dongdu-blog.tistory.com/23)
chcon -t container_file_t /host/path/prometheus/data
과 같은 코드를 통해 폴더의 권한을 해제해준 다음
# prometheus Run
docker run -it -d -p 29093(임의의 포트번호):9090 -v /host/path/prometheus/data:/prometheus --name containername image/prometheus:1.0(version)
# grafana Run
docker run -it -d -p 23000(임의의 포트번호):3000 -e GF_SECURITY_ADMIN_USER=[id] -e GF_SECURITY_ADMIN_PASSWORD=[pw] -e GF_USERS_ALLOW_SIGN_UP=false -e GF_AUTH_ANONYMOUS_ENABLED=true -e GF_USERS_ALLOW_ORG_CREATE=false -v /host/path/grafana/data:/var/lib/grafana --name containername2 image/grafana:1.0
위와 같이 prometheus와 grafana를 Run해주면 도커 컨테이너가 성공적으로 올라가게 된다.
(docker-compose.yml을 이용해도 마찬가지임)
이렇게 생성된 grafana를 웹페이지에 iframe안에 띄우려고 했는데....
1. 문제상황
<iframe src="grafana url" width="100%" height="700px">
src에 grafana 링크를 넣었는데 안열리는 모습이다.
grafana링크를 그냥 주소창에 넣엇을때는 아주 잘 나오는데.. iframe에 넣었더니 안나온다.
또,
Refused to display 'grafana url' in a frame because it set 'X-Frame-Options' to 'deny'.
이런식의 에러메세지가 나온다.
2. 문제 파악
검색 결과, grafana를 생성할 때, allow_embedding값을 true로 만들면 된다고 한다.
다들 도커 내에 생성된 grafana.ini 파일 안에 있는 값을 직접 바꾼다는데,
내 코드의 경우 config file을 지정해두고 run하는게 아니여서, grafana.ini 파일을 바꾼다고 해도 적용되지 않을것 같았다.
그렇다면, 어떻게 이 값을 바꿔서 생성할 수 있을까? 생각해봤다.
좀 쉬운 방법을 생각해 봤는데,
docker run 할 때 -e옵션에 추가하면 다른거 건들일 필요도 없고 편할거같은데, 가능할까? 라는 생각이 들었다.
(docker-compose.yml의 경우 environment)
근데 -e에 GF_SECURITY_ADMIN_USER 옵션같은걸 보면 대문자고.. GF같은거도 있고... 아무튼 그냥 allow_embedding=true 처럼 쓸 순 없을 것 같았다.
3. 문제 해결
최대한 제일 쉬운 방법인 -e 옵션을 이용해 보려고 엄청 찾아봤다!
역시 가능했다. 비교적 빠르게 해답을 발견해서 너무 기뻤다.
방법은,
-e에 GF_SECURITY_ALLOW_EMBEDDING=true 를 넣어주는것
(docker-compose.yml의 경우 environment에 '- GF_SECURITY_ALLOW_EMBEDDING=true' 추가)
docker run -it -d -p 23000(임의의 포트번호):3000 -e GF_SECURITY_ADMIN_USER=[id] -e GF_SECURITY_ADMIN_PASSWORD=[pw] -e GF_USERS_ALLOW_SIGN_UP=false -e GF_AUTH_ANONYMOUS_ENABLED=true -e GF_USERS_ALLOW_ORG_CREATE=false -e GF_SECURITY_ALLOW_EMBEDDING=true -v /host/path/grafana/data:/var/lib/grafana --name containername2 image/grafana:1.0
이렇게 수정해 준 후 실행시키면~!
보안상 전체 화면을 캡쳐하긴 곤란하기 때문에.. 일부만 캡쳐해서 iframe인지 좀 애매할 수 있는데,
실제로 iframe에서 열었고 잘 된다!
비교적 쉽게 해결이 되어서 다행이었다. 아래는 도움 받은 링크다.
https://www.reddit.com/r/grafana/comments/g49b1q/how_to_set_allow_embeddingtrue/
From the grafana community on Reddit: How to set ALLOW_EMBEDDING=true?
Explore this post and more from the grafana community
www.reddit.com
문제가 있다면 아래에 댓글 달아주세요. 빠르게 답하도록 하겠습니다!
'IT > 도커' 카테고리의 다른 글
[docker] GPU를 사용하는 도커 컨테이너 띄우기(2) - tensorflow-gpu 이미지 사용하기 (1) | 2024.08.08 |
---|---|
[docker] GPU를 사용하는 도커 컨테이너 띄우기(1) - nvidia container toolkit 설정 (0) | 2024.08.02 |
[docker] Prometheus / Grafana - err="open data/queries.active: permission denied" 에러 해결 (SELinux) (1) | 2024.04.26 |
[docker] 도커 컨테이너 생성 시 일정 시간 이후 자동 삭제시키는 법 (sleep) (0) | 2024.04.09 |
[docker] 초보자의 도커 입문 - 도커 기본 command (0) | 2024.04.08 |