데이터베이스 모니터링 · 4 min read · Sep 15, 2025
Prometheus와 Grafana로 MySQL 또는 MariaDB 모니터링하는 방법

MySQL/MariaDB 서버가 제대로 작동하는지 확인하려면 인프라에서 모니터링을 구현해야 합니다. 이를 통해 성능을 최적화하고 문제/병목 현상을 식별하며 데이터베이스의 건강 상태를 확인할 수 있습니다. Prometheus와 Grafana를 사용하면 이러한 목표를 달성하고 MySQL 서버를 위한 아름다운 대시보드 모니터링을 생성할 수 있습니다.
이 가이드에서는 Prometheus와 Grafana로 MySQL/MariaDB 서버를 모니터링하는 방법을 배웁니다. ‘prometheus-mysqld-exporter’를 설정하여 메트릭을 생성하고 Prometheus 서버에 엔드포인트 모니터링을 추가합니다. 그 후, MySQL 모니터링을 위한 새로운 Grafana 대시보드를 생성합니다.
필수 조건
시작하려면 다음 사항을 확인하세요:
- 설치된 MySQL/MariaDB 서버
- 관리자 권한이 있는 비루트 사용자
- 서버에 설치된 Prometheus와 Grafana
MySQL/MariaDB 사용자 설정
MySQL/MariaDB 서버를 모니터링하려면 새로운 전용 MySQL 사용자를 생성해야 합니다. 이 사용자는 모든 데이터베이스에서 PROCESS, REPLICATION CLIENT 및 SELECT와 같은 최소 권한을 가집니다.
이 섹션에서는 MySQL 서버를 모니터링하기 위해 새로운 MySQL 사용자를 생성합니다.
다음과 함께 MySQL/MariaDB 서버에 로그인합니다. 프롬프트가 표시되면 ‘ root ‘ 비밀번호를 입력하세요.
sudo mysql -u root -p이제 다음 쿼리를 실행하여 ‘ prometheus ‘라는 새로운 MySQL 사용자를 ‘ unix_socket ‘ 인증으로 생성합니다. 이 사용자는 MySQL 서버의 모든 데이터베이스에서 processes, replication clients, 및 select를 볼 수 있는 권한을 가집니다.
CREATE USER IF NOT EXISTS 'prometheus'@'localhost' IDENTIFIED WITH unix_socket;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'prometheus'@'localhost';
FLUSH PRIVILEGES;다음으로, MySQL 사용자 ‘ prometheus@localhost ‘를 확인하기 위해 아래 쿼리를 실행합니다. ‘ prometheus ‘ 사용자가 SELECT, PROCESS 및 BINLOG MONITOR 권한을 가진 복제 클라이언트로 표시됩니다.
SHOW GRANTS FOR 'prometheus'@'localhost';MySQL/MariaDB 서버에서 나가려면 ‘ quit ‘를 입력하세요.

prometheus-mysqld-exporter 설치
‘ prometheus-mysqld-exporter ‘는 MySQL 메트릭을 위한 익스포터입니다. MySQL >= 5.6 및 MariaDB >= 10.3을 지원합니다. ‘prometheus-mysqld-exporter’를 사용하려면 MySQL 서버에 설치해야 합니다.
이 예제에서는 MySQL 서버가 Debian 12 서버에서 실행되고 있습니다. 기본적으로 ‘prometheus-mysqld-exporter’는 공식 Debian 저장소에서 사용할 수 있으므로 APT를 통해 설치합니다. 다른 배포판을 사용하는 경우 GitHub에서 수동으로 다운로드하여 설치할 수 있습니다.
먼저, 아래 명령어를 실행하여 Debian 패키지 인덱스를 업데이트합니다.
sudo apt update
저장소가 업데이트되면 다음 명령어로 ‘ prometheus-mysqld-exporter ‘ 패키지를 설치합니다. 설치를 확인하려면 ‘ Y ‘를 입력하세요.
sudo apt install prometheus-mysqld-exporter
설치가 완료되면 아래 ‘ systemctl ‘ 명령어를 실행하여 systemd 관리자를 다시 로드합니다.
sudo systemctl daemon-reload그런 다음, 아래 명령어로 ‘ prometheus-mysqld-exporter ‘ 서비스를 시작하고 활성화할 수 있습니다. 이렇게 하면 ‘prometheus-mysqld-exporter’ 서비스가 시스템에서 실행되고 활성화됩니다.
sudo systemctl enable --now prometheus-mysqld-exporterprometheus-mysqld-exporter에 MySQL 사용자 추가
이제 MySQL 사용자를 생성하고 ‘prometheus-mysqld-exporter’를 설치했습니다. 다음 단계는 MySQL을 ‘prometheus-mysqld-exporter’ 구성에 추가하는 것입니다. 이렇게 하면 MySQL 서버의 메트릭을 생성하고 기본 포트 ‘9104’에서 엔드포인트를 노출할 수 있습니다.
다음 ‘ nano ‘ 편집기로 ‘ /etc/default/prometheus-mysqld-exporter ‘ 파일을 엽니다.
sudo nano /etc/default/prometheus-mysqld-exporterMySQL을 ‘ prometheus-mysqld-exporter ‘와 통합하기 위해 ‘ DATA_SOURCE_NAME ‘ 환경 변수를 주석 해제합니다. 이 예제에서는 MySQL 사용자 ‘ prometheus ‘가 ‘ mysqld.sock ‘ 파일을 통해 MySQL 서버를 모니터링하는 데 사용됩니다.
DATA_SOURCE_NAME="prometheus@unix(/run/mysqld/mysqld.sock)/"파일을 저장하고 편집기를 종료합니다.
이제 아래 ‘ systemctl ‘ 명령어를 실행하여 ‘ prometheus-mysqld-exporter ‘ 서비스를 재시작하고 변경 사항을 적용합니다. 그런 다음, 서비스가 실행 중인지 확인하기 위해 상태를 확인합니다.
sudo systemctl restart prometheus-mysqld-exporter
sudo systemctl status prometheus-mysqld-exporter아래에서 ‘prometheus-mysqld-exporter’가 실행 중임을 확인할 수 있습니다.

마지막으로 웹 브라우저를 열고 http://192.168.10.41:9104/를 방문합니다. 이것은 ‘ prometheus-mysqld-exporter ‘의 기본 엔드포인트입니다. 구성에 성공하면 메트릭이 생성되고 다음과 같이 표시됩니다:

Prometheus에 prometheus-mysqld-exporter 엔드포인트 추가
이제 ‘ prometheus-mysqld-exporter ‘ 구성은 완료되었고 메트릭이 생성되었습니다. 이제 ‘ prometheus-mysqld-exporter ‘를 Prometheus 서버의 엔드포인트로 추가해야 합니다. 이 가이드에서는 ‘ prometheus-mysqld-exporter ‘ 엔드포인트가 ‘ 192.168.10.41:9104 ‘에서 사용 가능합니다.
Prometheus 서버가 없는 경우 Debian 12에서 Prometheus 및 Node Exporter 설치 방법을 통해 설치하세요.
Prometheus 서버로 이동하여 ‘ /etc/prometheus/prometheus.yml ‘ 구성 파일을 ‘nano’ 편집기로 엽니다.
sudo nano /etc/prometheus/prometheus.yml‘ scrape_configs ‘ 내에 ‘ prometheus-mysqld-exporter ‘의 엔드포인트를 다음과 같이 추가합니다. 이 예제에서는 ‘ prometheus-mysqld-exporter ‘가 IP 주소와 포트 ‘ 192.168.10.41:9104 ‘에서 실행되고 있습니다.
scrape_configs:
- job_name: server1
static_configs:
- targets: ['192.168.10.41:9104']
labels:
alias: db1작업이 완료되면 파일을 저장하고 편집기를 종료합니다.
이제 아래 ‘ systemctl ‘ 명령어를 실행하여 ‘ prometheus ‘ 서비스를 재시작하고 변경 사항을 적용합니다.
sudo systemctl restart prometheus마지막으로 Prometheus 서버 대시보드를 열고 ‘ Status > Targets ‘ 메뉴를 선택합니다. MySQL 모니터링의 엔드포인트인 ‘ server1 ‘이 보이는지 확인하세요.
MySQL 서버를 위한 Grafana 대시보드 설정
‘prometheus-mysqld-exporter’ 엔드포인트를 Prometheus 서버에 추가한 후, 이제 MySQL 서버 모니터링을 위한 Grafana 대시보드를 구축할 준비가 되었습니다. 이 섹션에서는 GrafanaLabs를 통해 MySQL 모니터링을 위한 대시보드를 가져옵니다.
Grafana가 설치되어 있지 않은 경우, Ubuntu 24.04에서 Grafana 및 Prometheus 설치 방법을 통해 설치하세요.
Grafana 대시보드에서 ‘ Dashboard > New > Import ‘ 메뉴를 클릭합니다. 이 예제에서는 MySQL 서버 모니터링을 위해 GrafanaLabs의 Grafana 템플릿을 사용할 것입니다.
Grafana ID 번호를 복사하여 붙여넣고 ‘ Load ‘를 클릭하여 확인합니다.

이제 데이터 소스로 ‘ Prometheus ‘를 선택하고 ‘ Import ‘를 클릭합니다.

성공하면 Prometheus와 Grafana로 MySQL/MariaDB 모니터링을 위한 대시보드를 볼 수 있습니다.

결론
축하합니다! Prometheus와 Grafana로 MySQL/MariaDB 서버 모니터링을 완료했습니다. ‘prometheus-mysqld-exporter’로 MySQL 서버를 모니터링하고 MySQL에 대한 메트릭을 생성했습니다. 또한 ‘prometheus-mysqld-exporter’를 Prometheus 서버의 엔드포인트로 추가했습니다. 마지막으로 MySQL 서버를 모니터링하기 위한 Grafana 대시보드를 생성했습니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.