Zabbixアプライアンスサーバ(ZS-5220)を使用し、ストレージ機器に対して、SNMPトラップの設定を致しました。 SNMPトラップのテストを実施している際に、除外したいエントリーが出てきたのですが、除外したいエントリーの 登録はどのように実施すればよろしいでしょうか?
どのように設定されたのですか?
もしかして、snmptrap.fallbackを使っていませんか? その場合、受け取るトラップをフィルタリングすることはできませ ん。
受け取ってトリガーでハンドリングするトラップを限定するか、
snmptrap[regexp]
の方を利用して、必要なトラップのみを受け取るようにされた方が 良いのではないでしょうか。
--- 追記 --- snmpttを利用されているのであれば、heyaさんが書かれている通り、 snmpttの設定で特定のトラップを無視できそうです。
こんにちは。
除外する方法は、何通りかあります。 ・完全無視でいいなら、snmptt.conf で該当のトラップに IGNORE を指定する。 ・ログは残しつつアイテムとして収集しないのであれば、Zabbix のアイテムでパラメーターにカスタム正規表現を使う。 ・アイテムとして収集するがトリガーで反応しないのであれば、Zabbix のトリガーで regexp を使ってパラメーターにカスタム正規表現を使う。
カスタム正規表現とは、管理→一般設定→正規表現 で設定するものです。除外の場合ここで「文字列が含まれない」や「結果が偽」を使います。
追記:TNK さんとかぶってしまいましたね。書かれている通り、snmptrap.fallback だとパラメーター指定はできません。指定するなら snmptrap を使います。
もしかして、snmptrap.fallbackを使っていませんか? その場合、受け取るトラップをフィルタリングすることはできませ ん。 →はい。snmptrap.fallbackを使用しています。 その場合は、除外することは難しいでしょうか?
何を実現したいのですか? ・完全無視したい?→上に書いた通り snmptt.conf で IGNORE ・ログは残しつつアイテムとして収集したくない?→snmptrap.fallback では無理 ・アイテムとして収集するがトリガーで反応させたくない?→普通に regexp +カスタム正規表現
どうしても二つ目のが実現したいなら、snmptrap.fallback ではなく snmptrap を使って、「他の snmptrap のアイテムで取得しているトラップ+除外したいトラップ」以外を取得、とするしかないでしょうね。
実現可能かどうかはわかりませんが、
・snmptrap.fallbackでアイテムは設定したまま。
・除外したい特定の文字列をトリガー等で設定したい。
各機器でSNMPトラップのメッセージ一覧が公開されてないため、 snmptrapですと設定が難しいです。
ちなみに今の設定は以下の通りです。
アイテム:snmptrap.fallback トリガー:{Template SCC SNMPTRAP:snmptrap.fallback.strlen()}>0
このトリガーは残しつつ、除外したいメッセージ設定を追加するには どうしたらいいでしょうか?
アイテムの値取得時にフィルタリングもせず、かつそのトリガーの 条件式を残すのなら無理です。 その設定では、除外する処理を挟むことができません。
heyaさんが書かれている回答での対応が必要だと思います。
Zabbixを初めて構築しているので、申し訳ございません。
snmptrap.fallbackを使用している限りは無理ということでしょうか?
それともトリガーの条件を変更すれば可能でしょうか? ※除外したい項目以外エラーを出力する設定を実装する。
何回も同じ質問になってしまって申し訳ございません。
アイテムはデータをためるもので トリガはイベントをつくるものです。 なので
・snmptrap.fallbackでアイテムは設定したまま。 ・除外したい特定の文字列をトリガー等で設定したい。
であれば 考え方としては hayaさんの
・アイテムとして収集するがトリガーで反応させたくない?→普通に regexp +カスタム正規表現
に合致しているのだとおもいます。 regexpで指定する正規表現は トリガの条件式内で書くのではなく 管理→一般設定→正規表現 で定義をした上で参照してください。 直接指定してもいいんですが 複数の条件を1つの正規表現定義のなかに詰め込めるので あとあと幸せになれます。 たとえば・・・
名前 条件式 reg_trapignore 1 >> 無視するんだもんねキーワード [結果が偽]
のような正規表現を登録し トリガの式で
{Template SCC SNMPTRAP:snmptrap.fallback.regexp(@reg_trapignore)}=1
のような条件を指定すれば 除外条件(上記では「無視するんだもんねキーワード」)にマッチしないものでトリガが動作するはずです。
アカウント名 kym
Zabbix関連
TNK - 投稿数: 4755
どのように設定されたのですか?
もしかして、snmptrap.fallbackを使っていませんか?
その場合、受け取るトラップをフィルタリングすることはできませ
ん。
受け取ってトリガーでハンドリングするトラップを限定するか、
snmptrap[regexp]
の方を利用して、必要なトラップのみを受け取るようにされた方が
良いのではないでしょうか。
--- 追記 ---
snmpttを利用されているのであれば、heyaさんが書かれている通り、
snmpttの設定で特定のトラップを無視できそうです。
heya - 投稿数: 319
こんにちは。
除外する方法は、何通りかあります。
・完全無視でいいなら、snmptt.conf で該当のトラップに IGNORE を指定する。
・ログは残しつつアイテムとして収集しないのであれば、Zabbix のアイテムでパラメーターにカスタム正規表現を使う。
・アイテムとして収集するがトリガーで反応しないのであれば、Zabbix のトリガーで regexp を使ってパラメーターにカスタム正規表現を使う。
カスタム正規表現とは、管理→一般設定→正規表現 で設定するものです。除外の場合ここで「文字列が含まれない」や「結果が偽」を使います。
追記:TNK さんとかぶってしまいましたね。書かれている通り、snmptrap.fallback だとパラメーター指定はできません。指定するなら snmptrap を使います。
kym - 投稿数: 18
もしかして、snmptrap.fallbackを使っていませんか?
その場合、受け取るトラップをフィルタリングすることはできませ
ん。
→はい。snmptrap.fallbackを使用しています。
その場合は、除外することは難しいでしょうか?
heya - 投稿数: 319
何を実現したいのですか?
・完全無視したい?→上に書いた通り snmptt.conf で IGNORE
・ログは残しつつアイテムとして収集したくない?→snmptrap.fallback では無理
・アイテムとして収集するがトリガーで反応させたくない?→普通に regexp +カスタム正規表現
どうしても二つ目のが実現したいなら、snmptrap.fallback ではなく snmptrap を使って、「他の snmptrap のアイテムで取得しているトラップ+除外したいトラップ」以外を取得、とするしかないでしょうね。
kym - 投稿数: 18
実現可能かどうかはわかりませんが、
・snmptrap.fallbackでアイテムは設定したまま。
・除外したい特定の文字列をトリガー等で設定したい。
各機器でSNMPトラップのメッセージ一覧が公開されてないため、
snmptrapですと設定が難しいです。
ちなみに今の設定は以下の通りです。
アイテム:snmptrap.fallback
トリガー:{Template SCC SNMPTRAP:snmptrap.fallback.strlen()}>0
このトリガーは残しつつ、除外したいメッセージ設定を追加するには
どうしたらいいでしょうか?
TNK - 投稿数: 4755
アイテムの値取得時にフィルタリングもせず、かつそのトリガーの
条件式を残すのなら無理です。
その設定では、除外する処理を挟むことができません。
heyaさんが書かれている回答での対応が必要だと思います。
kym - 投稿数: 18
Zabbixを初めて構築しているので、申し訳ございません。
snmptrap.fallbackを使用している限りは無理ということでしょうか?
それともトリガーの条件を変更すれば可能でしょうか?
※除外したい項目以外エラーを出力する設定を実装する。
何回も同じ質問になってしまって申し訳ございません。
mocha - 投稿数: 28
アイテムはデータをためるもので トリガはイベントをつくるものです。
なので
・snmptrap.fallbackでアイテムは設定したまま。
・除外したい特定の文字列をトリガー等で設定したい。
であれば 考え方としては hayaさんの
・アイテムとして収集するがトリガーで反応させたくない?→普通に regexp +カスタム正規表現
に合致しているのだとおもいます。
regexpで指定する正規表現は トリガの条件式内で書くのではなく 管理→一般設定→正規表現 で定義をした上で参照してください。
直接指定してもいいんですが 複数の条件を1つの正規表現定義のなかに詰め込めるので あとあと幸せになれます。
たとえば・・・
名前 条件式
reg_trapignore 1 >> 無視するんだもんねキーワード [結果が偽]
のような正規表現を登録し トリガの式で
{Template SCC SNMPTRAP:snmptrap.fallback.regexp(@reg_trapignore)}=1
のような条件を指定すれば 除外条件(上記では「無視するんだもんねキーワード」)にマッチしないものでトリガが動作するはずです。