グラフ表示ができない
はじめまして、y-komoriと申します。
SoftwareDesignの記事を見てZABBIXに興味を持ち、RRDToolから乗り換えるべくインストールしてみました。非常に素晴らしいプロダクトだと思います!
ただ、インストールしてSoftwareDesignの記事に沿ってグラフ表示をさせてみたのですが、肝心のグラフが表示できません。
ZABBIXのインストールはyumではなくtarボールからインストールしました。PHP環境のGDやlibpngあたりが原因かと思い、phpinfo()で調べてみたのですが、GD Support、PNG Support 共にEnableになっていました。
また、テキスト形式では蓄積しているデータが表示されるので、少なくともデータベース絡みではないようです。
あとは、生成したグラフをどこかのディレクトリに一時出力する仕組みならば、パーミッションの問題かもしれませんが、出力先がわからず苦慮しています。
申し訳ありませんが、心当たりのある方、アドバイスいただけないでしょうか。
環境は以下の通りです。
OS :CentOS 5.2(Kernel 2.6.18-92.1.22.el5)
Apache :2.2.1
PHP :5.2.8
ZABBIX :1.4.5
PostgreSQL:8.3.5
以上、よろしくお願いいたします。
KAZ - 投稿数: 1085
KAZと申します。
グラフの期間を変更しても表示されませんでしょうか?
また、serverのログにエラーが出力されていませんでしょうか?
y-komori - 投稿数: 6
返信ありがとうございます。
グラフ期間を変更しても変化はありません。IE7で表示すると、イメージのリンクが切れているときの「×」アイコンが表示されてしまう状態です。
serverのログとはzabbix_server.logのことでよいのですよね?
このファイルを tail -f でチェックしながら操作してみましたが、特にエラーは出力されないようです。
KAZ - 投稿数: 1085
その画像を右クリックしてプロパティを見るとURLはどうなっていますか?
また、webサーバのログでエラーはなんとなっていますでしょうか?
zabbix_server.confのDebugLevelは3でしょうか?
もし3ならばDebugLevelを4にして動かすことはできますでしょうか?
※:zabbix_serverの再起動が必要です。
y-komori - 投稿数: 6
KAZさん
以下のような感じです。(ドメイン部分は伏せています)
https://www.XXXXXXX.jp/personal/zabbix/chart2.php?graphid=61&from=0&period=43200&width=830
apache のログを確認してみましたが、特にエラーは出ていません。
以下のようなログが出ているので、少なくとも上記のGETリクエストは届いているようです。
XXXXXXXXXX - - [26/Dec/2008:15:20:34 +0900] "GET /personal/zabbix/chart2.php?graphid=61&from=0&period=43200&width=830 HTTP/1.1" 200 172 "htt
ps://www.XXXXXX.jp/personal/zabbix/charts.php" "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"
DebugLevelを4にしてzabbix_serverを再起動しました。発行しているSQLなど詳細なログが出るようにはなりましたが、errorやfailといったキーワードで検索しても特に引っかかりませんでした(SQL内の文字列は除く)。
PHPの内部処理に問題があるような気がするのですが、PHPの処理で発生したエラーはどこかに出力されますでしょうか?
(なお、念のためphp.iniでdisplay_errors = Onとした状態で動かしています)
お手数おかけしてすみませんが、よろしくお願いします。
KAZ - 投稿数: 1085
<code>
PHPの内部処理に問題があるような気がするのですが、PHPの処理で発生したエラーはどこかに出力されますでしょうか?
(なお、念のためphp.iniでdisplay_errors = Onとした状態で動かしています)
</code>
phpのエラーですが、zabbix_server.logにでるか、画面に出るかになるはずです。
1点確認ですがPHPですが、rpmインストールでしょうか?
それともconfigureしたのでしょうか?
configureだった場合は、各pkgのインストール順を教えて下さい。
y-komori - 投稿数: 6
なるほど。(>PHPのエラー)
PHP はもともと他の用途でも使用しており、rpm からではなくtarボールからconfigureしてインストールしたものです。
今回、ZABBIXの要件に合わせるため、再コンパイル&インストールしました。
phpinfo()で表示されるconfigureオプションは以下の通りです。
'./configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--enable-zend-multibyte' '--enable-mbstring' '--with-pgsql' '--enable-mbregex' '--with-db4' '--enable-ftp' '--with-gd' '--with-zlib-dir=/usr/local/lib' '--with-png-dir=/usr/lib' '--enable-bcmath'
(「各pkgのインストール順を教えて下さい。」の回答になっているでしょうか?)
なお、念のためlibphp5.soに対してlddをかけて共有ライブラリのリンクも確認してみましたが、以下のようにきちんとリンクされているようです。
# ldd libphp5.so
linux-gate.so.1 => (0x003bf000)
libcrypt.so.1 => /lib/libcrypt.so.1 (0x00f9a000)
libpq.so.5 => /usr/local/pgsql/lib/libpq.so.5 (0x00d8c000)
librt.so.1 => /lib/librt.so.1 (0x002cc000)
libpng12.so.0 => /usr/local/lib/libpng12.so.0 (0x004ca000)
libz.so.1 => /usr/lib/libz.so.1 (0x00110000)
libdb-4.3.so => /lib/libdb-4.3.so (0x0018c000)
libresolv.so.2 => /lib/libresolv.so.2 (0x00123000)
libm.so.6 => /lib/libm.so.6 (0x00504000)
libdl.so.2 => /lib/libdl.so.2 (0x00f77000)
libnsl.so.1 => /lib/libnsl.so.1 (0x0042d000)
libxml2.so.2 => /usr/lib/libxml2.so.2 (0x00be3000)
libpthread.so.0 => /lib/libpthread.so.0 (0x00136000)
libc.so.6 => /lib/libc.so.6 (0x00da5000)
/lib/ld-linux.so.2 (0x00170000)
KAZ - 投稿数: 1085
phpをconfigureしたと言うことですが、PostgreSQL、libxml2やgdは既に入っていたということで良いですか?
PostgreSQL、libxml2やgd、libpng、libjpegはphpの前にいれる必要があります。大丈夫でしょうか?
y-komori - 投稿数: 6
はい。PostgreSQLも別用途で前から使っていたのでインストール済みです。libxml2は意識していませんでしたが、yum list installed で確認したところ、インストール済みでした。
gd、libpng、libjpeg もインストール済みであることを確認して、PHPを再度コンパイル&インストールしてみたのですが、ダメでした。
やはり、yum経由でインストールした方が無難なのでしょうか。
y-komori - 投稿数: 6
すみません、解決できました!
PHPのコンフィグレーションで --with-freetype-dir を指定していなかったのが原因でした。
Apacheのログをよく見てみると、以下のようなエラーが出ていたのでわかりました。
PHP Fatal error: Call to undefined function ImageTTFText() in
/home/httpd/ssl-html/personal/zabbix/include/classes/graph.inc.php on line 412, referer: https://www.XXXXXXXX.jp/personal/zabbix/charts.php
Apacheのログ出力をカスタマイズしていて、別の通常とは別のファイルに出力されているのをすっかり忘れていて気づきませんでした・・
KAZさん、どうもありがとうございました!