Tips

SNMPについて 第3回

SNMPについて 第3回

SNMPについて

今回もSNMPについて記載していきたいと思います。

SNMPトラップの設定について

SNMPトラップをLinux でやるには
エージェント側に net-snmp パッケージが必要で snmpd が起動している必要がある。(snmptrapd の起動は必須ではない)
マネージャ側にも net-snmp パッケージが必要で snmptrapd が起動している必要がある。(snmpd の起動は必須ではない)

エージェント側の設定

ためしにリンクのアップダウンをSNMPトラップで飛ばすようにしてみた。

/etc/snmp/snmpd.conf
trapcommunity   traptest
trap2sink       192.168.100.193         traptest
createUser      internaluser    	MD5     	"internalpass"
rouser  internaluser
notificationEvent       linkUpTrap      linkUp          ifName          ifAdminStatus   ifOperStatus
notificationEvent       linkDownTrap    linkDown        ifName          ifAdminStatus   ifOperStatus
monitor -r   	 20	   		 -e      linkUpTrap      -u      internaluser    	"sampleLinkUp"        ifOperStatus   	 != 	     2
monitor -r     	 20     		 -e      linkDownTrap    -u      internaluser    	"sampleLinkDown"      ifOperStatus   	 ==	     2

trapcommunity でコミュニティ名を指定している(2行目の trap2sink があればなくてもよいかも)
trapcommunity

trap2sink でトラップの転送先を指定している
trap2sink

createUser で内部で監視する用のユーザを指定する(これは /etc/passwd などに実在しなくてもよい)
createUser

rouser で内部監視用ユーザに対するアクセス権を定義する
rouser

notificationEvent でイベントが起きた際に通知する MIB の情報をオブジェクト名もしくは OID で指定する。(イベント名は何でもよい)
notificationEvent ….

monitor で実際に監視するイベントとタイミングを定義する。(イベント名や内部監視用ユーザは上記で作成したものを指定する)
monitor -r -e -u “メッセージ”

snmpd の再起動

/etc/init.d/snmpd restart

今度は以下のようにして memmory のトータル量が 1111000 KB (約 1.1GB) 以下になったらトラップを出すようにしてみた。

/etc/snmp/snmpd.conf

notificationEvent       memfree         memTotalFree
monitor -r      20      -e      memfree         -u      internaluser    "memory non"    memTotalFree    <       1111000

snmpd の再起動

/etc/init.d/snmpd restart

これ以外にもおそらく sysName が変わった場合などの文字列 (STRING) の判定もできるはず
だが STRING の場合はうまく取れない

マネージャ側の設定

最低限必要なのは以下の設定である。

/etc/snmp/snmptrapd.conf

authCommunity		log,execute,net		traptest

authCommunity 挙動の設定 受け取るトラップのコミュニティ名

挙動の設定は以下を表す
log はログに出力するという意味。
execute はコマンドを実行する
net は他のネットワークに転送する

またその他にも SNMPv3で接続する際のユーザの設定や、IPの制限や、ログのフォーマットの変更などもできる

設定を変更したら起動、もしくは再起動する。
SNMPトラップの起動

# /usr/sbin/snmptrapd -Lad

もしくは

# /etc/init.d/snmptrapd start

loggerコマンドについて

loggerコマンドに引数をつけて実行すると /var/log/messages ファイルにログが吐き出される。

[root@localhost ~]# logger  bakebake
[root@localhost ~]# tail /var/log/messages
Sep 15 03:09:01 localhost rsyslogd: [origin software="rsyslogd" swVersion="5.8.10" x-pid="847" x-info="http://www.rsyslog.com"] rsyslogd was HUPed
Sep 17 15:07:05 localhost init: serial (hvc0) main process ended, respawning
Sep 17 15:13:15 localhost yum[8074]: Installed: 1:net-snmp-5.5-44.el6_4.4.x86_64
Sep 17 15:14:07 localhost snmptrapd[8092]: NET-SNMP version 5.5
Sep 17 15:16:37 localhost root: bakebake

Linux認定資格 LPICを取るなら・・

Linux資格 「LPIC Lv1」徹底解説 連載目次

Recent News

Recent Tips

Tag Search