안녕하세요, devyu입니다.
EC2 인스턴스에서 Prometheus와 Grafana를 Docker 컨테이너로 설치하고 연동하는 과정을 설명해보겠습니다.
먼저, Docker와 Docker Compose가 설치되지 않은 경우 설치해야 합니다.
# Docker 설치
sudo apt-get update
sudo apt-get install -y docker.io
# Docker Compose 설치
sudo curl -L "https://github.com/docker/compose/releases/download/$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep -Po '"tag_name": "\K.*\d')/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
# Docker 서비스 시작 및 부팅 시 자동 시작 설정
sudo systemctl start docker
sudo systemctl enable docker
Prometheus와 Node Exporter를 위한 docker-compose.yml 파일을 작성합니다.
# 작업할 디렉토리 생성 및 이동
mkdir ~/prometheus-grafana
cd ~/prometheus-grafana
# docker-compose.yml 파일 작성
cat <<EOF > docker-compose.yml
version: '3'
services:
prometheus:
image: prom/prometheus
container_name: prometheus
volumes:
- ./prometheus.yml:/etc/prometheus/prometheus.yml
ports:
- 9090:9090
restart: always
node-exporter:
image: prom/node-exporter
container_name: node-exporter
ports:
- 9100:9100
restart: unless-stopped
EOF
Prometheus 설정 파일을 작성합니다.
# prometheus.yml 파일 작성
cat <<EOF > prometheus.yml
global:
scrape_interval: 10s
evaluation_interval: 10s
scrape_configs:
- job_name: 'prometheus_server'
static_configs:
- targets: ['prometheus:9090']
- job_name: 'node-exporter'
metrics_path: /metrics
static_configs:
- targets: ['node-exporter:9100']
EOF
Docker Compose를 이용해 Prometheus와 Node Exporter를 시작합니다.
# Docker Compose로 컨테이너 시작
sudo docker-compose up -d
Grafana를 위한 docker-compose.yml 파일을 수정하여 추가합니다.
# Grafana 설치를 위한 docker-compose.yml 파일 수정
cat <<EOF >> docker-compose.yml
grafana:
image: grafana/grafana
container_name: grafana
volumes:
- ./data:/var/lib/grafana
ports:
- 3000:3000
restart: always
EOF
# data 디렉토리 생성 및 권한 설정
mkdir data
sudo chmod 777 data
# Grafana 컨테이너 시작
sudo docker-compose up -d grafana
이제 웹 브라우저에서 http://<EC2-인스턴스-주소>:3000으로 접속하여 Grafana에 접근할 수 있습니다. 기본 로그인 정보는 admin / admin입니다.
Home > Connections > Data Sources로 이동합니다.
Prometheus를 선택하고 URL에 http://prometheus:9090을 입력합니다.
Save & Test 버튼을 클릭해 연결 상태를 확인합니다.
Home > Dashboards > Create Dashboard > Import Dashboard로 이동합니다.
공식 Grafana의 Dashboard를 가져오기 위해 1860을 입력하고 Load를 클릭합니다.
Prometheus data source를 연결하고 Dashboard를 생성합니다.
모든 설정이 완료되면 Grafana에서 Prometheus의 Metric 데이터를 시각화할 수 있는 대시보드가 나타납니다.
이상으로 EC2 인스턴스에서 Prometheus와 Grafana를 설치하고 연동하는 과정이 완료되었습니다.
rate(node_cpu_seconds_total{mode="system"}[10m])