やること
Zabbix-2.2をインストールします。
サーバは以下の構成です。
OS: CentOS 6.5
DB: PostgreSQL 8.4.20
WebServer: Nginx 1.4.6
公式マニュアルや「Zabbix インストール」でググると、MySQL+Apacheの組み合わせだったので、忘れないようにメモです。
基本的には公式マニュアルのInstallationを参考にしました。
あと、packageからインストールしました。
なのでInstallation from packagesを参照しました。
こちらのブログも参考にしました。
Zabbix 2.2 を yumでインストール(Linux CentOS6.4)
手順
1. yumリポジトリを登録
# rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
2. Zabbixパッケージをインストール
# yum install zabbix-server-pgsql zabbix-web-pgsql zabbix-web-japanese
# yum install zabbix-agent
# yum install zabbix-get
PostgreSQLなので*-pgsqlを
Front Webで日本語を使えるようにするためにzabbix-web-japaneseを
あると何かと便利らしいzabbix-getをインストールしました。
3. データベース初期化
Zabbix用のユーザとDBを作成します。
DBはzabbixユーザをオーナーにしました。
ユーザ作成時に聞かれるロールは全てNoです。
# createuser -W zabbix
# createdb -O zabix zabbix
テーブルを作成して、初期データを登録します。
# cd /usr/share/doc/zabbix-server-pgsql-2.2.3/create
# psql -W -d zabbix -f schema.sql zabbix
# psql -W -d zabbix -f images.sql zabbix
# psql -W -d zabbix -f data.sql zabbix
4. Zabbixの設定ファイルを編集
Zabbixの設定ファイルをDBに合わせて編集します。
DBName, DBUserはデフォルトでOKでした。
DBPortはPostgreSQLのポートを指定します。
DBName=zabbix
DBUser=zabbix
DBPassword=<password>
DBPort=5432
5. PostgreSQLのpg_hba.confを編集
localhostからの接続を許可するようにidentをtrustに変更しました。
127.0.0.1/32 trustだけでいいのかと思いましたがだめだったので、::1/128もtrustにしました。
host all all 127.0.0.1/32 trust
host all all ::1/128 trust
ZabbixからPostgreSQLに接続できない場合、下のようなメッセージがzabbix_server.logに出力されます。
31936:20140415:202234.778 [Z3001] connection to database 'zabbix' failed: [0] FATAL: Ident authentication failed for user "zabbix"
6. Zabbixサーバを起動
# service zabbix-server start
7. NginxでPHPを動かせるようにする
CentOSにてnginxでPHPを動かす
こちらを参考に、php-fpm をインストールしてNginxでPHPを動かせるようにしました。
fastcgi-paramは以下のようにしました。
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
8. /etc/zabbix/webのオーナーを変更する
/etc/zabbix/web のオーナー、グループがapacheになっているのでnginxに変更します。
# chown nginx:nginx /etc/zabbix/web
変更しないでアクセスすると下のようなメッセージがNginxのエラーログに出力されました。
2014/04/15 22:57:20 [error] 1850#0: *16 FastCGI sent in stderr: "PHP message: PHP Warning: require_once(/etc/zabbix/web/maintenance.inc.php): failed to open stream: Permission denied in /usr/share/nginx/html/zabbix/include/classes/core/ZBase.php on line 276
PHP message: PHP Fatal error: require_once(): Failed opening required '/etc/zabbix/web/maintenance.inc.php'
(以下省略)
9. Nginxのdocument_rootにzabbixへのリンクを張る
# cd /usr/share/nginx/html
# ln -s /usr/share/zabbix .
10. ブラウザでアクセスして初期設定をする
初期設定時にPHPの設定で条件を満たしていないと先に進めません。
/etc/php.ini を編集して、php-fpmを再起動しました。
おわりに
NginxでのPHP設定がいまいちな感じです。
あと、Zabbix要件を満たすために/etc/php.iniを編集したのですが、他の方法がないか気になります。
ApacheだとDirectoryディレクティブにphp_value memory_limit 128M
のような設定ができるらしいです。
どうしたらよいのだろう?