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

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

相关推荐
牛奔5 小时前
grafana 二次开发,制作镜像流程
grafana
u0104058365 小时前
Java中的服务监控:Prometheus与Grafana的集成
java·grafana·prometheus
`林中水滴`7 小时前
MongoDB系列:MongoDB 分片集群环境搭建
mongodb
Msshu12317 小时前
Type-C 多协议快充诱骗电压芯片XSP28 芯片脚耐压高达21V 电路简单 性价比高
mongodb·zookeeper·rabbitmq·flume·memcache
hexiekuaile1 天前
mongodb8.2知识
mongodb
The Sheep 20231 天前
MongoDB与.Net6
数据库·mongodb
点灯小铭1 天前
基于单片机的智能收银机模拟系统设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业
数据知道1 天前
一文掌握 MongoDB 存储引擎 WiredTiger 的原理
数据库·mongodb·数据库架构
oMcLin2 天前
如何在 Rocky Linux 8.7 上通过 Prometheus 与 Grafana 结合,提升大规模容器环境的监控与性能分析?
linux·grafana·prometheus
清风6666662 天前
基于单片机的电加热炉智能温度与液位PID控制系统设计
单片机·嵌入式硬件·mongodb·毕业设计·课程设计·期末大作业