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 - 投稿数: 1341
こんにちは。
停止状態: ポートに接続できない
タイムアウト: ポートの応答がない
ということだとは思うのですが、実際に試してみても2が帰ってくる条件が見つけられないですね。。。
net.tcp.serviceのタイムアウト時間は3秒で固定されていて変更することができません。以下のようにすると過去2回の監視結果が両方とも1でない場合を検知することができると思います。
({host:net.tcp.service[http].priv(0)}#1)&({host:net.tcp.service[http].last(0)}#1)
TNK - 投稿数: 4731
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 - 投稿数: 1341
私もソースを確認してみましたが、TNKさんと同じくやはり2が返ってくる条件はないように思います。マニュアル側の間違いということになりますね。
2が返ってくることを考慮しないのであれば、以下のようなトリガーでもOKだと思います。
{hostname:net.tcp.service[http].sum(#2)}=0
marumaru - 投稿数: 2
kodai 様
TNK 様
早速の返答ありがとうございます。
どの条件で、戻り値2が帰ってくるか色々実験して見ました。
やはり、2が帰ってくる条件は無いですか。
サービス停止ではなくコネクションタイムアウトの監視が
したかったので、タイムアウトの値が帰ってくるならば、
タイムアウトの間隔も当然設定が出来るものと思っておりました。
今回は、{hostname:net.tcp.service[http].sum(#2)}=0の設定
を参考させて頂、当初の目的に近い監視が出来るようになりました。
タイムアウト間隔が3秒固定と言う事なので、チェック間隔を変更するなどして、
最適な設定を見つけていきます。
この度は、お忙しい中ありがとうございました。