Zabbixはエージェントレスでどこまで監視できるか

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

残念ながら、今週の勉強会に参加できません(涙)。
大変恐縮ですが、勉強会で聞きたかったことについて、この場をお借りしてお聞きしたいと思います。

?エージェントレスでの監視で、Windowsのサービス監視は可能でしょうか?

?同じくエージェントレスでの監視で、特定のプロセスの起動数を数えたいのですが、それは可能でしょうか?
(エージェント入りだと、キーの指定で「proc.num[〜〜.exe]」で返ってくるような値を、エージェントレスでゲットすることは可能でしょうか?)

?エージェントレスでの監視で、プロセスの生死状態の監視はできました(SNMP OIDを動的に指定することにより)。
しかし、もしプロセスが停止してしまった場合、それをメールで通知するためのトリガーの設定法がわかりません。教えていただけないでしょうか?

お忙しいところ大変恐縮ですが、よろしくお願いいたします。

コメント表示オプション

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

no_oneさん

エージェントレスと言う言葉が、Zabbixエージェント以外のその他の監視エージェントも使っていないと言う意味ならば、シンプルチェック機能のみが監視可能となります。

SNMPはSNMPエージェントとSNMPマネージャでやり取りをする監視なので、エージェント監視の一つです。(エージェントレスじゃないです。)

no_oneさんはSNMP監視をされているんですよね?
エージェントレス監視と言うと誤解される可能性がありますので、別の言い方をされた方が良いかと思います。

お使いのZabbixが1.8系ならばエージェントの状態欄にsnmpが使えるとアイコンが表示されると思います。

no_oneさんの言われているのはZabbixエージェントのみ使用しない監視(シンプルチェックとSNMPを使用する監視)と言うことでよいでしょうか?

?エージェントレスでの監視で、Windowsのサービス監視は可能でしょうか?

snmpがある時点で作りこめば何でもできてしまいます。
Zabbixとしての機能ではシンプルチェックでサポートしているものとなります。

?同じくエージェントレスでの監視で、特定のプロセスの起動数を数えたいのですが、それは可能でしょうか?
(エージェント入りだと、キーの指定で「proc.num[〜〜.exe]」で返ってくるような値を、エージェントレスでゲットすることは可能でしょうか?)

自作プログラムで収集した値をsnmp経由で監視することができますが…そう言う答えを聞きたいんじゃないですよね?A(^^;
シンプルチェックでは不可能かと。

?エージェントレスでの監視で、プロセスの生死状態の監視はできました(SNMP OIDを動的に指定することにより)。
しかし、もしプロセスが停止してしまった場合、それをメールで通知するためのトリガーの設定法がわかりません。教えていただけないでしょうか?

上記はアイテムを設定し、データの取得ができたと言うことでしょうか?
Zabbixはアイテム(データの収集)、トリガー(収集したデータをチェックし、イベントが発生するか判断)、アクション(発生したイベントを元にメール送信やリモートコマンドを実行)からなっています。

no_oneさんが知りたいのはトリガーとアクションと言うことで良いでしょうか?

申し訳ないですが、トリガーはアイテムの設定と監視結果が分からないとかけません。設定したアイテムと監視結果を公開できる範囲で書いて頂けますか?

最後に、Zabbixのバージョンも書いて頂けると助かります。

ユーザー sepata_kurou の写真

KAZさん

返信が遅れて申し訳ありません。
ご回答ありがとうございます。

> no_oneさんはSNMP監視をされているんですよね?
> エージェントレス監視と言うと誤解される可能性がありますので、別の言い方をされた方が良いかと思います。

御察しの通りです。
申し訳ありません、以後気をつけます。

> 自作プログラムで収集した値をsnmp経由で監視することができますが…そう言う答えを聞きたいんじゃないですよね?A(^^;
> シンプルチェックでは不可能かと。

そうですね・・・・。
私としては、以下のコマンドを監視マネージャのコンソールで叩いた時に返ってくるような値を、Zabbixで得るようなことはできないか、と考えていたのです。

# snmpwalk -v 2c -c <コミュ名> <監視エージェントのIP> 1.3.6.1.2.1.25.4.2.1.2(HOST-RESOURCES-MIB::hrSWRunName) | grep <プロセス名> | wc -l

何か良い方法があれば、ご教授お願いいたします。

> no_oneさんが知りたいのはトリガーとアクションと言うことで良いでしょうか?
> 申し訳ないですが、トリガーはアイテムの設定と監視結果が分からないとかけません。設定したアイテムと監視結果を公開できる範囲で書いて頂けますか?

申し訳ありません、こちらも私の説明不足でした。
御察しの通り、私が知りたいのはトリガーとアクションの設定法です(特にトリガーのほうが知りたいのですが)。

プロセスの生死状態の監視のために設定したアイテムですが、
タイプ:SNMPv2エージェント
SNMP OID:1.3.6.1.2.1.25.4.2.1.2["index","HOST-RESOURCES-MIB::hrSWRunName","iexplore.exe"]
キー:iexplore.exe
を設定すると、監視エージェントでiexplore.exeが起動していれば、監視結果として「"iexplore.exe"」という文字が返ってきました。
一方、監視エージェントでiexplore.exeが起動していなければ、値は何も返ってこず、アイテムのステータスが「取得不可」と表示されます。
私としては、このアイテムが「取得不可」になったことをメールで通知するトリガー・アクションを設定できないか、ということを考えていました。

最後に、使用バージョンはZABBIX1.6.8です。
状況説明に不明確な部分が多く、申し訳ありません。

ユーザー KAZ の写真

no_oneさん

# snmpwalk -v 2c -c <コミュ名> <監視エージェントのIP> 1.3.6.1.2.1.25.4.2.1.2(HOST-RESOURCES-MIB::hrSWRunName) | grep <プロセス名> | wc -l

Linuxならshellを作って、それをsnmpd.confに登録してオリジナルのOIDで監視できます。

■書式
<code>
exec MIBNUM NAME PROG ARGS
</code>

■例
<code>
exec .1.3.6.1.4.1.2021.51 hoge /usr/local/src/hogehoge.sh [i]プロセス名[/i]
</code>
hogehoge.shはpsで収集したプロセス名をgrepしてwcして数値を返すシェルとします。(0件の場合、0を返す必要があります。)
上記を登録し、snmpdを再起動すれば「1.3.6.1.4.1.2021.51」で監視が可能です。

プロセスの生死状態の監視のために設定したアイテムですが、
タイプ:SNMPv2エージェント
SNMP OID:1.3.6.1.2.1.25.4.2.1.2["index","HOST-RESOURCES-MIB::hrSWRunName","iexplore.exe"]
キー:iexplore.exe
を設定すると、監視エージェントでiexplore.exeが起動していれば、監視結果として「"iexplore.exe"」という文字が返ってきました。
一方、監視エージェントでiexplore.exeが起動していなければ、値は何も返ってこず、アイテムのステータスが「取得不可」と表示されます。
私としては、このアイテムが「取得不可」になったことをメールで通知するトリガー・アクションを設定できないか、ということを考えていました。

監視できない状態を監視するのはかなり難しいです。
監視できない状態か知るのはZabbixインターナルでZabbix自身のログを監視し、解析する方法しか私は知りません。

下記のOIDを使うのはどうでしょう?
<code>
SNMP OID:1.3.6.1.2.1.25.4.2.1.7
</code>
検証したかったのですが、snmpをwindowsに入れていなくて(笑)