Prometheus+grafana环境搭建MongoDB(docker+二进制两种方式安装)(五)

时间:2024-04-09 16:14:43

  由于所有组件写一篇幅过长,所以每个组件分一篇方便查看,前四篇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/