ZABBIXとHAとSNMPTrapとSNMPTT
ZABBIX2以上+Heartbeatの環境でSNMPTTを使ってトラップを受信していると、ちゃんと考えると問題が多少あったりします。
とりあえず簡単にZABBIX2以上でのSNMPトラップの動きをまとめると以下のような感じ。
- snmptrapdがSNMPtrapを受信 (-On付けて起動してOIDは解決しないようにね!)
- snmptrapdはSNMPTTに送信
- ZABBIXは常にSNMPTTの吐き出す出力ファイル(標準/var/log/snmptt/snmptt.log)を監視して、増えた分をトラップとして出力 なお登録先ホストはIPで解決するので変にDNSとかで解決しないように設定すること
このうち3が曲者で、HA構成にしてる片方ずつにファイルが出来てるので切り替えたときに不思議な動きになる。
切り替えたときに片側で受信したことのある行が全部出てしまったり、あるいは行数を保存されているためかトラップを送信しても検知されなかったり。
結論としてはGlusterFSとかDRBDの領域を作ってsnmptt.logを置いてしまえばOK。ただしログローテーションの仕組みが怪しくなるので、logrotate.dでは片方にだけ登録しておいた方が無難。
⇒可能な限り1号機preemptな感じがいい