Prometheus 설치 및 설정
Prometheus는 Go 언어로 개발되어 별도의 의존성 없이 단일 바이너리로 실행할 수 있습니다. 운영체제에 맞는 패키지를 공식 사이트에서 다운로드합니다.
tar -xzf prometheus-2.45.2.linux-amd64.tar.gz
sudo mv prometheus-2.45.2.linux-amd64 /opt/prometheus
기본 설정 파일(prometheus.yml)은 다음과 같은 구조를 가집니다:
global:
scrape_interval: 15s
evaluation_interval: 15s
scrape_configs:
- job_name: 'prometheus-server'
static_configs:
- targets: ['localhost:9090']
시스템 서비스로 등록하여 백그라운드에서 실행되도록 구성합니다:
[Unit]
Description=Prometheus Monitoring System
After=network-online.target
[Service]
User=prometheus
ExecStart=/opt/prometheus/prometheus \
--config.file=/opt/prometheus/prometheus.yml \
--storage.tsdb.path=/opt/prometheus/data
Restart=always
[Install]
WantedBy=multi-user.target
서비스 계정 생성 및 권한 설정:
sudo useradd -s /bin/false prometheus
sudo chown -R prometheus:prometheus /opt/prometheus
sudo systemctl daemon-reload
sudo systemctl enable prometheus
sudo systemctl start prometheus
Grafana 배포 및 구성
Grafana는 다양한 메트릭 소스를 시각화해주는 오픈소스 플랫폼입니다. CentOS 환경에서는 다음 명령으로 설치합니다:
sudo yum install -y https://dl.grafana.com/enterprise/release/grafana-enterprise-10.2.3-1.x86_64.rpm
/etc/grafana/grafana.ini 파일에서 웹 서버 포트를 변경할 수 있습니다:
[server]
http_port = 3000
domain = localhost
root_url = %(protocol)s://%(domain)s:%(http_port)s/
서비스 시작 및 상태 확인:
sudo systemctl daemon-reload
sudo systemctl start grafana-server
sudo systemctl status grafana-server
MySQL 메트릭 수집 구성
데이터베이스에서 exporter용 계정을 생성합니다:
CREATE USER 'metrics_agent'@'%' IDENTIFIED BY 'SecurePass123!';
GRANT SELECT, PROCESS, REPLICATION CLIENT ON *.* TO 'metrics_agent'@'%';
FLUSH PRIVILEGES;
mysqld_exporter 도구를 다운로드하고 압축을 해제합니다:
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz
tar xzf mysqld_exporter-0.15.1.linux-amd64.tar.gz
sudo mv mysqld_exporter-0.15.1.linux-amd64 /opt/mysql_exporter
.my.cnf 파일을 생성하여 연결 정보를 저장합니다:
[client]
user=metrics_agent
password=SecurePass123!
host=127.0.0.1
port=3306
수집기를 독립 실행하거나 시스템 서비스로 등록할 수 있습니다:
/opt/mysql_exporter/mysqld_exporter \
--web.listen-address=:9104 \
--config.my-cnf=/opt/mysql_exporter/.my.cnf
서비스 등록 예시:
[Unit]
Description=MySQL Metrics Exporter
After=network.target
[Service]
User=mysql_exporter
ExecStart=/opt/mysql_exporter/mysqld_exporter \
--config.my-cnf=/opt/mysql_exporter/.my.cnf
Restart=always
[Install]
WantedBy=multi-user.target
사용자 생성 및 서비스 활성화:
sudo useradd -s /bin/false mysql_exporter
sudo chown -R mysql_exporter:mysql_exporter /opt/mysql_exporter
sudo systemctl daemon-reload
sudo systemctl enable mysql_exporter
sudo systemctl start mysql_exporter
Prometheus 설정에 MySQL 작업 대상을 추가합니다:
scrape_configs:
- job_name: 'database-monitoring'
static_configs:
- targets: ['your-server-ip:9104']
변경사항 적용을 위해 Prometheus를 재시작합니다. 이후 Grafana에서 Dashboard ID 7362를 사용하여 사전 정의된 MySQL 템플릿을 불러올 수 있습니다.