ZABBIXサーバできました。

この間、書きましたとおりZABBIXサーバを作っていました。

とりあえずサーバに関しては出来上がりました。
あとは、エージェント側をつないでいって、設定を入れ込む感じです。
エージェント側はまだまだ整理していないので、時間がかかるかな?


ZABBIXサーバに関して、今回は1.4.6ですが、日本語については基本的にUTF-8で作られています。
今回インストールしたサーバについては他の要件によりEUC-JPでの構築をしました。
結構文字化けなどに苦労しましたが、ちょっとだけメモを残します。


まず、基本的なフロントエンドについては、日本語表示は
(WebサーバのZABBIXディレクトリ)/include/locales/ja_jp.inc.phpで設定します。
まず
「cd (WebサーバのZABBIXディレクトリ)/include/locales/ 」
「cp ja_jp.inc.php ja_jp.inc.php.euc」でコピーをとり、
念のため「cp ja_jp.inc.php ja_jp.inc.php.org」でオリジナルをコピーしておきます。

cp ja_jp.inc.php.eucをエディタで開き、このファイル中の、
「"S_HTML_CHARSET"=> "UTF-8",」を
「"S_HTML_CHARSET"=> "EUC-JP",」にします。

そして、このファイルの全角文字はUTF-8エンコーディングされているので、
nkf -W8e ja_jp.inc.php.euc > ja_jp.inc.php」としてエンコーディングEUC-JPに変換します。

DBもEUC-JPでエンコーディング指定し、apachephp.iniのmbstring関連もEUC-JP設定にしておけば
問題なくEUC-JPで表示されるようになります。


ただしマップについては文字化けしたままです。
これについてはまずZABBIX-JP記事を参考に日本語フォントファイルを使用するように変更します。


ZABBIX-JPのkodaiさんのコメントです。

map.phpの260行目を以下のように変更してみてください。

変更前:
ImageString($im, 2, $x_info, $y_info, $info_line,$color);

変更後:
//ImageString($im, 2, $x_info, $y_info, $info_line,$color);
ImageTTFText($im, 8, 0, $x_info+5, $y_info+10, $color, "/usr/share/fonts/ipafont/ipag.ttf", $info_line);

/usr/share/fonts/ipafont/ipag.ttf の部分は、適当な日本語フォントファイルを指定してください。

そしてimagettftextはUTF-8の文字を画像に含める関数なので、UTF-8での構築であれば問題ないですが、
EUC-JPでは文字化けしてしまいます。
ImageTTFTextの行の前に、文字列のエンコード変換を挿入します。

変更前:
//ImageString($im, 2, $x_info, $y_info, $info_line,$color);
ImageTTFText($im, 8, 0, $x_info+5, $y_info+10, $color, "/usr/share/fonts/ipafont/ipag.ttf", $info_line);

変更後:
//ImageString($im, 2, $x_info, $y_info, $info_line,$color);
$_info_line = mb_convert_encoding($info_line, "UTF-8", "EUC-JP");
ImageTTFText($im, 8, 0, $x_info+5, $y_info+10, $color, "/usr/share/fonts/ipafont/ipag.ttf", $_info_line);


これでマップも文字化けしなくなります。