インストール環境とバージョン
今回、インストールするサーバとzabbix-serverのバージョンは以下のようになります。名前 | バージョン | ダウンロード元 |
---|---|---|
ubuntu | 10.04.4(64bit) | http://releases.ubuntu.com/lucid/ |
Apache Httpd Server | 2.4.6 | http://httpd.apache.org/ |
PHP | 5.5.5 | http://www.php.net/ |
MySQL | 5.6.14 | http://dev.mysql.com/ |
Net-SNMP | 5.7.2 | http://net-snmp.sourceforge.net/ |
cURL | 7.33.0 | http://curl.haxx.se/ |
ZABBIX | 2.2.0 | http://www.zabbix.com/ |
インストールする前の準備作業
開発パッケージが設置されてない場合は、apt-get
でインストールする必要があります。# apt-get install build-essential curl libcurl3 libpcre3-dev libssl-dev libxml2-dev libbz2-dev libgd2-xpm-dev libmcrypt-dev
ロケール、フォントを追加します。
# sudo locale-gen ja_JP.UTF-8 # apt-get install gettext
Apacheインストール
「Apache2.4.6のインストール手順」を参照してください。Mysqlインストール
「MySQL 5.6.16のインストール手順」を参照してください。PHPインストール
「PHP5.5.5,PHP-FPMのインストール手順」を参照してください。Net-SNMPをインストールする
※以下のコマンドを実行してインストールしてください。尚、configureでは値の入力を求められますが、入力する値は全てデフォルト値で問題ありません。
make途中【/usr/bin/ld: cannot find -lperl】エラーの場合
apt-get install libperl-dev
を実行してください。# cd /usr/local/src/ # wget -O 'net-snmp-5.7.2.tar.gz' http://downloads.sourceforge.net/project/net-snmp/net-snmp/5.7.2/net-snmp-5.7.2.tar.gz?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fnet-snmp%2Ffiles%2Fnet-snmp%2F5.7.2%2F&ts=1380706908&use_mirror=jaist # tar xvf net-snmp-5.7.2.tar.gz # cd net-snmp-5.7.2 # ./configure # make # make install
cURLをインストールする
# curl -version # apt-get remove curl # cd /usr/local/src/ # wget http://curl.haxx.se/download/curl-7.33.0.tar.gz # tar xvf curl-7.33.0.tar.gz # cd curl-7.33.0 # ./configure # make && make install
cURLのコマンドを
/etc/profile
に登録します。尚、既に登録されている場合は省略してください。
# curl -V # vi /etc/profile /usr/local/bin/をPATH=の所に追加します。 export PHP_HOME=/usr/local/php/current PATH=${PHP_HOME}/bin:${PATH}:/usr/local/bin/ # source /etc/profile # curl -V
Zabbixをインストールする
※configureオプションは自由に変更してください。オプション:with-mysql(MYSQL監視)、with-net-snmp(SNMPサポートのため)、with-libcurl(WEB監視)
# groupadd zabbix # useradd -g zabbix -s /bin/false -M zabbix # cd /usr/local/src/ # wget -O 'zabbix-2.2.0.tar.gz' http://downloads.sourceforge.net/project/zabbix/ZABBIX%20Latest%20Stable/2.2.0/zabbix-2.2.0.tar.gz?r=http%3A%2F%2Fwww.zabbix.com%2Fjp%2Fdownload.php&ts=1387170751&use_mirror=jaist # tar xvf zabbix-2.2.0.tar.gz # cd zabbix-2.2.0 # ./configure --enable-server --with-mysql=/usr/local/mysql/current/bin/mysql_config --with-net-snmp --with-libcurl # make # make install
その他、設定ファイルを登録します。
# mkdir /var/log/zabbix # chown zabbix:zabbix /var/log/zabbix # cp misc/init.d/debian/zabbix-server /etc/init.d # cp conf/zabbix_server.conf /usr/local/etc/zabbix_server.conf # cp misc/init.d/ubuntu/zabbix-server.conf /etc/init/ # sudo start zabbix-server
zabbix_server.conf
の設定を書き換えます。# vi /usr/local/etc/zabbix_server.conf DBName=データベース名 DBUser=データベースに接続するユーザ名 DBPassword=データベースに接続するユーザのパスワード DBSocket=/usr/local/mysql/current/tmp/mysql.sock LogFile=/var/log/zabbix/zabbix_server.log
php.ini
の設定を書き換えます。# vi /usr/local/php/current/conf/php.ini max_execution_time = 600 max_input_time = 600 memory_limit = 256M post_max_size = 32M upload_max_filesize = 16M date.timezone = "Asia/Tokyo"
/etc/ld.so.conf.d/net-snmp.conf
を作成します。# vi /etc/ld.so.conf.d/net-snmp.conf /usr/local/lib
/etc/ld.so.conf.d/mysql.conf
を作成します。※既に設定されている場合は上書きしてください。
# vi /etc/ld.so.conf.d/mysql.conf /usr/local/mysql/current/lib
以下のコマンドでライブラリのパスを通します。
# ldconfig
mysqlサーバにデータベースを作成します。
mysql -u root -p > create database zabbix charset=utf8; > grant all on zabbix.* to zabbix@localhost identified by "任意のパスワード"; > flush privileges; > exit # cd /usr/local/src/zabbix-2.2.0 # mysql -u zabbix -D zabbix -p < database/mysql/schema.sql # mysql -u zabbix -D zabbix -p < database/mysql/images.sql # mysql -u zabbix -D zabbix -p < database/mysql/data.sql
以下の手順でphpプログラムを配置します。
# mkdir /usr/local/httpd/current/htdocs/zabbix # cd /usr/local/src/zabbix-2.2.0/frontends/php/ # cp -a . /usr/local/httpd/current/htdocs/zabbix/ # chown -R apache:apache /usr/local/httpd/current/htdocs/zabbix # chmod 777 /usr/local/httpd/current/htdocs/zabbix/conf
zabbix-serverを起動します。
# /etc/init.d/zabbix-server start # ps -ef | grep zabbix zabbix 9447 1 0 16:46 ? 00:00:00 /usr/local/sbin/zabbix_server zabbix 9449 9447 0 16:46 ? 00:00:00 /usr/local/sbin/zabbix_server: configuration syncer [waiting 60 sec for processes] zabbix 9450 9447 0 16:46 ? 00:00:00 /usr/local/sbin/zabbix_server: db watchdog [synced alerts config in 0.004222 sec, idle 60 sec] zabbix 9451 9447 0 16:46 ? 00:00:00 /usr/local/sbin/zabbix_server: poller #1 [got 0 values in 0.000004 sec, idle 5 sec] zabbix 9452 9447 0 16:46 ? 00:00:00 /usr/local/sbin/zabbix_server: poller #2 [got 0 values in 0.000002 sec, idle 5 sec] zabbix 9453 9447 0 16:46 ? 00:00:00 /usr/local/sbin/zabbix_server: poller #3 [got 0 values in 0.000003 sec, idle 5 sec] zabbix 9454 9447 0 16:46 ? 00:00:00 /usr/local/sbin/zabbix_server: poller #4 [got 0 values in 0.000002 sec, idle 5 sec] zabbix 9455 9447 0 16:46 ? 00:00:00 /usr/local/sbin/zabbix_server: poller #5 [got 0 values in 0.000003 sec, idle 5 sec] 起動されない場合は以下のログファイルを確認してください。 # tail -f /var/log/zabbix/zabbix_server.log
Webページに接続して実際のページを確認します。
http://192.168.56.101/zabbix/setup.php
ID/PW: admin / zabbix
Zabbixの日本語文字設定
日本語のロケール、フォントを追加します。# cd /usr/local/httpd/current/htdocs/zabbix/locale # sudo locale-gen ja_JP.UTF-8 # ./make_mo.sh ./make_mo.sh: line 4: msgfmt: command not found というエラーが発生した場合は「gettext」をインストールしてください。 # apt-get install gettext日本語のフォントを設置します。
# aptitude install otf-ipafont # cd /usr/local/httpd/current/htdocs/zabbix/fonts # ln -s /usr/share/fonts/opentype/ipafont/ipag.ttf ipag.ttf # vi /usr/local/httpd/current/htdocs/zabbix/include/defines.inc.php 内容変更 //define('ZBX_GRAPH_FONT_NAME', 'DejaVuSans'); // font file name define('ZBX_GRAPH_FONT_NAME', 'ipag'); //define('ZBX_FONT_NAME', 'DejaVuSans'); define('ZBX_FONT_NAME', 'ipag');Webページにadminにてログインした後、上段の「Profile⇒User⇒Language項目」を英語から「Japanese (ja_JP)」に変更して 保存するとページの言語が変わります。
文字フォントを変更しても以下のキャプチャのようにグラフの文字列が文字化けする場合があります。
PHPをコンパイルする際に
enable-gd-jis-conv
オプションをつけてインストールすると、imagettftext()関数の最後の因数string $text
がUTF-8の文字列ではなく、SJISになってしまうのが原因ですので、解決をするためにはenable-gd-jis-conv
を消して再コンパイルするか、Zabbixのgraphs.inc.php
ファイルのimagettftext()関数を使う部分にUTF8エンコードするロジックを追加する必要があります。修正する方法は以下の部分をご参照ください。
# vi /usr/local/httpd/current/htdocs/zabbix/include/graphs.inc.php if ($gdinfo['FreeType Support'] && function_exists('imagettftext')) { //678Lineに以下のifを追加することで、文字化けがなくなります。 //--------ここから-------- if ($gdinfo['JIS-mapped Japanese Font Support']) { $string = mb_convert_encoding($string, "SJIS", "UTF-8"); } //--------ここまで-------- if ((preg_match(ZBX_PREG_DEF_FONT_STRING, $string) && $angle != 0) || ZBX_FONT_NAME == ZBX_GRAPH_FONT_NAME) { $ttf = ZBX_FONTPATH.'/'.ZBX_FONT_NAME.'.ttf'; imagettftext($image, $fontsize, $angle, $x, $y, $color, $ttf, $string); } elseif ($angle == 0) { $ttf = ZBX_FONTPATH.'/'.ZBX_GRAPH_FONT_NAME.'.ttf'; imagettftext($image, $fontsize, $angle, $x, $y, $color, $ttf, $string); } else { $ttf = ZBX_FONTPATH.'/'.ZBX_GRAPH_FONT_NAME.'.ttf'; $size = imageTextSize($fontsize, 0, $string); $imgg = imagecreatetruecolor($size['width'] + 1, $size['height']); $transparentColor = imagecolorallocatealpha($imgg, 200, 200, 200, 127); imagefill($imgg, 0, 0, $transparentColor); imagettftext($imgg, $fontsize, 0, 0, $size['height'], $color, $ttf, $string); $imgg = imagerotate($imgg, $angle, $transparentColor); ImageAlphaBlending($imgg, false); imageSaveAlpha($imgg, true); imagecopy($image, $imgg, $x - $size['height'], $y - $size['width'], 0, 0, $size['height'], $size['width'] + 1); imagedestroy($imgg); } }修正した後、実際の画面で確認してみると問題なくグラフに日本語が表示されます。
zabbix-getのInstall
zabbix-getなどのコマンドはZabbixのsrc
ディレクトリの中にありますので、makeを利用して追加インストールする必要があります。
# cd /usr/local/src/zabbix-2.2.0/src/zabbix_get # make # make install … … test -z "/usr/local/bin" || /bin/mkdir -p "/usr/local/bin" /usr/bin/install -c zabbix_get '/usr/local/bin' make[1]: Nothing to be done for `install-data-am'. make[1]: Leaving directory `/usr/local/src/zabbix-2.2.0/src/zabbix_get' # zabbix_get usage: zabbix_get [-hV] -s[-p ] [-I ] -k
・Zabbix Agent2.2の設置手順につきましては、以下のURLを参照してください。
Zabbix Agent2.2.0のインストール手順
Excellent, what a web site it is! This weblog gives useful data to us, keep it up.
返信削除