snmptrap監視運用について

毎度、
お世話になります。

ここ最近、
zabbix運用の仕様を変更している関係上、
いくつかはまってしまったことがあり少しずつ解決しているのです
が、もうひとつお聞きしようと思います。

一般に、
障害が発生すると、トリガーがヒットし、「監視データ」の「トリ
ガー」の一覧に追加されステータスが変化し一覧から消える。
と言った一連の動作になると思います。

snmptrapの監視運用を考えると、作成したホスト(snmptrap)の
アイテム(snmptrap)に文字列データとして格納されてゆきます。

ここで、
この受信した文字列データを、「トリガー」一覧のような画面に
一覧表示させる機能ってzabbixで実現出来るのでしょうか?

一般的にzabbixでは受信したsnmptrapを知る機能としては、
「監視データ」の「最新データ(これも一覧ですが)」で「最新の値」
を覗く以外に、他にどれがあたるのでしょうか?

皆さんはどのようにされてるのかなあ?!

(見落としている機能もあるかと思いますのでどんどん突っ込み
お願いします。)

OS:Cent5.5
Version:1.8.2-1.JP

よろしくお願いします。

コメント表示オプション

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

お世話になります。

失礼しました。

要は、
snmptrapを受信したら、トリガーをヒットさせ、
「監視データ」−>「トリガー」で確認する。

と言ったようなトリガーを作りたいのですがうまく行きません。
文字列評価でstr(*)などとやってみてんですが。

ステータスの判断不可のものをヒットさせることは出来ないの
でしょうか。

すいませんがよろしくお願いします。

ユーザー kodai の写真

こんにちは。

snmptrapで受信したデータを利用して障害判定するだけであれば、通常のトリガー設定で可能です。

トリガー画面やイベント画面でヒストリの内容を表示するためには、トリガー名に{ITEM.VALUE}を利用できると思う(マニュアルにはそう書いてある)のですが、内部的には動作が少し怪しかったりします。

ユーザー fine の写真

kodaiさん
お世話になります。

そうなんですかあ。
確かに怪しいかも?!知れないです。

はじめ以下のようにやってみました。

{snmptrap:snmptrap.str(*)}=1

つまりすべてをヒットさせる記述です。(だと思いますが。?!)

手動でコマンドを発行するとヒットしメッセージに表示されます。
でも二回目に発行すると同じメッセージとして判断され都合悪い
です。
なお、外部からのトラップには反応しません。

もう少しご指摘のマニュアルを覗いてみます。

ありがとうございました。

ユーザー KAZ の写真

fineさん

{snmptrap:.str(*)}=1

つまりすべてをヒットさせる記述です。(だと思いますが。?!)

手動でコマンドを発行するとヒットしメッセージに表示されます。
でも二回目に発行すると同じメッセージとして判断され都合悪い
です。

イベント生成は「ノーマル+障害イベントを継続して生成」にしていますか?

ユーザー fine の写真

KAZさん
お世話になります。

アイテム、トリガー削除し作り直したりしてみましたが
「ノーマル」と、「ノーマル+障害イベントを継続して生成」で
試してみましたがコマンドを発行するごとのメッセージには
なりません。

コマンドは以下のようにしています。

zabbix_sender -c /etc/zabbix/zabbix_agents.conf -s snmptrap -k snmptrap -o "TEST0x"

「監視データ」->「最新データ」にはコマンド毎に蓄積されます。

何かやり方自体がおかしいですか?!

ユーザー heya の写真

こんにちは。
ちょっと見当違いのこと書いているかもしれませんが、横から失礼します。

> {snmptrap:snmptrap.str(*)}=1
> つまりすべてをヒットさせる記述です。(だと思いますが。?!)

1.「すべてをヒットさせる」というのは、どこに書いてありますか?少なくとも
http://www.zabbix.com/documentation/1.8/manual/config/triggers
の4.12.2. Trigger functionsの表の中のstrのところにはそれらしい記述はありません。

2.トラップのアイテムの“キー”(アイテムの“説明”ではなく)は、確かにsnmptrapですか?snmptrapsではなく?
最新データに蓄積されるなら大丈夫だとは思うんですが、一応。

私のところでは、
{ホスト名:snmptraps.regexp(.)}=1
という設定にしています。これがベストの方法なのかどうかは分かりませんが、とにかくこの設定でトラップを受け取るごとにトリガーが発動(※)しています。strでなくregexpを使ってみたらどうでしょうか。
※発動って言葉があっているかどうか怪しい・・・。

外部からのトラップに反応しないのは、
・snmptrapdは起動しているか&snmptrapd.confは間違っていないか
・IPv6も使うのか(使う場合はsnmptrapdの起動オプションを少し変える必要がある)
・ちゃんとトラップは届いているか(フィルターではじかれていないか)
・hosts.allow/hosts.denyでsnmptrapdを許可しているか
この辺りも一度確認してみるといいと思います。

ユーザー KAZ の写真

heyaさん

返信ありがとうございます。

1.「すべてをヒットさせる」というのは、どこに書いてありますか?少なくとも
http://www.zabbix.com/documentation/1.8/manual/config/triggers
の4.12.2. Trigger functionsの表の中のstrのところにはそれらしい記述はありません。

多分ですが、正規表現で「*」のみなのでどんな文字列でもヒットすると考えられたのかと。

2.トラップのアイテムの“キー”(アイテムの“説明”ではなく)は、確かにsnmptrapですか?snmptrapsではなく?
最新データに蓄積されるなら大丈夫だとは思うんですが、一応。

アイテムのキーとzabbix_senderの-kオプションが同じならなんでもOKです。
後、snmptrap.shのKEYも同じ名前の必要があります。
デフォルトは「snmptrap[u]s[/u]」です。

私のところでは、
{ホスト名:snmptraps.regexp(.)}=1
という設定にしています。これがベストの方法なのかどうかは分かりませんが、とにかくこの設定でトラップを受け取るごとにトリガーが発動(※)しています。strでなくregexpを使ってみたらどうでしょうか。

検証しました。確かに毎回ヒットしますね。

外部からのトラップに反応しないのは、
・snmptrapdは起動しているか&snmptrapd.confは間違っていないか
・IPv6も使うのか(使う場合はsnmptrapdの起動オプションを少し変える必要がある)
・ちゃんとトラップは届いているか(フィルターではじかれていないか)
・hosts.allow/hosts.denyでsnmptrapdを許可しているか
この辺りも一度確認してみるといいと思います。

heyaさんが指摘しているキーのsnmptrapとsnmptrapsの差かと。
snmptrap.shがキー:snmptrapsで、アイテム登録がキー:snmptrapになっているのかと思います。

ユーザー fine の写真

heyaさん
KAZさん
皆様、お世話になります。

【str(*)の件】
始めいろいろな文字列で目的通りヒットしていたので任意の文字
どれでも含まれればと言う意味でstr(*)を試してみて実際ヒット
したので使っていました。
もちろん、regexp(.)も知っていました。
以後こちらに直します。

【snmtrapsキーの件】
当方では、snmptrapsは監視パラメータではないとなりエラーに
なってしまいます?!
snmptrapd.confが呼び出すscriptの記述に合わせているので
大丈夫かと。

【トリガー毎回ヒットの件】
トリガーは毎回ヒットしていたのですが、メッセージが複数行
にならなかったと言うことです。
でもよく考えると、同一ホストのアイテムのトリガーです
から複数行にはならないですよね。(失礼いたしました。)

【外部trap未反応の件】
「監視データ」->「最新データ」には外部trapがヒストリされて
いるのでFWやラッパー系ではないような気がします。
本日もいくつか受信しているのですがトリガーがヒットしま
せん。
ただ、regexp(.)ではまだ受信していないので、こちらで検証
しようと思います。

ほんとにいろいろ申し訳ありません。

皆様、本当にありがとうございます。

ユーザー fine の写真

皆様、お世話になります。

本日、外部trap受信を確認したところ、
トリガーがヒットしてトリガー一覧に障害として表示されました。
regexp(.)にしたことでトリガーヒットしたものと思われます。

ただ少し問題があります。

それは、

?該当メッセージを障害対応済にして上部のフィルターの
 イベント欄で「未対応を表示(7日)」としても一覧から消えて
 くれない。

?ステータス遷移がないから(障害のまま)一覧から消える
 ことがない。
 (ヒストリの保存期間を極端に小さくすればendが来れば消える
 んでしょうね。)

いろいろ運用上で工夫すればよいのでしょうかね?!
heyaさんはどうされてますかあ?

よろしくお願いします。

ユーザー fine の写真

皆様
お世話になります。

だらだらと妙な質問をしてしまい、すいませんでした。

ところで、
上記のトリガー一覧からホストsnmptrapのトリガーヒット
メッセージが消せる方法がありました。
(大変イレギュラーな方法です。BUGでしょうか?!)

「設定」->「ホスト」で、該当トリガーの項目設定Windowを開き
そのまま何もせず「保存」で閉じる。

トリガー一覧がリフレッシュすると100%消えます。

通常トリガーメッセージのステータスが正常になったのと同等の
扱いになるんでしょうね。(多分)

理想は、
障害対応済みにしてフィルターで一覧から外したいです。

失礼しました。

ユーザー heya の写真

こんにちは。

実は、まだ実運用は始まってなくて、どこで何のデータが見られるのかというところまではあまり把握していない状態です(最新データとか、そのリンク先のグラフぐらいしか見ていません)。
#どこで何のデータが見られるのか、とか、そのときのオプションの意味とか(要はデータの見方)が
#書かれているところってどこかご存じないですか?マニュアルの目次を見てもよく分からない・・・。

とはいえ、いずれ必要になってくるのかなとも思うので、ちょっとその辺りいろいろ試してみました。

> ?該当メッセージを障害対応済にして上部のフィルターの
>  イベント欄で「未対応を表示(7日)」としても一覧から消えて
> くれない。

トリガーの欄で「障害対応コメントが未入力のトリガーのみ表示」とすればお望みの動作になりませんか。たぶんそういうことだと思うんですが・・・。あと、イベントの欄は、各トリガーの詳細を開いた状態、つまり、一番左の+をクリックしてイベント一覧がずらっと出た状態で、そのイベントのうちのどれを表示するか、という選択肢のようです。

#障害対応コメントと障害対応済み/未対応の関連もよく分かっていません。
#コメントを書けばそのイベントは対応済みに、全てのイベントが対応済みになれば
#トリガーも障害対応済みになる??? でも勝手に障害対応済みになっているのもあるし・・・。

> ?ステータス遷移がないから(障害のまま)一覧から消える
>  ことがない。
>  (ヒストリの保存期間を極端に小さくすればendが来れば消える
>  んでしょうね。)

こっちはよく分かりませんでした。そういうものだと思ってあきらめるとか?
・・・と書いているところでnodataというのを思い出したので、試してみました。
 条件式:{ホスト:snmptraps.nodata(30)}=0&{ホスト:snmptraps.regexp(.)}=1
 イベント生成:ノーマル
これで30秒後に「正常」に戻りました。fineさんのところではキーはsnmptrapでしたっけ。まあその辺は適当に変更すればいいとして、これでどうでしょうか?

ユーザー fine の写真

heyaさん
お世話になります。

トリガーの欄で「障害対応コメントが未入力のトリガーのみ表示」とすればお望みの動作になりませんか。

そう言うことなんですね。
その都度、対応済にする運用にすればいいですね。

条件式:{ホスト:snmptraps.nodata(30)}=0&{ホスト:snmptraps.regexp(.)}=1
 イベント生成:ノーマル

これに関しては、検証してみます。

いろいろやってもらってすいませんでした。

heyaさん
皆様
ありがとうございました。