80番ポートコネクション監視について

いつも、お世話になります。
ポートコネクション監視について質問させて頂きます。

{host:net.tcp.service[http].last(0)}=x
上記のトリガー設定で、xの値=0がサービス停止でxの値=2がサービスへの接続がタイムアウトとになってます。

実際、停止状態とタイムアウトではどのような違いがあるのでしょうか?

【やりたい事】
30秒に1回のチェック間隔で、タイムアウトが10秒間。
それが、2セットでトリガーするようにしたい。

※アイテム:net.tcp.service[http]の更新間隔は30秒に設定してます。

【現在の構成】
zabbix-server Ver.1.6.8
OS: CentOS release 5.4 (Final)

Linuxサーバ9台を監視しています。
zabbix-agent Ver.1.4.6

以上、よろしくお願い致します。

コメント表示オプション

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

こんにちは。

停止状態: ポートに接続できない
タイムアウト: ポートの応答がない

ということだとは思うのですが、実際に試してみても2が帰ってくる条件が見つけられないですね。。。

【やりたい事】
30秒に1回のチェック間隔で、タイムアウトが10秒間。
それが、2セットでトリガーするようにしたい。

net.tcp.serviceのタイムアウト時間は3秒で固定されていて変更することができません。以下のようにすると過去2回の監視結果が両方とも1でない場合を検知することができると思います。

({host:net.tcp.service[http].priv(0)}#1)&({host:net.tcp.service[http].last(0)}#1)

ユーザー TNK の写真

1.4.6や1.6.8のソースを見る限り、「net.tcp.service[http]」を利用する場合、

 0 : サービスは停止中
 1 : サービスは動作中

しかないのではないかと思われます。
というのも、実際に接続処理を行う関数の後で、接続できなかった理由を判定する処理が見当たりません。
また、タイムアウト時間は、3秒に固定されているようです。

興味のある方は、

 zabbix-1.4.6/src/libs/zbxcomms/comms.c
 zabbix-1.4.6/src/libs/zbxsysinfo/common/net.c
 zabbix-1.4.6/src/libs/zbxsysinfo/simple/simple.c

あたりをご覧になってみてください。

接続までの時間を監視されたい場合は、「net.tcp.service.perf[http]」を利用された方が良いのではないでしょうか?
やりたい事をきちんと満たすトリガの書き方は、他の方のフォローをお願い致します。

ユーザー kodai の写真

私もソースを確認してみましたが、TNKさんと同じくやはり2が返ってくる条件はないように思います。マニュアル側の間違いということになりますね。

2が返ってくることを考慮しないのであれば、以下のようなトリガーでもOKだと思います。

{hostname:net.tcp.service[http].sum(#2)}=0

ユーザー marumaru の写真

kodai 様
TNK 様

早速の返答ありがとうございます。

どの条件で、戻り値2が帰ってくるか色々実験して見ました。
やはり、2が帰ってくる条件は無いですか。

サービス停止ではなくコネクションタイムアウトの監視が
したかったので、タイムアウトの値が帰ってくるならば、
タイムアウトの間隔も当然設定が出来るものと思っておりました。

今回は、{hostname:net.tcp.service[http].sum(#2)}=0の設定
を参考させて頂、当初の目的に近い監視が出来るようになりました。

タイムアウト間隔が3秒固定と言う事なので、チェック間隔を変更するなどして、
最適な設定を見つけていきます。

この度は、お忙しい中ありがとうございました。