由于所有组件写一篇幅过长,所以每个组件分一篇方便查看,前四篇mongodb的exporter坑也挺多总结一下各种安装方式,方便后续考古。
Prometheus+grafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客
Prometheus+grafana环境搭建rabbitmq(docker+二进制两种方式安装)(二)-CSDN博客
Prometheus+grafana环境搭建mysql(docker+二进制两种方式安装)(三)-CSDN博客
Prometheus+grafana环境搭建redis(docker+二进制两种方式安装)(四)-CSDN博客
1.监控MongoDB
1.1官方地址
GitHub - percona/mongodb_exporter: A Prometheus exporter for MongoDB including sharding, replication and storage engines
1.1.1 mongodb创建监控新用户
为保持监控用户的独立性,mongodb和mysql一样,最好单独创建一个监控用户
我使用docker 安装的mongodb,如果非docker安装则去掉 docker exec -it mongo4
4.4版本
docker exec -it mongo4 mongo admin
切换数据库
use admin
6.0 版本
docker exec -it mongo6 mongosh admin
用root用户登录
db.auth('root','123456')
创建用户
db.createUser({
user: "prometheus",
pwd: "prometheus",
roles: [
{ role: "read", db: "admin" },
{ role: "readAnyDatabase", db: "admin" },
{ role: "clusterMonitor", db: "admin" }
]
});
验证新用户
db.auth('prometheus','prometheus')
4.4版本过程
6.0版本过程
1.2二进制方式安装
exporter 下载地址:https://github.com/percona/mongodb_exporter/releases/download/v0.40.0/mongodb_exporter-0.40.0.linux-amd64.tar.gz
下载后上传到自己常用的目录,使用tar 命令解压
1.2.1 命令行方式启动
官方建议使用export 方式防止密码泄露
export MONGODB_USER=prometheus
export MONGODB_PASSWORD=prometheus
./mongodb_exporter --mongodb.uri=mongodb://192.168.90.153:27017 --collect-all --compatible-mode
不怕泄露
./mongodb_exporter --mongodb.uri=mongodb://prometheus:prometheus@192.168.90.153:27017 --collect-all
--compatible-mode 兼容模式,新版的指标名有变化,如果是首次使用,可以不加。
--collect-all 代表采集所有指标,其他可选指标
https://github.com/percona/mongodb_exporter/blob/main/REFERENCE.md
1.2.2 注册为系统服务启动
创建一个非root用户
useradd -M -s /usr/sbin/nologin prometheus -M不创建家目录,不允许登录
vim /etc/systemd/system/mongodb_exporter.service
[Unit]
Description=mongodb_exporter
Documentation=https://prometheus.io/
[Service]
User=prometheus
Group=prometheus
Environment="MONGODB_URI=mongodb://prometheus:prometheus@192.168.3.110:27017"
ExecStart=/opt/mongodb_exporter/mongodb_exporter --collect-all --compatible-mode
Restart=on-failure
[Install]
WantedBy=multi-user.target
配置为开机自启动并查看服务状态
systemctl enable mongodb_exporter.service --now
systemctl status mongodb_exporter.service
1.3 docker方式启动
1.3.1 docker命令运行
docker run -d -p 9216:9216 \
--name=mongodb_exporter \
--restart=always \
percona/mongodb_exporter:0.40.0 --mongodb.uri="mongodb://prometheus:prometheus@192.168.3.110:27017" --compatible-mode --collect-all
注意images后面的参数不要换行 否则不会被执行
1.3.2 docker-compose 方式启动
vim docker-compose.yaml
version: '3.1'
services:
mongodb_exporter:
image: percona/mongodb_exporter:0.40.0
container_name: mongodb_exporter
restart: always
ports:
- '9216:9216'
command: ["--mongodb.uri=mongodb://prometheus:prometheus@192.168.3.110:27017","--compatible-mode","--collect-all"]
验证启动结果
访问 exporter所在地址,如果有大量指标则启动正常,否则查看日志排查问题
http://192.168.3.112:9216/metrics
1.4 配置Prometheus监控
vim xxx/prometheus/prometheus.yml
追加以下内容
- job_name: 'mongodb-exporter'
scrape_interval: 15s
static_configs:
- targets: ['192.168.3.112:9216']
labels:
instance: 110-mongodb服务器
刷新配置 在Prometheus所在服务器执行
curl -X POST http://localhost:9090/-/reload
查看结果,访问Prometheus服务 http://192.168.3.112:9090/
查看mongo新增指标, 其中mongodb_ss_xxx为新的指标格式,如果不开兼容模式,则所有指标均为ss_xx
1.5 配置grafana监控
导入模板参见Prometheus+grafana环境搭建方法及流程两种方式(docker和源码包)(一)-CSDN博客
找到喜欢的模板id,12079
Dashboards | Grafana Labs
查看效果访问 http://192.168.3.112:3000/