Zabbix Proxyでのキュー滞留

現在、Zabbix_Proxy経由で監視を行う環境を構築しておりますが、
Zabbix_Proxy経由で監視を行うとキューが溜まりっぱなしとなります。
(一部ははけていると思われますが、ほとんどがたまりっぱなし)

初めて環境構築を行っている関係でどこかの設定がおかしいのではないかと思いますが、どこがおかしいのか不明なため、アドバイスを頂けたらと思います。

また、Zabbix_Proxy経由でなくZabbix_Server経由で監視を行うとキューは溜まりません。

■環境
 ・OS:CentOS5.5
 ・Zabbixサーバ:1.8.4
 ・Zabbix_Server1台+Zabbix_Proxy1台

■Zabbix_Proxy設定(デフォルトからの変更分)
 ・Server=(Zabbix_ServerのIP)
 ・Hostname=zabbix_proxy
 ・LogFile=/var/log/zabbix/zabbix_proxy.log
 ・LogFileSize=0
 ・PidFile=/var/run/zabbix/zabbix_proxy.pid
 ・DBName=zabbix
 ・DBUser=xxxxxx
 ・DBPassword=zzzzzzz
 ・DBSocket=/var/lib/mysql/mysql.sock
 ・HeartbeatFrequency=30
 ・ConfigFrequency=3600
 ・StartPollers=10
 ・StartTrappers=10
 ・StartPingers=10
 ・CacheSize=512M
 ・StartDBSyncers=24
 ・HistoryCacheSize=512M
 ・TrendCacheSize=256M
 ・HistoryTextCacheSize=512M
 ・LogSlowQueries=3

■Zabbix_Server設定(デフォルトからの変更分)
 ・LogFile=/var/log/zabbix/zabbix_server.log
 ・PidFile=/var/run/zabbix/zabbix_server.pid
 ・DBName=zabbix
 ・DBUser=xxxxxx
 ・DBPassword=zzzzzzz
 ・DBSocket=/var/lib/mysql/mysql.sock
 ・StartTrappers=10
 ・StartPingers=10
 ・StartHTTPPollers=5

■mySQL設定(デフォルトからの変更分)
 ・innodb_file_per_table
 ・innodb_buffer_pool_size=2048M
 ・innodb_additional_mem_pool_size=32M
 ・innodb_log_file_size=512M
 ・innodb_log_files_in_group=2

何かありましたらご教授いただければと思います。
また、他に必要な情報等ありましたら追記させていただきます。

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

コメント表示オプション

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

Proxyの場合、デフォルトでは収集した情報を1秒おきにZabbixサーバに送信するようになっています。(パッシブプロキシの場合)

キューの画面では本来アイテムのデータが受信されているはずの時刻(最新データ受信時刻+監視間隔)に次のデータが受信されていなければ遅延としてカウントされるので、多少のタイムラグが出るのは仕様上仕方がない場合があります。

まずは以下の状態を確認してみてください。

- キューの遅延時間は最大でどの程度出ているか(遅延秒数)
- キューの画面から右上のドロップダウンで「詳細」を選択した画面で、どのようなアイテムが遅延しているか
- 遅延しているアイテムの「最新データ」を確認し、データが正しく受信できているかどうか

データが継続的に受信出来ているようでしたら、特に問題はないと思います。

もしデータに抜けがあったり、受信時刻にばらつきがあるようでしたらパフォーマンスが出ていないなど別の原因を探る必要があると思います。

ユーザー jasa40 の写真

まずは以下の状態を確認してみてください。

- キューの遅延時間は最大でどの程度出ているか(遅延秒数)
- キューの画面から右上のドロップダウンで「詳細」を選択した画面で、どのようなアイテムが遅延しているか
- 遅延しているアイテムの「最新データ」を確認し、データが正しく受信できているかどうか

ご回答ありがとうございます。

状態を確認してみました。

キューの遅延時間は監視対象ホストをProxyからサーバに移さない限り、ずっとはけずに溜まりっぱなしなので、何時間も遅延します。

「詳細」で確認すると500件までの表示範囲では全アイテムのように見受けられます。

遅延しているアイテムの「最新データ」は遅延が発生する直前の正しいデータが受信されていますので、各アイテムの設定は問題ないかと思われます。

ユーザー tsuzuki の写真

はじめまして。

状況からすると、以下2つのどちらかの状況のように見えます。
(1) proxyに監視設定情報が送信されていない。
(2) proxyから監視結果を受信できていない。

まず、(1)の見分けかたですが、Zabbixサーバ側の /var/log/zabbix/zabbix_server.log に以下のようなログが出力されているか確認してください。

> 13015:20110401:204228.599 Sending configuration data to proxy 'Zabbix proxy'. Datalen 13870

このログが出力されていれば、proxyに監視設定情報が送信されていることが確認できます。
この設定情報が送信される間隔は ConfigFrequency で設定している間隔になりますので、今回の環境の場合、3600秒(1時間)間隔になります。もしくは、zabbix-proxy サービスの起動時にも設定情報が送信されます。
逆に言えば、proxy経由での監視を設定しても、最長1時間は監視されない期間が発生するので、その間はキューに溜まった状態に見えます。

次に(2)についてですが、Zabbix Proxy側の /var/log/zabbix/zabbix_proxy.log に以下のようなログが出力されていないか確認してください。
サーバと通信できていない場合はこのようなメッセージが出力されます。

> 12014:20110403:091632.854 Unable to connect to the server [192.168.0.250]:10051

ユーザー jasa40 の写真

お世話になります。

状況からすると、以下2つのどちらかの状況のように見えます。
(1) proxyに監視設定情報が送信されていない。
(2) proxyから監視結果を受信できていない。

各ログを確認しました。

(1)につきましては該当のログ出力がありましたので監視設定情報は
送信されている様です。

(2)は該当ログの出力がありましたので、サーバ−プロキシ間の
通信ができていない様です。
config設定、ネットワーク環境、TCPポート設定には問題と
思われる箇所はないのですが、何が原因と考えられますか?

ユーザー tsuzuki の写真

jasa40さん

確認ありがとうございます。

プロキシ側からサーバ側の10051番ポートへアクセスできていないようですね。
プロキシ側からtelnetで以下コマンドを実行して、その実行結果を教えてもらえますか?

# telnet サーバのIPアドレス 10051

(例) サーバのIPアドレスが192.168.0.250の場合
# telnet 192.168.0.250 10051

通常であれば、以下のようにログインでき、エンターを押すと「Connection closed by foreign host.」の行が出力されます。

----------------------------------------------------------------------
# telnet 192.168.0.250 10051
Trying 192.168.0.250...
Connected to 192.168.0.250 (192.168.0.250).
Escape character is '^]'.

Connection closed by foreign host. ←エンターを押すとこのメッセージが表示されてコネクションが切れる。
----------------------------------------------------------------------

何か問題がある場合には以下のようなメッセージなどが表示されます。
----------------------------------------------------------------------
# telnet 192.168.0.250 10051
Trying 192.168.0.250...
telnet: connect to address 192.168.0.250: Connection refused
telnet: Unable to connect to remote host: Connection refused
----------------------------------------------------------------------
----------------------------------------------------------------------
# telnet 192.168.0.250 10051
Trying 192.168.0.250...
telnet: connect to address 192.168.0.250: No route to host
telnet: Unable to connect to remote host: No route to host
----------------------------------------------------------------------

どんなメッセージが返ってくるか確認して、その結果を教えてください。
よろしくお願いします。