Linux で SNMP を使用して MongoDB を監視する
注意
エンタープライズ機能(非推奨)
MongoDB 6.0以降、 SNMP は非推奨であり、次のリリースで削除される予定です。 配置をモニタリングするには、 MongoDB Ops Managerを使用します。
SNMP はMongoDB Enterpriseでのみ利用可能です。
Overview
MongoDB Enterprise は、一元化されたデータコレクションと集計をサポートし、SNMP 経由でデータベース メトリクスを提供できます。 この手順では、SNMP サブエージェントとしての mongod
インスタンスの設定と構成、および MongoDB Enterprise による SNMP サポートの初期化とテストについて説明します。
Tip
以下も参照してください。
Windows システムで SNMP とともに MongoDB を使用する完全な手順については、「 SNMP のトラブルシューティングと SNMP を使用して MongoDB Windows をモニターする 」を参照してください。
Considerations
構成ファイル
MongoDB Enterprise には次の SNMP 構成ファイルが含まれています。
MONGOD-MIB.txt
:MongoDB の SNMP 出力を定義する管理情報ベース(MIB)ファイル。 Ubuntu および Debian プラットフォームでは、このファイルは
MONGOD-MIB.txt.gz
として圧縮されて出荷され、gunzip
を使用して解凍する必要があります。mongod.conf.subagent
:SNMP サブエージェントとして
mongod
を実行するための構成ファイル。 このファイルは、SNMP マスターに接続するためのagentXSocket
など、SNMP ランタイム構成オプションを設定します。mongod.conf.master
:mongod
を SNMP マスターとして実行するための構成ファイル。 このファイルは、実行するagentaddress
を含む SNMP ランタイム構成オプションを設定します。
MongoDB SNMP 構成ファイルは、次のように MongoDB Enterprise インストールで提供されます。
パッケージ マネージャーを使用して MongoDB Enterprise をインストールした場合、これらのファイルはパッケージ インストール プロセスの一部として次のディレクトリにインストールされます。
プラットフォームパスRHEL / CentOS/usr/share/doc/mongodb-enterprise-server-6.0.17
Ubuntu / Debian/usr/share/doc/mongodb-enterprise-server
SUSE/usr/share/doc/packages/mongodb-enterprise-server
MongoDB Enterprise を
.tgz
tarball からインストールした場合、これらのファイルは tarball に含まれていました。
手順
構成ファイルをコピーします。
プラットフォームに応じて、MongoDB SNMP 構成ファイルをインストールからターゲット ディレクトリにコピーします。
SNMP ファイルがインストールされたロケーションに移動します。 たとえば、
yum
パッケージ マネージャーを使用して MongoDB の最新バージョンをインストールした場合は次のようになります。cd /usr/share/doc/mongodb-enterprise-server-6.0.17 2 つの MongoDB SNMP ファイルをターゲット ディレクトリにコピーします。
sudo cp MONGOD-MIB.txt /usr/share/snmp/mibs/ sudo cp mongod.conf.subagent /etc/snmp/mongod.conf
SNMP ファイルがインストールされたロケーションに移動します。 たとえば、
apt
パッケージ マネージャーを使用して MongoDB をインストールした場合は次のようになります。cd /usr/share/doc/mongodb-enterprise-server MONGOD-MIB.txt.gz
ファイルを対象のディレクトリにコピーし、解凍します。sudo cp MONGOD-MIB.txt.gz /usr/share/snmp/mibs/ sudo gunzip /usr/share/snmp/mibs/MONGOD-MIB.txt.gz mongod.conf.subagent
ファイルをターゲット ディレクトリにコピーします。sudo cp mongod.conf.subagent /etc/snmp/mongod.conf
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
SNMP を設定します。
/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
snmpd
がまだインストールされていない場合は、インストールします。sudo apt-get install snmpd /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
この構成では、マスター( snmpd
)とサブエージェント(MongoDB)間の通信用の UNIX ドメイン ソケットを定義し、関連する MongoDB SNMP フィールドにアクセスするための基本的な SNMP 権限を定義します。
注意
マスターをローカルホスト以外の IP アドレスにバインドするには、その IP アドレスを/etc/snmp/snmpd.conf
ファイルのagentaddress
フィールドに追加し、適切なネットワーク セキュリティ ACL を更新して有効なアドレス範囲を許可します。 セキュリティ名が「mynetwork」を持つ 10.0.0.0/8 のアドレス範囲が例として、 mongod.conf.master
構成ファイルに指定されています。
上記の構成は例としてのみ示しています。サイトのセキュリティ要件に基づいて権限をカスタマイズする場合があります。 MongoDB のサポートでは SNMP 用の MongoDB の設定に関するガイダンスは提供できますが、オペレーティング システムでの SNMP の構成は範囲外です。
MongoDB を起動します。
mongod
snmp-subagent
で を起動し、SNMP マスターにデータを送信します。
mongod --snmp-subagent
SNMP データの取得を確認します。
MongoDB が SNMP クエリでアクセスできることを確認するには、 snmpwalk
テスト コマンドを使用します。
システムに
snmpwalk
をインストールします。sudo yum install net-snmp-utils 次のパラメータを指定して
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
Debianのみ: 必要に応じて、
snmp-mibs-downloader
パッケージにアクセスするために、non-free
リポジトリを/etc/apt/sources.list
ファイルに追加します。 たとえば、Debian 9 "Strict" では、プライマリ リポジトリ エントリは次のようになります。deb http://deb.debian.org/debian stretch main non-free deb-src http://deb.debian.org/debian stretch main non-free Debian / Ubuntu : 必要なMIBファイルを提供するために
snmp-mibs-downloader
パッケージをインストールし、snmpd
サービスを再起動して新しいMIBファイルを再読み込みします。sudo apt-get update sudo apt-get -y install snmp-mibs-downloader sudo service snmpd restart 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
コマンドは、 sysUpTime
やmemoryResident
などの SNMP フィールドの現在の値を表示します。
オプション: MongoDB を SNMP マスターとして実行
mongod
snmp-master
テスト目的で、 オプションとともに実行できます。これを行うには、サブエージェント構成ファイルの代わりに SNMP マスター構成ファイルを使用します。 解凍された MongoDB インストール ファイルを含むディレクトリから次の操作を行います。
cp mongod.conf.master /etc/snmp/mongod.conf
注意
マスターをローカルホスト以外の IP アドレスにバインドするには、その IP アドレスを/etc/snmp/mongod.conf
ファイルのagentaddress
フィールドに追加し、適切なネットワーク セキュリティ ACL を更新して有効なアドレス範囲を許可します。 マスター構成ファイルには、セキュリティ名が「mynetwork」を持つ 10.0.0.0/8 のアドレス範囲が例として提供されています。
次に、 オプションを使用してmongod
snmp-master
を起動します。
mongod --snmp-master