snmpエージェントによって構築されたMIB(Management Information Base)にアクセスしてみる。
MIBにはマシン情報(cpu負荷、ネットワーク負荷、HDD空き容量ら)が含まれていてsnmpマネージャでアクセス、読み取れる。
この機構を使ってcactiのようなマシン情報(cpu負荷、ネットワーク負荷、HDD空き容量ら)の一元監視が可能となる
まずはMIBにアクセスできるようにsnmpエージェント(snmpdデーモン)を起動させます。
[root@c ~]# yum install net-snmp
そして設定ファイル /etc/snmp/snmpd.confを調整する
|
既定では提供するMIBの範囲を制限しているが、ここでは全部公開してます 「view all included .1」の部分
そして、このsnmpにアクセスする際のパスワード(コミュニティ名)は既定の「public」のままです。
これでsnmpのデーモン「snmpd」を起動させます
[root@c ~]# systemctl enable snmpd
[root@c ~]# systemctl start snmpd
ローカルマシンでも、リモートマシンからでもsnmpマネージャアプリ(snmpクライアント)をインストールして
[root@c ~]# yum install net-snmp-utils
たとえば
[root@c ~]# snmpwalk -v2c -c public localhost 1.3.6.1.2.1 | less
とすれば情報が見られます。
*リモート接続の場合は、相手側のsnmpエージェントのfwで161(tcp/udp)を空けて置く
snmpを起動すると
[root@c ~]# ps x|grep snmpd | grep -v grep
5234 ? Ss 0:03 /usr/sbin/snmpd -LS0-6d -f
[root@c ~]#
として起動する
-LS0-6dとは、snmpで発生したログの採取対象を定義している。
数字の0-6は、
0:LOG_EMERG システムが落ちるような状況
1:LOG_ALERT 緊急に対処すべきエラー
2:LOG_CRIT 致命的なエラー
3:LOG_ERR 一般的なエラー
4:LOG_WARNING 警告
5:LOG_NOTICE 通知
6:LOG_INFO 情報
7:LOG_DEBUG デバック情報
とあらわす。dは、7のLOG_DEBUG(デバック情報)でもある。
っで、通常このままなら、デフォでsyslogに情報が回る。syslogで特定の入口、ファシリティ(facility)を
定義すれば、そのsyslogにだけログを回すこともできる。
local5をsnmpのファシリティに使うなら
*.info;mail.none;authpriv.none;cron.none;local5.none /var/log/messages
local5.* /var/log/snmp.log
(local5の内容はmessagesには記載せず、snmp.logのみ記載する)
と定義して、
/usr/sbin/snmpd -LS0-6d -Ls 5 -Lf /dev/null -p /var/run/snmpd.pid
と-Ls 5を追加します