Zabbix導入編【nginx】【php-fpm】【Amazon Linux】

Zabbixを導入する手順を紹介します。

今回はApacheを使わずにnginxとphp-fpmを使います。 環境は以下の通り

  • Zabbix 3.0.21
  • OS:Amazon Linux
  • php5.6
  • mysql5.5
  • nginx

■必要パッケージのインストール

yum install mysql-server nginx php56 php56-gd php56-mbstring php56-mysqlnd php56-bcmath

古いバージョンのphp53などがよく入っていてconflictするので見逃さずに。Zabbixはphp56以上推奨なので・・・

■Zabbixのrpmとインストール

# yumリポジトリの追加
% rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/6/x86_64/zabbix-release-3.0-1.el6.noarch.rpm

# Zabbix関連パッケージのインストール
% yum install zabbix-server-mysql.x86_64 zabbix-web-mysql.noarch zabbix-web-japanese.noarch zabbix-get

ここできちんと、Zabbix-3.0以上をrpmしていることを確認してくださいね。 ネット上にはZabbix-2.0系のコマンドがたくさんありますので。

■Mysqlの設定 Mysqlにzabbixのアカウントを追加します。

# MySQLの起動
% service mysqld start

# MySQLにZabbix用ユーザ作成
% mysql -uroot
:
:
mysql> CREATE USER zabbix;
Query OK, 0 rows affected (0.00 sec)

mysql> CREATE DATABASE zabbix;
Query OK, 1 row affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON zabbix.* TO zabbix@localhost IDENTIFIED BY '<パスワード>';
Query OK, 0 rows affected (0.00 sec)

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> \q
Bye

# MySQLにZabbixスキーマとデータを投入
% cd /usr/share/doc/zabbix-server-mysql-3.0.21/
% zcat create.sql.gz| mysql -uroot zabbix

たまにスキーマとデータ投入がうまくいかない時があって、それは、「3.0.21」の部分がたまに変わっていたり間にディレクトリが一つ多かったりしますので、つっかえたら確認してください。

■nginxの設定 nginxは以下の場所に新しく設定の.confファイルを作ります。

#vim /etc/nginx/conf.d/zabbix.conf

server {
        listen 80;
        server_name zabbix;

        #ドキュメントルートに zabbix の設定ファイルがあるディレクトリ(デフォルトで /usr/share/zabbix)を設
定する(シンボリックリンクを貼るのもありだがこっちのが良いかもしれないです。
        root        /usr/share/zabbix;
        index       index.html index.php;
        access_log  /var/log/nginx/access_zabbix.log main;
        error_log   /var/log/nginx/error_zabbix.log error;

        location /zabbix {
        try_files $uri $uri/ /index.html index.php;
        index index.php;
        }
        location ~ \.php {
                fastcgi_pass    127.0.0.1:9000;
                fastcgi_index   index.php;
                fastcgi_param   SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
        }
}

とまるごと置きます。

■権限の変更 Apacheがデフォルトになっているものをnginxに変えたり、権限をnginxに移行していきます。

#nginxがzabbixを書き換えられるようにしておく
chmod 777 /etc/zabbix/web/

php-fpmはデフォルトでapacheをユーザーとしているため変更してしまいます。

vim /etc/php-fpm.d/www.conf 

...

user= nginx
group= nginx

...

自分がやったときはなぜか変なところでApacheの権限が残っちゃって、zabbixが動かなかったので、 以下の部分の権限も変更しました。

chmod 777 /var/lib/php/5.6/session/
chmod 777 /var/lib/php/5.6/wsdlcache

この2つは

etc/php-fpm.d/www.conf

から見つけました。

■あとはzabbixを動かしてみる。

service zabbix-server restart
service php-fpm restart
service nginx restart

http://{IP}/zabbix と入れてみよう

□余談 zabbixの設定を一通り終えても、はじめはzabbixが起動すらしなかった。 なので、

/var/log/nginx/error.log

を確認すると、省略してこんなことを言ってたよ

 /usr/share/nginx/html/zabbix" failed (2: No such file or d
irectory)

あれーおかしいなぁー。さっき、root /usr/share/zabbix; って設定したのになーと思いつつ、解決方法は結局対症療法的に、

ln -s  /usr/share/zabbix /usr/share/nginx/html

という形にしたら動いたからオッケーと言う形にしたよ。

セキュリティ的にはいい方法ではないことなので、気になる人はやめてね。