Docs 菜单
Docs 主页
/
MongoDB Manual
/ / /

在 Linux 上使用 SNMP 监控 MongoDB

在此页面上

  • Overview
  • Considerations
  • 配置文件
  • 步骤
  • 可选:将 MongoDB 作为 SNMP 主节点运行

注意

Enterprise 版功能

SNMP 仅适用于 MongoDB Enterprise

MongoDB Enterprise可以通过 SNMP 提供数据库指标,支持集中式数据集合和聚合。 此操作步骤介绍如何设置和配置 mongod实例作为 SNMP 子代理,以及如何初始化和测试MongoDB Enterprise的 SNMP支持。

提示

另请参阅:

对 SNMP 进行故障排除使用 SNMP 监控 MongoDB Windows,以获取在 Windows 系统上将 MongoDB 与 SNMP 结合使用的完整说明。

  • SNMP 支持仅在mongod中可用。 其他 MongoDB 工具(例如mongos不支持 SNMP。

  • mongod 不支持使用 SNMP 陷阱。

MongoDB Enterprise 包括以下 SNMP 配置文件:

  • MONGOD-MIB.txt:

    定义 MongoDB 的 SNMP 输出的管理信息库 (MIB) 文件。 在 Ubuntu 和 Debian 平台上,此文件在交付时压缩为MONGOD-MIB.txt.gz ,并且必须使用gunzip解压缩。

  • mongod.conf.subagent:

    mongod作为 SNMP 子代理运行的配置文件。 此文件设置 SNMP 运行时配置选项,包括用于连接到 SNMP 主节点的agentXSocket

  • mongod.conf.master:

    mongod作为 SNMP 主节点运行的配置文件。 此文件设置 SNMP 运行时配置选项,包括要在其上运行的agentaddress

MongoDB SNMP 配置文件随 MongoDB Enterprise 安装提供,如下所示:

  • 如果通过包经理安装 MongoDB Enterprise,则在包安装过程中,这些文件将安装到以下目录:

    平台
    路径
    RHEL/CentOS
    /usr/share/doc/mongodb-enterprise-server-5.0.29
    Ubuntu/Debian
    /usr/share/doc/mongodb-enterprise-server
    SUSE
    /usr/share/doc/packages/mongodb-enterprise-server
  • 如果您通过.tgz tarball 安装了 MongoDB Enterprise,则这些文件包含在 tarball 中。

1

根据您的平台,将 MongoDB SNMP 配置文件从其安装位置复制到目标目录:

  1. 导航到 SNMP 文件的安装位置。 例如,如果您通过yum包经理安装了最新版本的 MongoDB:

    cd /usr/share/doc/mongodb-enterprise-server-5.0.29
  2. 将两个 MongoDB SNMP 文件复制到其目标目录:

    sudo cp MONGOD-MIB.txt /usr/share/snmp/mibs/
    sudo cp mongod.conf.subagent /etc/snmp/mongod.conf
  1. 导航到 SNMP 文件的安装位置。 例如,如果您通过apt包管理器安装了 MongoDB:

    cd /usr/share/doc/mongodb-enterprise-server
  2. MONGOD-MIB.txt.gz文件复制到其目标目录,然后解压缩:

    sudo cp MONGOD-MIB.txt.gz /usr/share/snmp/mibs/
    sudo gunzip /usr/share/snmp/mibs/MONGOD-MIB.txt.gz
  3. mongod.conf.subagent文件复制到其目标目录:

    sudo cp mongod.conf.subagent /etc/snmp/mongod.conf
  1. 导航到 SNMP 文件的安装位置。 例如,如果您通过zypper包经理安装了最新版本的 MongoDB:

    cd /usr/share/doc/packages/mongodb-enterprise-server
  2. 将两个 MongoDB SNMP 文件复制到其目标目录:

    sudo cp MONGOD-MIB.txt /usr/share/snmp/mibs/
    sudo cp mongod.conf.subagent /etc/snmp/mongod.conf
2

编辑/etc/snmp/snmpd.conf文件,并添加以下内容:

# sec.name source community
com2sec local localhost mongodb
# group.name sec.model sec.name
group MyRWGroup any local
# incl/excl subtree mask
view all included .1 80
# context sec.model sec.level prefix read write notif
access MyRWGroup "" any noauth 0 all all all
master agentx
AgentXSocket /tmp/agentx/master
AgentXPerms 0777 0777 mongod mongod
  1. 如果尚未安装snmpd ,请安装:

    sudo apt-get install snmpd
  2. 编辑/etc/snmp/snmpd.conf文件,并添加以下内容:

    # sec.name source community
    com2sec local localhost mongodb
    # group.name sec.model sec.name
    group MyRWGroup any local
    # incl/excl subtree mask
    view all included .1 80
    # context sec.model sec.level prefix read write notif
    access MyRWGroup "" any noauth 0 all all all
    AgentXSocket /tmp/agentx/master
    AgentXPerms 0777 0777 mongodb mongodb

编辑/etc/snmp/snmpd.conf文件,并添加以下内容:

# sec.name source community
com2sec local localhost mongodb
# group.name sec.model sec.name
group MyRWGroup any local
# incl/excl subtree mask
view all included .1 80
# context sec.model sec.level prefix read write notif
access MyRWGroup "" any noauth 0 all all all
master agentx
AgentXSocket /tmp/agentx/master
AgentXPerms 0777 0777 mongod mongod

此配置定义了一个 UNIX 域套接字,用于master代理 ( snmpd ) 和sub-agent(MongoDB) 之间的通信,并定义了用于访问相关 MongoDB SNMP 字段的基本 SNMP 权限。

注意

要将主节点绑定到非本地主机 IP 地址,请将该 IP 地址添加到/etc/snmp/snmpd.conf文件中的agentaddress字段,并更新相应的网络安全 ACL 以支持有效的地址范围。 作为示例, mongod.conf.master配置文件中提供了地址范围 10.0.0.0/8(安全名称为“mynetwork”)。

上述配置仅作为示例;您不妨根据站点的安全要求自定义权限。 虽然 MongoDB 支持部门可以提供有关为 SNMP 配置 MongoDB 的指导,但在操作系统上配置 SNMP 超出了我们的范围。

3

使用适合 Linux 版本的初始化系统在系统上启动 SNMP:

  • 对于使用systemdsystemctl命令)的 Linux 系统:

    sudo systemctl start snmpd
  • 对于使用System V initservice命令)的 Linux 系统:

    sudo service snmpd start
4

使用 启动 ,以将数据发送到 SNMPmongod snmp-subagent主节点。

mongod --snmp-subagent
5

使用snmpwalk测试命令验证 MongoDB 是否可用于 SNMP 查询。

  1. 在系统上安装snmpwalk

    sudo yum install net-snmp-utils
  2. 使用以下参数运行snmpwalk ,验证是否有能力从mongod收集数据:

    snmpwalk -m /usr/share/snmp/mibs/MONGOD-MIB.txt -v 2c -c mongodb 127.0.0.1:161 1.3.6.1.4.1.34601
  1. 仅限Debian :如有必要,请将 non-free存储库添加到 /etc/apt/sources.list文件中,以访问权限snmp-mibs-downloader包。 示例,在Debian 9 "Stretch" 上,主节点 (primary node in the replica set)存储库条目可能如下所示:

    deb http://deb.debian.org/debian stretch main non-free
    deb-src http://deb.debian.org/debian stretch main non-free
  2. Debian / Ubuntu :安装 snmp-mibs-downloader包以提供必要的 MIB 文件,然后重新启动 snmpd 服务以重新加载新的 MIB 文件:

    sudo apt-get update
    sudo apt-get -y install snmp-mibs-downloader
    sudo service snmpd restart
  3. Debian / Ubuntu :使用以下参数运行 snmpwalk,验证从mongod收集数据的能力:

    snmpwalk -m /usr/share/snmp/mibs/MONGOD-MIB.txt -v 2c -c mongodb 127.0.0.1:161 1.3.6.1.4.1.34601
snmpwalk -m /usr/share/snmp/mibs/MONGOD-MIB.txt -v 2c -c mongodb 127.0.0.1:161 1.3.6.1.4.1.34601

snmpwalk命令应显示 SNMP 字段的当前值,例如sysUpTimememoryResident等。

注意

上述 测试命令中使用的端口(端口snmpwalk 161)是snmpd 服务的默认端口, 而不是 portmongod的主 端口。如果您为snmpd服务配置了不同的端口,请在此处提供该端口。

您可以使用 选项运行mongod snmp-master进行测试。为此,请使用 SNMP 主配置文件而不是子代理配置文件。 在包含解压缩的 MongoDB 安装文件的目录中:

cp mongod.conf.master /etc/snmp/mongod.conf

注意

要将主节点绑定到非本地主机 IP 地址,请将该 IP 地址添加到/etc/snmp/mongod.conf文件中的agentaddress字段,并更新相应的网络安全 ACL 以支持有效的地址范围。 以主配置文件中提供的地址范围 10.0.0.0/8 和安全名称为“mynetwork”为例。

然后,使用 选项启动mongod snmp-master

mongod --snmp-master

后退

常见问题解答:诊断