Table of Contents
모니터링 적용 과정
도커 컴포즈 파일에 prometheus, grafana, exporter 컨테이너를 추가한다
version: '3.2'
services:
mysql:
hostname: mysql
image: ziontkim0510/mysql-server:1.2
ports:
- 3306:3306
environment:
MYSQL_USER: root
MYSQL_ROOT_HOST: "%%"
MYSQL_DATABASE: test
MYSQL_ROOT_PASSWORD: passwd
command: mysqld
--server-id=1234
--max-binlog-size=4096
--binlog-format=ROW
--log-bin=bin-log
--sync-binlog=1
--binlog-rows-query-log-events=ON
volumes:
- ./dataset:/var/lib/mysql-files
mysqld-exporter:
hostname: mysqld-exporter
image: prom/mysqld-exporter
ports:
- 9104:9104
environment:
DATA_SOURCE_NAME: root:passwd@(mysql:3306)/
prometheus:
hostname: prometheus
image: prom/prometheus
ports:
- 9090:9090
volumes:
- ./monitoring/prometheus.yml:/etc/prometheus/prometheus.yml
grafana:
hostname: grafana
image: grafana/grafana
ports:
- 3000:3000
prometheus.yml 파일을 작성한다
- 프로메테우스가 메트릭을 읽어오도록 잡을 생성한다
global:
scrape_interval: 15s
scrape_timeout: 10s
evaluation_interval: 15s
scrape_configs:
- job_name: prometheus
metrics_path: /metrics
static_configs:
- targets:
- localhost:9090
- job_name: mysql
metrics_path: /metrics
static_configs:
- targets:
- mysqld-exporter:9104
localhost:3000 을 통해 그라파나 웹 UI에 접속한다
프로메테우스를 데이터 소스로 등록한다
대시보드 템플릿을 다운받는다
MySQL Overview 말고도 다양한 대시보드를 템플릿으로 제공해준다. 템플릿은 JSON 파일로 작성돼 있다.
JSON 파일을 직접 다운 받아도 되고, 그냥 번호만 알고 있어도 된다.
대시보드를 등록한다
나는 번호로 그냥 입력했다.
아까 등록했던 프로메테우스를 데이터 소스로 사용한다.
결과
아래는 MySQL InnoDB Metrics 라는 템플릿을 사용했을 때의 모습이다
참고
- 44bits, 그라파나(Grafana)란?
- How-To Geek, How to Monitor MySQL Server Activity With a Grafana Dashboard
- Grafana 공식문서, Grafana documentation
- jssvs, 프로메테우스(prometheus) 구성 및 기본 사용법
- alice_k106, 169. [Prometheus] 1편 : Prometheus (프로메테우스) 사용 방법, 기본 개념, 데이터 구조
- ExporterHub, MySQL Server Exporter
- 고양이 중독, 프로메테우스 Aurora MySQL 성능 지표 모니터링 구성
- 대시보드 템플릿 제공 사이트
- Docker Hub, prom/mysqld-exporter 컬렉터 플래그 종류 알 수 있음