Zabbix1.8をraspbian上で動かすこと数日、OSを再起動するとmysqlが起動せずOSが立ち上がらない。よくわからない状態になった。
いっそのこと別のSDカードのCentOS7にインストールしてみようと思い、zabbixソースからコンパイルすることを試してみた。以下自分のための備忘録です。
■Zabbixソースからインストール
Ver.はインストール手順のドキュメントが充実している2.2にした。
4 ソースからのインストール [Zabbix Documentation 2.2]
condigureで、はまってしまったのが
./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2
をすると、Curl library not found - ZABBIX Forums という状態に。Curlがどうしても足りない。yum install libcurl-develやらいろいろ試して追加しようとしたが、yumからうまく入れられず。
■Curlのインストール
https://curl.haxx.se/latest.cgi?curl=tar.gz
からソースをダウンロードし、Curlをmake && make install。
改めてzabbixの./configureをしたところ無事チェック完了し、make installできた。
データベースはmariadbでdbを作成しておく。
出来上がったZabbix の出来上ったphpファイルの必要なものをvar/www/html/zabbix配下にコピーし、localhost にアクセスしたところzabbixの初期画面が表示された。
phpのチェックでエラーが大量に発生。定番の/etc/php.iniの設定の問題だけでなくPHP databases supportがfailedになっている。
■PHPのインストール
phpからdbが扱えないそうなので対策開始。ここで少し遠回りをしてしまった。mysqlのモジュールが入ったPHPが必要ということで
無料で監視ツールを構築しよう(1)~Zabbixの初期セットアップ~ | エンジニア転職求人情報×IT人材紹介@SAK
を参考に、PHPをソースから入れてみる。php-5.6.22.tar.gzを使用。configure のときにmysqlのオプションを選択。インストール完了後、コマンドラインのPHP -vでphpが動いていることはわかるが、apacheとの連携がうまくいかず、お決まりのphp info()を作成してみたが表示されない。
ここで、PHPをそもそもソースから入れなくても、yum install php -mysqlで入れ直せばよいことに気付く。yumからインストールされたPHPはVer5.4.xだった。
まだapacheとの連携がいまくいかないので、 /etc/httpd/conf/httpd.conf
に LoadModule php5_module libexec/apache2/libphp5.so を追加して、php info()が表示されるようになった。その他、php関連で足りないものをyumで追加して、ようやくzabbixの初期設定が全部OKになった。
zabbix_server.confにzabbixのDBのUser Passなどを設定しdbも準備ok
とりあえず、ネットワーク内のpc2台にagent を入れ、その他の機器はicmpでモニター出来るように設定した。
■fpingの追加
pingによる監視ができないようだ。調べると必要とされているfpingコマンドがいない。yumには無く、RPMをインストールするが、glibc関連で問題ありうまくいかない。ソースから入れることにした。
shell> chown root:zabbix /usr/sbin/fping shell> chmod 4710 /usr/sbin/fping
注意が必要なのは、fpingの権限は上記設定が必要なのと、zabbix_server.confに、fpingのパスを正しく設定することが必要だった。
■フォントの日本語対応
yum install ipa-pgothic-fonts.noarch
でフォントをインストール
ln -s /usr/share/fonts/ipa-pgothic/ipagp.ttf /var/www/html/zabbix/fonts/ipagp.ttf
で、zabbixで使うフォントの置き場にシンボリックリンクを張る。
/var/www/html/zabbix/include/defines.inc.php
のフォントの設定を変更する。デフォルトのDejaVuSansからipagpに変更
// define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name
define('ZBX_GRAPH_FONT_NAME', 'ipagp'); // font file name
と
// define('ZBX_FONT_NAME', 'DejaVuSans');
define('ZBX_FONT_NAME', 'ipagp');
を修正して日本語表示OKとなった。
これでひととおりの作業はできた。SDカードの寿命が気になるが、しばらくこれで運用する。