LoginSignup
21
22

More than 5 years have passed since last update.

Zabbix-2.2をインストールする手順(using PostgreSQL/Nginx)

Last updated at Posted at 2014-04-16

やること

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のような設定ができるらしいです。
どうしたらよいのだろう?

21
22
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
21
22