Redis Exporter를 하다보니 MySQL exporter도 있으면 좋겠다 싶어서 적용해봄
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.12.1/mysqld_exporter-0.12.1.linux-amd64.tar.gz
tar -xzvf mysqld_exporter-0.12.1.linux-amd64.tar.gz
mv mysqld_exporter-0.12.1.linux-amd64/ mysqld_exporter
cd mysqld_exporter
vi my.cnf
[client]
user=mysqluser
password=my-password
#서비스등록
vi /usr/lib/systemd/system/mysqld_exporter.service
[Unit]
Description=MySQL Server Service
Wants=network-online.target
After=network-online.target
[Service]
User=root
Group=root
Type=simple
ExecStart=/opt/prometheus/mysqld_exporter/mysqld_exporter \
--config.my-cnf /opt/prometheus/mysqld_exporter/my.cnf
[Install]
WantedBy=multi-user.target
systemctl daemon-reload
systemctl start mysqld_exporter
systemctl enable mysqld_exporter
netstat -tnlp | grep 9104
helm install 했을 때 생긴 에러가 템플릿에 있는 mod.yaml에서 에러가 발생한 것으로 생각하고 mod.yaml을 뺀 템플릿을 따로 만들어서 진행함
#helm으로 진행함
helm repo add ygqygq2 https://ygqygq2.github.io/charts/
helm pull ygqygq2/mysql-servicemonitor
tar -xvzf ./mysql-servicemonitor-1.0.0.tgz
#values.yaml 작성
# where the mysql installed namespace
namespaceSelector: monitoring
# endports
endpoints:
- xxx.xxx.xxx.xxx # 예로 3개의 mysql이 있다고 가정함
- yyy.yyy.yyy.yyy
- zzz.zzz.zzz.zzz
# on what port are the metrics exposed by etcd
metricsPortName: metrics
metricsPort: 9104
# Are we talking http or https?
scheme: http
# default rules are in templates/mysql-servicemonitor.rules.yaml
# prometheusRules: {}
## Custom Labels to be added to ServiceMonitor
# 经过测试,servicemonitor标签添加prometheus operator的release标签即可正常监控
additionalServiceMonitorLabels:
release: prometheus-operator #operator에서 다룰 수 있어야 해서 꼭 넣어야함!
##Custom Labels to be added to Prometheus Rules CRD
additionalRulesLabels:
release: prometheus-operator
prometheusRules:
enabled: false
만약 prometheus 내에 다른 네임스페이스의 서비스모니터를 인식할 수 있게 옵션을 안 주면
같은 네임스페이스 내에 servicemonitor를 설정해야함
helm install mysql-servicemonitor -f ./mysql-servicemonitor-values.ymal -n monitoring
템플릿에 의해 만들어진 것들
service, endpoint, servicemonitor
프로메테우스 Target이 제대로 잡히는지 확인하기
이후 Grafana에서 dashBoard 추가할 때 prometheus로 만들 수 있음
참고사이트
https://artifacthub.io/packages/helm/ygqygq2/mysql-servicemonitor