说明
四个主要步骤:
-
(1)数据库授权
-
(3)对接Grafana数据看板
- (4)对接Prometheus监控报警
架构图
说明:如上图,通过mysql_exporter
获取MySQL
的监控数据,通过node_exporter
获得Linux
服务器的监控数据。将获得的监控数据传到Prometheus
中,最终通过Grafana
展示出来。
部署 mysql 服务
本教程是用于测试演练,使用docker快速部署mysql服务:
# 部署mysql
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=Test#123 mysql:5.7
# 进入mysql
docker exec -it mysql-test /bin/bash
# 登陆mysql
mysql -uroot -pTest#123
创建监控账号并授权
CREATE USER 'exporter'@'%' IDENTIFIED BY 'Test#123';
GRANT SELECT, PROCESS, SUPER, REPLICATION CLIENT, RELOAD ON *.* TO 'exporter'@'%';
flush privileges;
登陆测试:
mysql -h 192.168.1.1 -uexporter -pTest#123
即可正常登陆~
helm部署mysql-exporter
# 添加库
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# 更新库
helm repo update
# 查询包
helm search repo prometheus-mysql-exporter
NAME CHART VERSION APP VERSION DESCRIPTION
prometheus-community/prometheus-mysql-exporter 1.7.0 v0.12.1 A Helm chart for prometheus mysql exporter with...
更多 helm 操作详见prometheus-mysql-exporter
# 下载prometheus-mysql-exporter
helm pull prometheus-community/prometheus-mysql-exporter
# 解压
tar zxvf prometheus-mysql-exporter-1.7.0.tgz
修改values.yaml
修改values.yaml
中的datasource
为安装在kubernetes/docker/主机
中 mysql 的地址:
# mysql connection params which build the DATA_SOURCE_NAME env var of the docker container
mysql:
db: ""
host: "192.168.1.1"
param: ""
pass: "Test#123"
port: 3306
protocol: ""
user: "exporter"
# secret with full DATA_SOURCE_NAME env var as stringdata
existingSecret: false
重新打包
tar -zcvf prometheus-mysql-exporter-v1.0.tgz prometheus-mysql-exporter
helm install
# 创建中间件空间
kubectl create ns middle
# 部署
helm install mysql-devops prometheus-mysql-exporter-v1.0.tgz -n middle
# 查看资源
kubectl get all -n middle
对接Prometheus
这里我直接使用 Prometheus 自动发现,更新svc配置添加如下参数:
kubectl edit svc mysql-devops-prometheus-mysql-exporter -n middle
# 在 annotations 里添加
annotations:
meta.helm.sh/release-name: mysql-devops
meta.helm.sh/release-namespace: middle
# 下面两项
prometheus.io/port: "9104"
prometheus.io/scrape: "true"
登陆prometheus-->target,查看:
对接Grafana
这里我分享两个看板模型,根据需要大家自选挑选~
这个更新的不及时,要体验最新的我们直接去项目地址下载安装mysql监控的dashboard,可参考grafana-dashboards
MySQL Exporter Quickstart and Dashboard
Mysql报警规则
kubectl apply -f Alert/prometheus-alert-rules-mysql-devops.yaml