TokyoAJ

도쿄아재

SERVER 2024.12.17

Prometheus + mysql_exporter 설정

mysql_exporter는 MySQL 데이터베이스의 상태와 성능 지표를 수집하기 위한 오픈 소스 도구입니다. 이 도구는 Prometheus로부터 지표를 수집하여 시각화하고 모니터링할 수 있습니다. mysql_exporter는 데이터베이스 서버의 상태, 쿼리 성능, 클라이언트 연결 등 다양한 정보를 제공하여 MySQL 환경을 효율적으로 관리할 수 있도록 도와줍니다.

mysql_exporter는 확장 가능하며, 사용자 정의 쿼리를 통해 추가적인 지표를 수집할 수도 있습니다. 이를 통해 사용자는 자신의 요구에 맞게 MySQL 데이터베이스를 모니터링하고 분석할 수 있습니다.

또한, mysql_exporter는 경고 기능을 제공하여 잠재적인 문제를 사전에 감지할 수 있습니다. 이를 통해 시스템 관리자는 빠르게 대응하여 장애를 예방할 수 있습니다.

mysql_exporter는 높은 확장성과 유연성을 제공하여 MySQL 데이터베이스의 성능을 최적화하고 문제를 해결하는 데 도움이 됩니다.


wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.0/mysqld_exporter-0.15.0.linux-amd64.tar.gz
tar xvf mysqld_exporter-0.15.0.linux-amd64.tar.gz
cd mysqld_exporter-0.15.0.linux-amd64
CREATE USER 'exporter'@'localhost' IDENTIFIED BY 'tokyoaj';
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'localhost';
sudo nano my.cnf

[client]
user=exporter
password=tokyoaj
host=localhost
sudo nano /etc/systemd/system/mysqldexporter.service

[Unit]
Description=Mariadb Monitoring
Wants=network-online.target
After=network-online.target


[Service]
Type=simple
Restart=always
ExecStart=/root/mysqld_exporter-0.15.0.linux-amd64/mysqld_exporter \
--config.my-cnf=/root/mysqld_exporter-0.15.0.linux-amd64/my.cnf
--web.listen-address=0.0.0.0:9104 \

[Install]
WantedBy=multi-user.target
sudo chown mysqldexporter:mysqldexporter /root/mysqld_exporter-0.15.0.linux-amd64/mysqld_exporter
root@localhost:~/mysqld_exporter-0.15.0.linux-amd64# ls -la
total 15656
drwxr-xr-x 2 mysqldexporter mysqldexporter 4096 Nov 26 16:50 .
drwx------ 12 root root 4096 Nov 26 16:48 ..
-rw-r--r-- 1 mysqldexporter mysqldexporter 11357 Jun 24 04:11 LICENSE
-rw-r--r-- 1 mysqldexporter mysqldexporter 55 Nov 26 16:49 my.cnf
-rwxr-xr-x 1 mysqldexporter mysqldexporter 15999834 Jun 24 04:09 mysqld_exporter
-rw-r--r-- 1 mysqldexporter mysqldexporter 65 Jun 24 04:11 NOTICE


nano를 닫고 파일에 대한 변경 사항을 저장하세요. 그런 다음 다음 명령으로 데몬을 다시 로드하세요

sudo systemctl daemon-reload


다음 명령을 사용하여 node_exporter 서비스를 활성화하세요

sudo systemctl enable mysqldexporter


서비스를 시작하세요

sudo systemctl start mysqldexporter


실행확인

sudo systemctl status mysqldexporter
● mysqldexporter.service - Mariadb Monitoring
Loaded: loaded (/etc/systemd/system/mysqldexporter.service; enabled; vendor preset: enabled)
Active: active (running) since Sun 2023-11-26 17:18:52 UTC; 6min ago
Main PID: 2654508 (mysqld_exporter)
Tasks: 3 (limit: 1033)
Memory: 6.6M
CPU: 760ms
CGroup: /system.slice/mysqldexporter.service
└─2654508 /root/mysqld_exporter-0.15.0.linux-amd64/mysqld_exporter --config.my-cnf=/root/mysqld_exporter-0.15.0.linux-amd64/my.cnf



1. 글로벌 상태 메트릭

  1. 쿼리 수: 실행된 다양한 유형의 쿼리 수 (SELECT, INSERT, UPDATE 등).
  2. 연결된 클라이언트 수: 현재 연결된 클라이언트의 수.
  3. 열린 테이블 수: 현재 열려 있는 테이블의 수.

2. 성능 스키마 메트릭

  1. 쿼리 응답 시간: 다양한 쿼리의 응답 시간.
  2. I/O 대기 시간: 데이터베이스 I/O 작업의 대기 시간.

3. 인네이블 로그 메트릭

  1. 인네이블 로그 크기: 인네이블 로그의 크기 및 활동.

4. 복제 관련 메트릭

  1. 복제 지연: 마스터와 슬레이브 간의 복제 지연 시간.
  2. 복제 상태: 복제 상태 및 에러.

5. 테이블 스페이스 및 인덱스 메트릭

  1. 테이블 사용률: 각 테이블의 디스크 사용량.
  2. 인덱스 사용량: 인덱스별 사용량 및 상태.

6. 버퍼 풀 및 캐시 메트릭

  1. 버퍼 풀 효율성: 버퍼 풀의 사용률 및 히트율.
  2. 쿼리 캐시 통계: 쿼리 캐시의 성능 및 사용률.

7. 서버 상태 메트릭

  1. 업타임: MySQL 서버의 업타임.
  2. 서버 버전: 실행 중인 MySQL 서버의 버전.

8. 기타 메트릭

  1. 네트워크 트래픽: 네트워크 트래픽 및 데이터 전송량.
  2. 에러 및 경고: 서버 로그의 에러 및 경고 메시지.