[Grafana] ssl key 발급 및 https 설정하기
- 인프라/그라파나 & 프로메테우스
- 2023. 1. 5. 22:32
참고
1. 개요
- grafana 에서 ssl key 를 발급 받아서, https 로 설정할 수 있습니다.
- grafana http -> https 로 변경하는 방법에 대해서 정리 진행합니다.
2. 리눅스 SSL 인증서 생성
- 그라파나 호스팅을 http 에서 https 로 바꾸려면, 먼저 SSL 키가 필요합니다.
- SSL 인증서 생성하는 방법은 다음과 같습니다.
- 참고로, 현재 CentOS Linux 환경에서 테스트 진행하였습니다.
- 다른 종류의 Linux 환경에서는 방법의 차이가 있을 수 있습니다.
- SSL 인증서 생성하려면, 다음 명령어를 입력해 줍니다.
openssl genrsa -out grafana.key 2048
- 위 명령어를 입력하게 되면, 아래와 같이 출력됩니다.
[monitoring]$ openssl genrsa -out grafana.key 2048
Generating RSA private key, 2048 bit long modulus
.....................+++
...+++
e is 65537 (0x10001)
3. 인증서 서명 요청 및 생성
- 앞서, SSL 인증서를 생성하였습니다.
- 다음으로, 인증서 서명 요청 및 생성을 진행해 보겠습니다.
- 명령줄에서 다음을 입력합니다.
openssl req -new -key grafana.key -out grafana.csr
- 다음과 같이 출력이 표시되어야 합니다.
[monitoring]$ openssl req -new -key grafana.key -out grafana.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [XX]:KR
State or Province Name (full name) []:GYEONGGI-DO
Locality Name (eg, city) [Default City]:YONGIN
Organization Name (eg, company) [Default Company Ltd]:system
Organizational Unit Name (eg, section) []:system
Common Name (eg, your name or your server's hostname) []:cicd-prod-grafana
Email Address []:bhjo@mirero.co.kr
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:system
An optional company name []:system
4. 인증서 출력
- 다음으로는 인증서를 출력해야 합니다.
- 인증서 출력하는 명령어는 다음과 같습니다.
openssl x509 -req -days 365 -in grafana.csr -signkey grafana.key -out grafana.crt
5. 인증서 확인
- 위 작업까지 완료 하였다면, SSL 인증서가 정상적으로 발급 되었습니다.
ls -al
명령어를 통해 실제로 인증서가 생성 되었는지 확인합니다.
[monitoring]$ ls -al
-rw-rw-r-- 1 mirero mirero 1338 Jan 5 09:02 grafana.crt
-rw-rw-r-- 1 mirero mirero 1143 Jan 5 09:02 grafana.csr
-rw-rw-r-- 1 mirero mirero 1679 Jan 5 08:59 grafana.key
- 위와 같이 인증서가 정상적으로 생성된 것을 확인할 수 있습니다.
6. grafana 도커 컴포즈 인증서 Volume 마운트
- 앞서, 생성한 인증서를 grafana 에서도 가지고 있어야 하기 때문에 Volume 마운트 진행하였습니다.
grafana:
image: grafana/grafana:9.3.2
container_name: grafana
volumes:
- ./grafana/data:/var/lib/grafana
- ./grafana/data/grafana.ini:/etc/grafana/grafana.ini
- ./grafana/data/grafana.crt:/etc/grafana/grafana.crt
- ./grafana/data/grafana.key:/etc/grafana/grafana.key
- ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards
- ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
- /etc/localtime:/etc/localtime
restart: unless-stopped
ports:
- '3000:3000'
expose:
- 3000
environment:
GF_RENDERING_SERVER_URL: http://renderer:8081/render
GF_RENDERING_CALLBACK_URL: http://grafana:3000/
GF_LOG_FILTERS: rendering:debug
GF_UNIFIED_ALERTING_SCREENSHOTS_CAPTURE: true
networks:
- mirero_net
labels:
group: "monitoring"
- 위와 같이
grafana.crt
,grafana.key
2개의 파일을 각각 volumes 환경에 추가해 주었습니다.
7. grafana.ini 파일 수정
- 1번부터 6번까지의 과정을 모두 완료하였다면, grafana.ini 옵션에서 http 를 https 로 변경해주는 작업만 해주면 됩니다.
- grafana.ini 옵션에서 server 관련 옵션에 아래와 같이 설정해 주면 됩니다.
[server]
# Protocol (http or https)
protocol = https
# The ip address to bind to, empty will bind to all interfaces
#http_addr =
# The http port to use
http_port = 3000
# The public facing domain name used to access grafana from a browser
;domain = grafana
# Redirect to correct domain if host header does not match domain
# Prevents DNS rebinding attacks
;enforce_domain = false
# The full public facing url you use in browser, used for redirects and emails
# If you use reverse proxy and sub path specify full url (with sub path)
root_url = https://localhost:3000
# Log web requests
;router_logging = false
# the path relative working path
static_root_path = public
# enable gzip
;enable_gzip = false
# https certs & key file
cert_file = /etc/grafana/grafana.crt
cert_key = /etc/grafana/grafana.key
- 참고로, cert_file, cert_key 2개의 옵션에서 설정된 경로는 도커 컴포즈에서 볼륨 마운트 진행한 경로를 입력해 준 것입니다.
- 여기까지 진행 하였다면, grafana 를 재 시작 후
https
로 접속 되는지 확인 진행합니다.
실행 결과
- 실행 결과, https 로 접속 되는 것을 확인할 수 있습니다.
728x90
'인프라 > 그라파나 & 프로메테우스' 카테고리의 다른 글
[Grafana] Grafana NoData Alert 이슈 해결 (0) | 2023.01.06 |
---|---|
[Grafana] Grafana DashBoard URL iframe 태그 호출 방법 (0) | 2023.01.05 |
[Grafana] Slack Alert 메시지 커스텀 하는 방법 (0) | 2022.12.15 |
[Grafana] Alert Slack 연동하기 (1) | 2022.12.14 |
[인프라] RabbitMQ Prometheus 개별 Queue Metric 수집 방법 (0) | 2022.10.13 |
이 글을 공유하기