2013-12-16

2013-12-16 21:56

インストール環境とバージョン

今回、インストールするサーバと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のインストール手順

0 コメント:

コメントを投稿