大学で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 も作成できる。
ネットワーク管理をする人は詳しく勉強すると幸せになれそう。
コメント