シンプルチェックのFTP監視について

お世話になります。

zabbix-1.6.6を使用して、シンプルチェックのFTP監視を設定しましたが、
監視データ->最新データを見るとDown(0)となってしまいます。

サーバ側から監視対象機器に対しては、21番ポートへFTP接続を行うことができます。

また、過去のフォーラムを読み、zabbix_server.confを編集し、Timeout=30へ変更してみましたが結果は変わりませんでした。

原因となるような箇所がございましたらご教授頂けないでしょうか。

■アイテム設定内容
名前:FTP server is running
タイプ:シンプルチェック
キー:ftp
データ型:数値(整数)
単位:(空欄)
乗数を使用:使用しない
更新間隔(秒):60

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

コメント表示オプション

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

こんにちは。

(すいません、先ほど違う内容で返信したのですが、勘違いしていた内容だったので削除しました)

Zabbixサーバから以下のように監視対象の21番ポートにtelnetコマンドを実行して接続はできるでしょうか?

$ telnet <監視対象サーバのIP> 21

また、Zabbixサーバのログなどに何かエラーは出ていないでしょうか。

シンプルチェックのタイムアウトは3秒で固定に設定されているので、今回の場合TImeout値の変更は効果はないと思います。

ユーザー sgym の写真

kodai様

ご返信ありがとうございます。
telnet接続も可能でした。

以下、デバッグモードで出力したzabbix_server.logのFTPに関する箇所です。監視対象サーバ名は伏せています。エラーらしきものは見当たらないような気がします…。

20527:20100121:123612 Query [begin;]
20527:20100121:123612 In process_new_value(ftp)
20527:20100121:123612 In add_history(key:ftp,value_type:3,type:1)
20527:20100121:123612 In add_history(itemid:49345,UINT64:0)
20527:20100121:123612 In add_history_uint()
20527:20100121:123612 Query [insert into history_uint (clock,itemid,value) values (1264044972,49345,0)]
20527:20100121:123612 In add_trend_uint()
20527:20100121:123612 Query [select num,value_min,value_avg,value_max from trends_uint where itemid=49345 and clock=1264042800]
20527:20100121:123612 Query [update trends_uint set num=10,value_min=0,value_avg=0,value_max=1 where itemid=49345 and clock=1264042800]
20527:20100121:123612 End of add_history():SUCCEED
20527:20100121:123612 In update_item()
20527:20100121:123612 In calculate_item_nextcheck (49345,60,"",1264044972)
20527:20100121:123612 End calculate_item_nextcheck (result:1264044985)
20527:20100121:123612 Query [update items set nextcheck=1264044985,prevvalue=lastvalue,prevorgvalue=NULL,lastvalue='0',lastclock=1264044972 where itemid=49345]
20527:20100121:123612 End of update_item()
20527:20100121:123612 In update_functions(49345)
20527:20100121:123612 Query [select distinct function,parameter,itemid,lastvalue from functions where itemid=49345]
20527:20100121:123612 ItemId:49345 Evaluating last(0)
20527:20100121:123612 In evaluate_function('監視対象サーバ名:ftp.last(0)')
20527:20100121:123612 In evaluate_LAST()
20527:20100121:123612 End of evaluate_LAST()
20527:20100121:123612 End of evaluate_function('監視対象サーバ名:ftp.last(0)',value:'0'):SUCCEED
20527:20100121:123612 Do not update functions, same value
20527:20100121:123612 End update_functions()
20527:20100121:123612 In update_triggers [itemid:49345]
20527:20100121:123612 Query [select distinct t.triggerid,t.expression,t.description,t.url,t.comments,t.status,t.value,t.priority,t.type from triggers t,functions f
,items i where i.status<>3 and i.itemid=f.itemid and t.status=0 and f.triggerid=t.triggerid and f.itemid=49345]
20527:20100121:123612 In evaluate_expression({19908}#1)
20527:20100121:123612 In substitute_simple_macros (data:"{19908}#1")
20527:20100121:123612 End substitute_simple_macros (result:{19908}#1)
20527:20100121:123612 In substitute_functions({19908}#1)
20527:20100121:123612 Query [select 0,lastvalue from functions where functionid=19908]
20527:20100121:123612 End substitute_functions() [0#1]
20527:20100121:123612 In evaluate(0#1)
20527:20100121:123612 In evaluate_simple(0#1)
20527:20100121:123612 In evaluate_simple(0)
20527:20100121:123612 In evaluate_simple(1)
20527:20100121:123612 End evaluate(result:1.000000)
20527:20100121:123612 End evaluate_expression(result:1)
20527:20100121:123612 In update_trigger_value(triggerid:16918,old:1,new:1,1264044972)
20527:20100121:123612 End update_trigger_value()
20527:20100121:123612 End update_triggers [49345]
20527:20100121:123612 Query [commit;]

ユーザー sgym の写真

kodai様

連投ですみません。

kodaiさんは書きました:
シンプルチェックのタイムアウトは3秒で固定に設定されているので、今回の場合TImeout値の変更は効果はないと思います。

シンプルチェックのタイムアウト値に関しましては、こちらのページを参考にさせて頂きました。→[url=http://www.zabbix.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=87&forum=6]Sinple Checkについて[/url]

タイムアウトが原因ではないかと考えているのですが、3秒以上に設定することは可能なのでしょうか。

##### 追記しました #####
3秒以上に設定するための方法について、過去のスレッドを見落としていました。こちらで試してみます。
[url=http://www.zabbix.jp/modules/newbb/viewtopic.php?topic_id=315&forum=5&post_id=1348#forumpost1348]SimpleCheckのTimeout設定について[/url]

ユーザー kodai の写真

こんにちは。

zabbix_server.confのTimeout設定とzbx_tcp_connectの3秒のタイムアウトでどちらがどのように影響しているのかをみようと少しソースを追っかけてみたのですが、まだ読み切れてません...。

ところで、貼り付けていただいたログですが「In process_new_value(ftp)」のログが出力されるのは監視を実行した後にデータを保存するタイミングなので、実際にftpポートへの接続を行っているログはもう少し前に出ていないでしょうか?

ユーザー sgym の写真

kodai様

先日貼り付けた箇所より前の部分でFTPに関係する箇所を抜き出しました。合っていますでしょうか。

20527:20100121:123609 In substitute_simple_macros (data:"ftp")
20527:20100121:123609 In int_in_list(list:10147,value:10177)
20527:20100121:123609 End int_in_list(ret:FAIL)
20527:20100121:123609 In get_value(key:ftp)
20527:20100121:123609 In get_value_simple([ftp]
20527:20100121:123609 Sysinfo [net.tcp.service[ftp,監視対象サーバIPアドレス]]

また、ソース編集後の動作検証結果について1点ご報告させていただきます。
src/libs/zbxsysinfo/common/net.cの、tcp_expect()関数でzbx_tcp_connect()関数を使用する際の引数"3"を"10"に編集してリコンパイルしました。これによりタイムアウトまでの時間が延び、DOWN(0)ではなくUP(1)を返すようになっています。

ユーザー kodai の写真

ソースを読んでみました。

やはりシンプルチェックのタイムアウトは3秒固定値でした。ソース中に直接書かれているので、変更するためにはご報告いただいた通りソース修正&コンパイルを行う必要があります。

タイムアウト値を10秒に変更すればUp(1)を返すようであれば、そこが原因でしょうね。

シンプルチェックのタイムアウト値については何度か投稿頂いているので、Zabbix SIAにもレポートしておこうと思います。

ユーザー sgym の写真

お手数お掛け致します。Zabbix SIAへのレポートの件、どうぞよろしくお願い致します。もう一点あるのですが、[url=http://www.zabbix.com/downloads/ZABBIX%20Manual%20v1.6.pdf#page=114]ZABBIX Manual v1.6[/url]の、シンプルチェックの返り値に関しまして、

0 &#8211; FTP server is down
1 &#8211; FTP server is running
2 &#8211; timeout

とありますが、0(FTP server is down)と2(timeout)の処理の違いはどのように判定しているのでしょうか。

FTPサービスは上がっているのですが、3秒→10秒に変更したバイナリファイルを使用しても、たまにタイムアウトに引っ掛かってしまい、0(FTP server is down)を検知してしまうのです。

ユーザー KAZ の写真

sgymさん、kodaiさん

とありますが、0(FTP server is down)と2(timeout)の処理の違いはどのように判定しているのでしょうか。

1.6.8では監視対象がwindowsでエージェント監視の場合にタイムアウトがあり得るようです。A(^^;

1.1.xの頃はnet.tcp.service[ssh]で2が帰ってきたことがありました。sshサービス上げなかった時は0で、マシンの電源断で2でした。その時のマニュアルは、0:サービスダウン/1:正常だったので、何で2と?ビックリしたのでよく覚えています。

閑話休題

1.6.8では監視対象がwindowsでエージェント監視の場合、
監視情報を取得するコマンドをpopen〜pcloseで実行する時にのみ発生する様です。
※:その他にもタイムアウトを判断するルートはありましたが、論理的には通らないみたいです。

ユーザー sgym の写真

KAZ様

いつもお世話になります。

1.6.8では監視対象がwindowsでエージェント監視の場合、
監視情報を取得するコマンドをpopen〜pcloseで実行する時にのみ発生する様です。

↑についてソースの該当箇所を自分で読み解ければ良いのですがなかなか追えない状態です。

エージェントレスでは返り値2がないことが分かって良かったです。ありがとうございました。