首页主机资讯MongoDB在CentOS上的监控与告警如何设置

MongoDB在CentOS上的监控与告警如何设置

时间2025-12-02 02:14:04发布访客分类主机资讯浏览220
导读:MongoDB在CentOS上的监控与告警实操指南 一 监控方案与组件 快速可用:使用 MongoDB 自带的命令行工具 mongostat、mongotop 与 db.serverStatus( 做即时排障与巡检。 长期可视化与告警:...

MongoDB在CentOS上的监控与告警实操指南

一 监控方案与组件

  • 快速可用:使用 MongoDB 自带的命令行工具 mongostatmongotopdb.serverStatus() 做即时排障与巡检。
  • 长期可视化与告警:部署 Prometheus + MongoDB Exporter + Alertmanager + Grafana,实现指标采集、存储、告警路由与可视化。
  • 企业级与托管:可选 Zabbix(模板监控)、MongoDB Ops Manager / Cloud Manager(官方)、或 Percona Monitoring and Management(PMM) 等。
  • 系统层面:配合 node_exporter 采集主机 CPU、内存、磁盘 I/O,便于定位瓶颈。

二 快速上手 命令行与内置工具

  • 连接与认证:确保 MongoDB 启用鉴权,使用 –authenticationDatabase admin 指定认证库。
  • 实时性能:
    • mongostat:观察插入/查询/更新/删除速率、连接数、网络与页错误等。
      示例:mongostat --host 127.0.0.1 --port 27017 -u admin -p yourpass --authenticationDatabase admin
    • mongotop:按库/集合查看读写耗时,定位热点。
      示例:mongotop --host 127.0.0.1 --port 27017 -u admin -p yourpass --authenticationDatabase admin
  • 深入状态:
    • mongo shell 执行:db.serverStatus(),查看内存、连接、索引、操作计数等详细指标。
  • 慢查询分析:开启 Profiler 记录慢操作,用于定位性能问题。

三 长期监控与告警 Prometheus方案

  • 组件与端口规划:
    • MongoDB Exporter(推荐 Percona 版):默认监听 9216;或社区版常见 9001/9114
    • Prometheus:默认 9090
    • Alertmanager:默认 9093
    • Grafana:默认 3000
  • 部署 MongoDB Exporter(示例为 Percona 版,便于采集更丰富指标):
    • Docker 方式:
      docker run -d -p 9216:9216 --name mongodb_exporter --restart unless-stopped
      -e MONGODB_URI=“mongodb://username:password@localhost:27017
      percona/mongodb_exporter:latest
    • 二进制方式:下载解压后运行 ./mongodb_exporter --web.listen-address=:9216(按实际版本与参数调整)。
  • 配置 Prometheus 抓取:编辑 prometheus.yml
    scrape_configs:
    • job_name: ‘mongodb’
      static_configs:
      • targets: [‘localhost:9216’]
    • job_name: ‘node’
      static_configs:
      • targets: [‘localhost:9100’] # node_exporter
  • 配置 Alertmanager:创建 alertmanager.yml(以企业微信为例)
    global:
    resolve_timeout: 2m
    wechat_api_url: ‘https://qyapi.weixin.qq.com/cgi-bin/’
    route:
    group_by: [‘alertname_wechat’]
    group_wait: 10s
    group_interval: 10s
    repeat_interval: 1h
    receiver: ‘wechat’
    receivers:
    • name: ‘wechat’
      wechat_configs:
      • send_resolved: true
        to_party: ‘1
        agent_id: ‘1000002
        corp_id: ‘w*’
        api_secret: ‘W*’
  • 在 Prometheus 启用告警路由与规则:
    alerting:
    alertmanagers:
    - static_configs:
    - targets: [‘localhost:9093’]
    rule_files:
    • rules.yml
  • Grafana 可视化:
    • 添加数据源:URL 填入 http://:9090
    • 导入 MongoDB 仪表盘(如 Percona 官方仪表盘,导入对应 ID),快速获得指标面板。

四 关键告警规则示例

  • 实例宕机:
    • expr: up{ job=“mongodb”} == 0
    • for: 1m
    • labels: severity=critical
    • annotations: summary=“MongoDB instance down”
  • 连接数过高:
    • expr: mongodb_connections{ state=“current”} > 10000
    • for: 5m
    • labels: severity=warning
    • annotations: summary=“MongoDB connections high”
  • 复制延迟(适用于副本集):
    • expr: mongodb_replset_member_optime_lag_seconds{ state=“PRIMARY”} > 10
    • for: 2m
    • labels: severity=warning
    • annotations: summary=“MongoDB replication lag high”
  • 主机宕机(node_exporter):
    • expr: up{ job=“node”} == 0
    • for: 1m
    • labels: severity=critical
    • annotations: summary=“Host down”
  • 磁盘可用空间低:
    • expr: (1 - node_filesystem_free{ fstype=~“ext[34]|xfs”} /node_filesystem_size{ fstype=~“ext[34]|xfs”} ) * 100 > 85
    • for: 5m
    • labels: severity=warning
    • annotations: summary=“Disk usage high on { { $labels.mountpoint } } ”
      说明:指标名以所用 MongoDB Exporter 的暴露指标为准(不同发行版可能略有差异)。

五 运维与安全要点

  • 最小权限监控账号:为 Exporter 创建仅具 clusterMonitor 与(可选)readAnyDatabase 的只读账号,避免使用 root
  • 网络与防火墙:仅开放 9216/9100/9090/9093/3000 等必要端口,限制来源网段。
  • 高可用:生产环境建议 Prometheus 与 Alertmanager 做 多实例反亲和 部署,避免单点。
  • 日志与审计:保留 mongod.log(常见路径 /var/log/mongodb/mongod.log),必要时开启审计日志以追溯敏感操作。
  • 基线调优:结合业务峰值设置合理的 scrape_interval(如 15s)与 for 持续时间,减少抖动与告警疲劳。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: MongoDB在CentOS上的监控与告警如何设置
本文地址: https://pptw.com/jishu/760806.html
如何在CentOS上配置MongoDB的自动扩展 centos防火墙怎么配置开机自启

游客 回复需填写必要信息