グラフやアイコンが表示されません

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

気のせいかと思い、数日間様子を見ていたのですが、
グラフやアイコンが表示されないという問題が発生しており、
対処方法をご教授頂きたく質問させて頂きます。

なお、以下の過去ログを拝見しまして、
私の環境を調整しましたが、未だに改善されずという状況です。

・グラフの表示がされない
http://www.zabbix.jp/modules/newbb/viewtopic.php?topic_id=21&forum=4

対象のサーバーでは、現在 munin が稼動しているので、
GD の png は間違いなく動いています。

他にどういったことが原因として考えられるのでしょうか。
何卒、よろしくお願い致します。

○環境 (全てRPMを利用)
・CentOS5.1
・zabbix-web-1.4.5-1.el5
・zabbix-1.4.5-1.el5
・zabbix-agent-1.4.5-1.el5
・httpd-2.2.3-11.el5_1.centos.3
・php-mysql-5.1.6-15.el5
・php-common-5.1.6-15.el5
・php-cli-5.1.6-15.el5
・php-pdo-5.1.6-15.el5
・php-bcmath-5.1.6-15.el5
・php-5.1.6-15.el5
・php-gd-5.1.6-15.el5

コメント表示オプション

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

こんにちは。

phpの利用できるメモリ制限に引っかかっている可能性があります。

/etc/php.ini の memory_limit が8Mなど少ない値にになっていないでしょうか?これを64Mなど大きくしてhttpdを再起動すると解決しないか試してみてください。

ユーザー kozu の写真

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

過去ログを見ながら memory_limit は 64M にしてあります。
また、zabbix.conf.php の最初に含まれていたコメント文も削除済みです。
apache の error_log 、zabbix_server.log には何も記載がありません。

インストール手順にも漏れは無いと思うのですが。。。
他にどういった事が原因として考えられるのでしょうか。

ユーザー kodai の写真

そうですか...こちらでも確認してみます。

なお、ZABBIXへのURLが記載されているとセキュリティ的に何かと問題になるのではと思いましたので、削除しておきました。

ユーザー kozu の写真

お手数をお掛けして申し訳ございません。
私の方でも継続して調査してみます。

ユーザー kozu の写真

おはこんばんは、kozu です。
zabbix のソース解析をしてたら、こんな時間まで作業してしまいました。

まだデバッグ途中ですけれども、
/usr/share/zabbix/include/config.inc.php の 102 行目からの条件分岐にバグがあるっぽいです。

その条件分岐(102行〜149行)をコメントアウトして、
暫定的に define('ZBX_DISTRIBUTED', false); を150行目に追加すると、
vtext.php で表示されるはずのサーバー名アイコンが[size=large]とりあえず[/size]表示されます。

ただし、この状態にしてしまうと、index.php 等が表示されなくなってしまいます。
さらに詳細なデバッグが必要ですが、今日は眠いので、また機会を見計らって調査してみます。。。。が!

もしかしたら本家の BTS に既に上がっていて、最新版で対応済みかもしれないですよね。
その辺りって kodai さんは既に把握されていたりするのでしょうか?
折角ですから私のスキル範囲で協力できれば幸いですが、無駄な作業だったら切ないので :roll:

よろしくお願いします。

ユーザー kodai の写真

こんにちは。

そんなに遅く(早く?)まで :-o おつかれさまです。

遅くなりましたが、色々試してみたところ/etc/zabbix/zabbix.conf.phpの最終行に、改行が含まれているときに、ご質問と同じような状況が再現できたのですが、関係ないでしょうか?

偶然にも再現できただけなので、本家のフォーラムやソースはまだ調査できていないのですが、ひとまずご連絡しておきます。

今回ご質問いただいた問題は初めて知りました...本家のフォーラムやリリースノートでも関係しそうな記述は見たことがなかったですね。

ユーザー kozu の写真

お世話様です、kozuです。

いや〜、zabbix に私はハマってしまいました。
zabbix さえあれば、nagios-nrpe も、plugin も、monit も、
グラフ生成にかなりの CPU を要する muni-node も。。。etc
色々と不要となって、リソースが開放されて、システム管理がかなり楽になるし、
もう万々歳状態です :-D
(反面、DBへのクエリ量が増大してますが、そのうちチューニングで何とかします。)

kodai さん、ありがとうございます!
確かに、zabbix.conf.php の最後に改行が入ってまして、
これを取り除いたらアイコンが正常に表示されるようになりました。
もう kodai さんに足向けて眠ることは出来ませんね。
どちらにお住まいかは存じ上げておりませんが。。w

いつ改行が入ったのかを調査するため、再インストールもしたのですが、
デフォだと改行がはいることはありませんね。
申し訳ありません、明らかに私の知らず知らずのミスでした。
なんなら trim で改行とか取るようにしてくれてもいいのにと思って、
include されているあたりをちょいちょい調べようとしましたが、
面倒くさくなって諦めました。
私と同じ過ちを犯す方が、他に出てこないことを祈ります。

しかし、問題が2つさらに生じてます。
まず、vtext.php で表示されるアイコンって、縦文字なんですね。。。。
これがラトビア流なのでしょうか???
生粋の日本人である私には見づらくてしょうがありません。
そもそも、ここで ImageStringUp を使っている意味が分かりません:-(
というわけで、サーバー名アイコンが横文字で表示されるパッチを作って見ました。

<code>
# cat vtext.ImageString.patch
--- vtext.php 2008-06-22 12:41:00.000000000 +0900
+++ vtext.php.bk 2008-06-22 12:46:11.000000000 +0900
@@ -46,12 +46,12 @@
$width = ImageFontWidth($font) * strlen($text);
$height = ImageFontHeight($font);

- $im = imagecreate($width,$height);
+ $im = imagecreate($height,$width);

$backgroud_color = ImageColorAllocate($im,255,255,255);
$text_color = ImageColorAllocate($im,0,0,0);

- ImageString($im,$font,0,0,$text,$text_color);
+ ImageStringUp($im,$font,0,$width-1,$text,$text_color);
imagecolortransparent($im,$backgroud_color);

ImageOut($im);
</code>

これがもし役に立つことがあれば、私的には幸いです :-)

それから、問題がもう一つ。
LoadAvarage を取得する為のグラフを作ったのですけれども、
グラフ png 画像は表示されますが、肝心のデータが取得できておらず、
グラフ画面の左下に no data と記載されてしまっています。

データベースの graphs_items には対象のグラフID86のデータはインサートされてましたが、
次にどうやって調査しようか模索中で、アドバイスを頂けると幸いです。
何卒、よろしくお願いします。

(一応、グラフ設定も再構築してみます。)

ユーザー kozu の写真

グラフの件で、補足になりますが、
history テーブルに LoadAverage を示す itemid=22277 のデータは蓄積されてました。

問題は、私が zabbix の構造を把握しきれていなくて、
グラフを表示する際には、history テーブルのデータを使用しているのか、
あるいは graphs_items に本来はデータがインサートされて、
そこから読み出されているのか。。。
前者の方がデータは肥大化しないし、効率的だとは思いますが、
時間がある時にソースを見ながら、改めて調べてみます。

ユーザー kodai の写真

kodai さん、ありがとうございます!
確かに、zabbix.conf.php の最後に改行が入ってまして、
これを取り除いたらアイコンが正常に表示されるようになりました。

問題が解決して良かったです。
しかし、空改行が入ってしまっただけで画像が出なくなるのは問題ですね。私も時間を作って調べてみようと思います。

というわけで、サーバー名アイコンが横文字で表示されるパッチを作って見ました。

ありがとうございます。大変参考になります。

問題は、私が zabbix の構造を把握しきれていなくて、
グラフを表示する際には、history テーブルのデータを使用しているのか、
あるいは graphs_items に本来はデータがインサートされて、
そこから読み出されているのか。。。

グラフはtrendsテーブルのデータをもとに作成されているはずです。トレンドとヒストリの違いは<a href="http://www.zabbix.jp/modules/newbb/viewtopic.php?viewmode=flat&topic_id=14&forum=5">こちら</a>が参考になると思います。

ユーザー kozu の写真

情報提供ありがとうございます。

なるほど、trends テーブルから select していたんですね。

それから、マニュアルにテーブル構造の情報が記載されている事を初めて知りました。
ありがとうございます。

ソースをざっと拝見したのですけれども、
Join しまくっていて微妙に追いかけるのが大変だし、、
テーブル構造が分からないから show columns して。。。
って繰り返していて、無駄に色々と探っていました。

今日は時間が無いので、また後日にでも調査をしてみます。
調査の流れとしては、そもそも trends にデータがインサートされているのか、
インサートされていないのであれば、それは何故なのかという感じで調べてみたいと思います。

ちなみに、こういった現象は私だけ起きているのでしょうか?
それであれば、先の現象のようにコンフィグを疑って掛かる方が先決ですよね。。謎

(ついでに言えば、グラフの作り方は毎号購入している SoftwareDesign を参考にさせて頂きました。)

ユーザー kodai の写真

確かにグラフが表示されないですね...

[監視データ] -> [最新データ] -> 各項目の右にある「グラフ」

を選択してもグラフが表示されていないので、設定の問題ではないように思います。

ZABBIXサーバのログに何か関連しそうな文字列は出力されていないでしょうか?

ユーザー kozu の写真

ご報告です。
何と、何と、、、改善されました!!!!!!

やってみたことは、以下の通りです。
1) tailf でzabbix_server.log をチェック
2) 目立ったエラーが無いので、zabbix_server.conf の DebugLevel=4 にしてみた
3) zabbix restart
4) とりあえずグラフをチェックしてみたら、何と、表示されていた。。。
5) DebugLevel=3 に戻してみた
6) 変わらず、グラフが表示されていた。。。。

こんな状況です。

ダラダラと情報が流れつづけるデバッグモードを有効にして、
tailf でボーッと眺めながら、
有益な情報が得られないかと思ってやってみたら、
偶然にも改善致しました。

もしかしたら、先の改行問題後に zabbix restart を
する必要があったのかもしれないと、今考えると、そんな気がしてきます。

zabbix の認知度が高まるに連れて、恐らく私と同じ問題に遭遇してしまう人が
そのうち出てきてしまうと思いますので、改行があっても動くように
バグフィックスをしたい所ですが、zabbix 歴1週間の自分には、
まだ、そこまでのパッチ提供は難しそうです。

自分からお願いするのも何か違う気もしますが、
可能であれば、この修正がされるように BTS へ上げて頂ければ幸いに存じます。

これまで、貴重なお時間を割いて、色々とアドバイスを賜り、誠にありがとうございました。
恐らく、今後もお世話になる事が多々あると思いますので、
改めてまして、何卒よろしくお願い致します :-)

PS.
それにしても、グラフの表示がサクサクで、本当に zabbix はイイ感じですね!
cacti とか、munin よりも全然使い易いです。
大変気に入りました :-D