特定のOIDを受信したらメール送信する

お世話になっております。

環境
OS:CentOS7
Zabbix3.0

構成として、
ホストは同じネットワーク内にいて、SNMPエージェント1で特定のOIDを指定して監視しています。
この特定のOIDは常に出しているのでは無くて、ホスト側で障害が起きた時だけ出しています。
普段はOIDを受け取ってないので「設定」→「ホスト」から見ると「取得不可」になっているのでしょうか。

表題の件ですが
もし、特定のOIDを取得したらメールを送信
と言ったことは可能なのでしょうか。
トリガー条件式で指定すればよいのか、他に方法があるのか、ご教授いただけたらと思います。

現在事情がありZabbxiサーバが触れないので、細かいことは記憶を辿る事しか出来ません。
(17時以降なら見れるので詳細な設定の返信はそれ以降となってしまいます。)

よろしくお願いいたします。

コメント表示オプション

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

監視しようとされているのは、Zabbixサーバー側から定期的に値を
取得するような設定している環境で、ホスト側で障害が発生した時
だけ、特定のOIDを指定して値が取得できる環境という環境という
ことでよろしいでしょうか?

その環境では、正常時、そのOIDを指定して値を取得しようとした
時にはどのようになるのでしょうか?
無応答やエラーであれば、そのアイテムの状態は「取得不可」にな
ってしまうでしょう。

アイテムの状態が取得不可になってしまうと、監視の間隔は、デフ
ォルトだと確か10分間隔になってしまうので、障害が発生してOID
を指定して値が取得できるような状態になったとしても、最悪の場
合10分以上経過して初めて検知するような状態なってしまうと思い
ます。
このような通知までの時間が遅延するようなものでもよいのでしょ
うか?

できるかはわかりませんが、Zabbixサーバーから定期的に値を取得
して、障害発生時は1、正常時が0というように値を必ず取得できる
ようにすることができれば、その値によって障害が発生しているか
を判断し、障害発生の状態の値を取得したら管理者に通知を行うと
いうような監視ができるようになると思います。

別の方法としては、SNMPトラップやzabbix_senderなどを利用して、
障害発生時にZabbixサーバーに対して何らかの通知を行うようなこ
とも検討されてみてはいかがでしょうか?

ユーザー zabi244 の写真

TNK様
ご返答ありがとうございます。

<監視しようとされているのは、Zabbixサーバー側から定期的に値を
<取得するような設定している環境で、ホスト側で障害が発生した時
<だけ、特定のOIDを指定して値が取得できる環境という環境という
<ことでよろしいでしょうか?

はい、更新間隔を30秒に設定してあるので定期的に見に行っております。
環境も仰るとおりです。
ただ、普段(正常時)は指定したOIDは出さないので(障害発生時のみ出す)
Zabbix側が検知できず「取得不可」となると考えています。
ホストから見てみると赤バツで「Time while connecting to "IPアドレス"」
と表示されています。
SNMP監視はZabbixサーバとホストの通信ができていれば
SNMPの文字が緑色になるのでしょうか。それとも今回のように
OIDで指定した場合、それを受け取ってないと「取得不可」
になるのでしょうか。

<アイテムの状態が取得不可になってしまうと、監視の間隔は、デフ
<ォルトだと確か10分間隔になってしまうので、障害が発生してOID
<を指定して値が取得できるような状態になったとしても、最悪の場
<合10分以上経過して初めて検知するような状態なってしまうと思い
<ます。
<このような通知までの時間が遅延するようなものでもよいのでしょ
<うか?

監視の間隔が10分になるとは初めて知りました・・・
この間隔は変更できるのでしょうか。
障害は検知したらすぐメールを飛ばしたいので
10分以上空けることは避けたいです。

<別の方法としては、SNMPトラップやzabbix_senderなどを利用して、
<障害発生時にZabbixサーバーに対して何らかの通知を行うようなこ
<とも検討されてみてはいかがでしょうか?

今SNMPトラップの設定を見てみたのですが、トラップで受信した
ものから障害を検知するということでしょうか。

よろしくお願いいたします。

ユーザー TNK の写真

ただ、普段(正常時)は指定したOIDは出さないので(障害発生時のみ出す)
Zabbix側が検知できず「取得不可」となると考えています。

エラーメッセージからして正常時は応答なしの状態になるのですね?

SNMP監視はZabbixサーバとホストの通信ができていれば
SNMPの文字が緑色になるのでしょうか。それとも今回のように
OIDで指定した場合、それを受け取ってないと「取得不可」
になるのでしょうか。

ホスト一覧のホストの横にあるSNMPの文字が緑になるのは、そのホ
ストに設定されたSNMPのアイテムが正常に取得できている時に緑色
になります。
つまり、OIDを指定して正常に取得できていることが必要です。

あと、「取得不可」の状態は、アイテム単位で管理されます。
アイテムの一覧を表示して、ステータスとして「取得不可」、そし
てその右側に赤い×がついている場合は、正常に値を取得できてい
ないことを示します。

値が取得できない理由は、ご覧になられた通り、マウスのポインタ
をその×印のところに持って行けば表示されます。

監視の間隔が10分になるとは初めて知りました・・・
この間隔は変更できるのでしょうか。
障害は検知したらすぐメールを飛ばしたいので
10分以上空けることは避けたいです。

調整はできますが、あまり短くすると、他にも取得できないアイテ
ムがあったときに、それらのアイテムもその時間でリトライするこ
とになるのでご注意ください。

Zabbix 3.0であれば、

 管理 -> 一般設定 -> その他

内の「取得不可アイテムの更新間隔(秒)」の設定をご確認ください。

今SNMPトラップの設定を見てみたのですが、トラップで受信した
ものから障害を検知するということでしょうか。

その通りです。

ただし、設定が少し面倒かもしれません。

ユーザー heya の写真

TNK さんが書かれた方法以外に、 Zabbix とは別の自作スクリプトを使う手もあります。
snmpget を実行して、タイムアウトにならずすぐ値が返ってきたら zabbix_sender を使って Zabbix サーバーに伝える、というスクリプトを定期的に実行するのです。タイムアウトになったときは別の値を伝えるようにすれば、 Zabbix 上でトリガーを正常に戻すこともできるでしょう。