大学でSNMP (Simple Network Management Protocol) に触れてみた。

SNMP はMIB (Management Information Base) という木構造の管理情報を記録・参照することで、
機器の状態を取得できる仕組みで、ネットワーク機器を中心に採用されている。

情報を提供するマネージャと、情報を取得するエージェントで構成され、
エージェントがマネージャの情報を要求する操作をwalk、
マネージャがエージェントに情報を送りつける操作をtrapという。

SNMP に触れるには、Net-SNMP というライブラリを使うのが一般的らしい。
エージェントとマネージャを作成して、エージェントからsnmpwalkコマンドで情報を取得してみる。

マネージャでは、snmpd を起動しておく。

$ ps ax | grep snmpd
  426 ?        S    281:11 /usr/local/sbin/snmpd -Lf /dev/null -p /var/run/snmpd -a

エージェントから、walk により端末名を取得してみる。

/usr/local/bin/snmpwalk -v2c -c public test.home.yasu-hide.com sysName
SNMPv2-MIB::sysName.0 = STRING: test.home.yasu-hide.com

標準MIB の中身を確認すると、稼働中のプロセス名や起動時間など、様々な情報が取得できることもわかる。
また、エンタープライズMIB と言って、固有の情報を記録するMIB も作成できる。
ネットワーク管理をする人は詳しく勉強すると幸せになれそう。