最近一直在看prometheus中的数据,发现很多指标其实并不明白含义,所以打算系统性的看下,再加上最近mongodb挂过,所以就从部署mongodb监控开始。
1:寻找exporter
首先就是找到一个mongodb exporter,相当于一个agent,用于收集mongodb指标数据。
可以使用percona出厂的exporter,安装很简单,建议以service的方式运行,编辑/lib/systemd/system/mongodb_exporter.service文件:
[Unit]
Description=MongoDB Exporter
User=root
[Service]
Type=simple
Restart=always
ExecStart=mongodb_exporter --mongodb.uri=mongodb://localhost:27017
[Install]
WantedBy=multi-user.target
然后运行:
systemctl start mongodb_exporter.service
改exporter暴露的endpoint端口是9216,是否安装成功,可以运行:
curl http://localhost:9216/metrics
2:在prometheus中配置mongodb endpoint
- job_name: 'mongodb'
static_configs:
- targets: ['ip:9216']
3:安装MongoDB dashboards
在grafana中导入MongoDB dashboard,我选择的是https://grafana.com/grafana/dashboards/12079。
4:可以看到哪些指标数据
可以查看副本集状态、服务器状态、Oplog指标、WiredTiger引擎等。
5:报警
目前配置的报警比较简单,基于mongodb进程是否存在决定报警。使用的指标mongodb_up,如下图:
参考: