◾️ Dockprom
DockProm을 사용하여 도커 컨테이너에 대한 모니터링을 설정하고 Grafana로 모니터링 통계를 직관적으로 표시해보자.
▪️ 사전 준비
- Docker Engine >= 1.13
- Docker Compose >= 1.11
▪️ 도커로 설치
- 컨테이너 구성
- ∙
alertmanager
- ∙
Prometheus
(metrics database)http://:9090
- ∙
Prometheus-Pushgateway
(push acceptor for ephemeral and batch jobs)http://:9091
- ∙
AlertManager
(alerts management)http://:9093
- ∙
Grafana
(visualize metrics)http://:3000
- ∙
NodeExporter
(host metrics collector) - ∙
cAdvisor
(containers metrics collector) - ∙
Caddy
(reverse proxy and basic auth provider for prometheus and alertmanage
- ∙
1. 프로젝트 clone
git clone https://github.com/stefanprodan/dockprom
cd dockprom
2. Grafana 설정
clone 받은 그대로 기본 설정으로 설치를 진행하고, 나는 여기서 grafana 컨테이너에 아래와 같은 환경 변수 값을 추가하였다.
(로그인 없이 Grafana에 접속되며, 관리자는 로그인하도록 수정하도록 설정)
....
grafana:
image: grafana/grafana:10.2.2
container_name: grafana
volumes:
- grafana_data:/var/lib/grafana
- ./grafana/provisioning/dashboards:/etc/grafana/provisioning/dashboards
- ./grafana/provisioning/datasources:/etc/grafana/provisioning/datasources
environment:
....
- GF_AUTH_ANONYMOUS_ENABLED=true
- GF_AUTH_ANONYMOUS_ORG_NAME=Main Org.
- GF_AUTH_ANONYMOUS_ORG_ROLE=Viewer
restart: unless-stopped
expose:
- 3000
networks:
- monitor-net
labels:
org.label-schema.group: "monitoring"
....
ORG_ROLE
옵션은 Admin
/ Editor
/ Viewer
중 선택하여 설정
자세한 내용은 다음 링크 클릭 👉 https://grafana.com/docs/grafana/latest/administration/roles-and-permissions/
3. 컨테이너 실행
docker-compose up -d --build
• HASH 암호
Caddy 컨테이너가 v2로 업데이트됨에 따라 기존 캐디 컨테이너에 대한 일반 텍스트 암호를 해시된 암호참조로 바꿔주어야 한다.
👉 https://github.com/stefanprodan/dockprom?tab=readme-ov-file#Updating-Caddy-to-v2
아래 명령어를 사용하여 ADMIN_PASSWORD_HASH
옵션에 들어갈 해쉬 암호를 생성해주도록 하자.
docker run --rm caddy caddy hash-password --plaintext 'ADMIN_PASSWORD'
$2a$14$HFH46i2Vq8ajOp1eso/EwOvVEiRe7Qn92BfAQfo94Ikiv/x.PNcc6
docker-compose.yaml 파일을 아래와 같이 수정
caddy:
image: caddy:2.7.5
....
environment:
ADMIN_USER: ${ADMIN_USER:-admin}
ADMIN_PASSWORD: ${ADMIN_PASSWORD:-admin}
# 위에서 생성된 해쉬 암호 기입
# "You may need to escape any $ with another $" 에러를 방지하기 위해 '$' 이스케이프 처리
ADMIN_PASSWORD_HASH: $$2a$$14$$uJgNxeOc/SqWV59wocIRuuELlYQzVgyaNuuuxmuB3Go/c1nQpNVPS
....