1 安装mysqld-exporter
1.1 下载安装包
cd /usr/local/src
wget https://github.com/prometheus/mysqld_exporter/releases/download/v0.15.1/mysqld_exporter-0.15.1.linux-amd64.tar.gz
tar -xzvf mysqld_exporter-0.15.1.linux-amd64.tar.gz
mv mysqld_exporter-0.15.1.linux-amd64 /opt/soft/mysqld_exporter
1.2 创建mysql监控用户及授权
CREATE USER 'exporter'@'mysqld_exporter-ip' IDENTIFIED BY '123456' WITH MAX_USER_CONNECTIONS 2;
GRANT PROCESS, REPLICATION CLIENT, SELECT ON *.* TO 'exporter'@'mysqld_exporter-ip';
FLUSH PRIVILEGES;
注:mysqld_exporter-ip为安装mysqld_exporter服务器ip
1.3 创建配置文件
# cd /opt/soft/mysqld_exporter
# vim .my.cnf
[client]
host=MySQL服务器ip
user=exporter
password=123456
port=3306
1.4 创建启动文件
cat > /lib/systemd/system/mysqld_exporter.service <<EOF
[Unit]
Description=mysqld_exporter
After=network.target
[Service]
Type=simple
User=root
ExecStart=/opt/soft/mysqld_exporter/mysqld_exporter --config.my-cnf=/opt/soft/mysqld_exporter/.my.cnf
Restart=on-failure
[Install]
WantedBy=multi-user.target
EOF
1.5 启动脚本
systemctl daemon-reload
systemctl start mysqld_exporter
systemctl status mysqld_exporter
systemctl enable mysqld_exporter
netstat -nltp | grep 9104
1.6 配置Prometheus配置文件
- job_name: 'mysqld_exporter'
static_configs:
- targets: ['监控的服务器ip:9104']
labels:
instance: 项目名mysql
#添加完成重启Prometheus
1.7 配置grafana可视化仪表盘
导入仪表盘
在Grafana中添加Prometheus数据源,然后从Grafana官网导入MySQL监控仪表盘(ID:7362)。
2 使用prometheus-operator监控RabbitMQ集群
2.1 创建Endpoints、Service和ServiceMonitor
apiVersion: v1
kind: Endpoints
metadata:
name: mysqld-exporter
namespace: monitoring
labels:
k8s-app: mysqld-exporter
subsets:
- addresses:
- ip: 192.168.2.58
ports:
- port: 9104
name: metrics
---
apiVersion: v1
kind: Service
metadata:
name: mysqld-exporter
namespace: monitoring
labels:
k8s-app: mysqld-exporter
spec:
ports:
- port: 9104
targetPort: 9104
name: metrics
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
labels:
k8s-app: mysqld-exporter
name: mysqld-exporter
namespace: monitoring
spec:
jobLabel: mysqld-exporter
endpoints:
- port: metrics
interval: 15s
scheme: http
namespaceSelector:
matchNames:
- monitoring
selector:
matchLabels:
k8s-app: mysqld-exporter