ver.1.8→2.0にアップグレードした際のSNMPtrapについて

お世話になっております。
最近Zabbixをさわりはじめた若輩者ですが
力添えをいただいてもよろしいでしょうか。

■現状
最近、Zabbixのバージョンを1.8から2.2にアップグレードすべく
情報を集めたところ、1.8→2.0→2.2という流れでアップグレードを行えば、
現在の設定情報を引き継いでアップグレードができるという情報を得ました。
そこで1.8から2.0にバージョンアップを行ったところ、
監視設定などのほぼほぼの設定は引き継ぐことができ1.8の時と同じように見れているのですが、
SNMPtrapのところだけ、バージョン2.0になったらSNMPtrapの情報が拾えていないようで
最新データにイベント情報が取得できず、メール通知が飛ばなくなってしまいました。
サーバーのログを確認したところSNMPtrapの処理は動いているようでした。
バージョンアップ前はちゃんとSNMPtrapのイベント情報がとれてメール通知も送信されていました。
目的はSNMPtrapのイベント情報取得とメール通知の復活です。
何かSNMPの方で行う設定が足りないのでしょうか?

■バージョンアップで現在まで行った作業
①zabbix-release-2.0-1.el6.noarch.rpmをインストール
⇒# rpm -ivh zabbix-release-2.0-1.el6.noarch.rpm
 # yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
②データベースのアップグレード
⇒# mysql -u root -p zabbix < /usr/share/doc/zabbix-server-mysql-2.0.12/upgrades/dbpatches/2.0/mysql/patch.sql

■メール通知設定
【アクション実行条件】
トリガーの値 = "障害"
トリガーの深刻度 = "情報"
ホスト = "snmptraps"

【アイテムの設定】
名前:snmptraps
タイプ:Zabbixトラッパー
キー:snmptraps
データ型:テキスト

【トリガーの条件式】
(({snmptraps:snmptraps.regexp("")})#0)&(({snmptraps:snmptraps.regexp(@正規表現)})#0)&(({snmptraps:snmptraps.nodata(300)})=0)

実験的に以下のコマンドを実行したところ、Zabbixの方でイベント情報が拾うことができ、通知メールが飛んできました。
/usr/bin/zabbix_sender -z 127.0.0.1 -p 10051 -s snmptraps -k snmptraps -o "TEST"

Zabbixのバージョンは2.0.12、OSはRHEL6.2を使用しています。
どうかご教授くださいますようよろしくお願い致します。
不足している情報がありましたら再度提示いたしますので教えてください。

コメント表示オプション

お好みのコメント表示方法を選び「設定の保存」をクリックすると変更が反映されます。
ユーザー KAZ の写真

KKさん

下記を実行すると何が表示されますか?
rpm -qa|grep zabbix

ユーザー KK の写真

KAZさん

コマンド実行いたしました。
インストールされているパッケージはこちらです。

zabbix-server-2.0.12-1.el6.x86_64
zabbix-web-mysql-2.0.12-1.el6.noarch
zabbix-release-2.0-1.el6.noarch
zabbix-web-2.0.12-1.el6.noarch
zabbix-agent-2.0.12-1.el6.x86_64
zabbix-sender-2.0.12-1.el6.x86_64
zabbix-jp-release-6-5.noarch
zabbix-server-mysql-2.0.12-1.el6.x86_64
zabbix-2.0.12-1.el6.x86_64
zabbix-web-japanese-2.0.12-1.el6.noarch

ユーザー heya の写真

こんにちは。

snmptrapd.conf はどうなっていますか?
確か以前の一般的な方法では snmptrapd が snmptrap.sh を実行して、その中で zabbix_sender を使っていたような記憶があります。この snmptrap.sh がバージョンアップの拍子に消えたとか別の場所に移ったいうことはありませんかね?
#無さそうな気はしますが、一応。

ユーザー KK の写真

現在のsnmptrapd.confファイルとsnmptrap.shファイルです。
内容は1.8から設定はそのままで変更していません。

■/etc/snmp/snmptrapd.conf
authCommunity log,execute,net 自社net
authCommunity log,execute,net public
traphandle SNMPv2-MIB::authenticationFailure /bin/bash /etc/zabbix/output_null.sh
traphandle default /bin/bash /etc/zabbix/snmptrap.sh

■/etc/zabbix/snmptrap.sh
#! /bin/sh

ZABBIX_SERVER="自サーバIP"
ZABBIX_SENDER="/usr/bin/zabbix_sender"
KEY="snmptraps"
HOST="snmptraps"

str=""

while read line; do
str="$str\n$line"
done

str='echo -e $str'

$ZABBIX_SENDER -c /etc/zabbix/zabbix_agentd.conf -s $HOST -k $KEY -o "$str"

ユーザー heya の写真

こんにちは。

バージョンアップ後、 zabbix_agentd.conf は変更しましたか?
snmptrap.sh 内で実行する zabbix_sender は、 -c /etc/zabbix/zabbix_agentd.conf とあるので zabbix_agentd.conf から設定を読むようになっているようです。サーバーのアドレス(データの送信先)は ServerActive (1.8.12 で追加された項目です)の値を読むらしいので、これが設定されていないとうまく送れないと思います。
https://www.zabbix.com/documentation/jp/2.0/manual/appendix/config/zabbi...

KK さんがテストされたときは -z 127.0.0.1 と指定していたのでうまくいったんじゃないかなと。
#余談ですが、ZABBIX_SERVER は値を入れるだけ入れてどこにも使われていないようですね・・・。

ユーザー KK の写真

heyaさん

zabbix_agentd.confファイルは下記になります。
こちらも設定は変更していません。
バージョンアップを行う前はver1.8.10で
それまでの設定はいなくなってしまった前任者が行っていたのですが
ServerActiveの設定はしてあったようです。

■/etc/zabbix/zabbix_agentd.conf
PidFile=/var/run/zabbix/zabbix_agentd.pid
LogFile=/var/log/zabbix/zabbix_agentd.log

Server=自サーバIP
ListenIP=自サーバIP
ServerActive=自サーバIP
Hostname=自サーバネーム

Include=/etc/zabbix/zabbix_agentd.d/

ユーザー heya の写真

こんにちは。

ServerActive は設定してあったんですね。それなら、なぜできないんだろう・・・?
snmptrap.sh を手動で実行してみたらどうなりますかね?
適当な文字列を標準入力から入れればそれがサーバーに伝わると思うんですが。
例:echo TEST | /etc/zabbix/snmptrap.sh

失敗時は、以下を確認してみてください。
・実行したとき何かエラーが表示されるか
・zabbix_server.log に何か出ないか
・ちゃんと 10051 番に送信しているか(tcpdump で確認)

それでも何も分からなければ、-z と -p の代わりに -c で zabbix_sender を実行してみるとか。
/usr/bin/zabbix_sender -c /etc/zabbix/zabbix_agentd.conf -s snmptraps -k snmptraps -o "TEST"
#つまり snmptrap.sh で実行しているのと同じ引数で試すのです。

ユーザー KK の写真

heyaさん

コメント遅くなりました。
まずごめんなさい。先日載せたzabbix_agentd.confファイルですが
試験環境用に用意したconfファイルを誤って載せてしまい、
確認したところ、指摘通りServerActiveの設定が抜けておりました。
ServerActiveの設定を追加したところ以前と同じように処理が動きました。
メール通知も無事飛ぶようになりました。

大変お騒がせしました。そして助かりました!ありがとうございます!