zabbix インストール
参考:Zabbix サーバ 2.2.3のインストール, Zabbix-2.2をインストールする手順(using PostgreSQL/Nginx)
yumリポジトリ設定
例によって公式リポジトリから最新版を入手します。
$ sudo rpm -ivh http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
$ sudo yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent
$ zabbix_server -V
Zabbix server v2.2.4 (revision 46772) (23 June 2014)
Compilation time: Jun 26 2014 02:27:30
$ zabbix_agent -V
Zabbix agent v2.2.4 (revision 46772) (23 June 2014)
Compilation time: Jun 26 2014 02:31:36
公式の最新版からインストールします。
インストールが終わったら/etc/yum.repos.d/zabbix.repo
はenable=0
にしておいてもいいかもしれません。
MySQL設定
まずはDB設定からで、MySQLを使用します。
$ sudo yum -y install mysql-server
$ sudo /usr/bin/mysql_secure_installation
$ sudo service mysqld start
$ sudo chkconfig mysqld on
ここではmysql-serverが未インストールだったので、yumからのインストールと初期設定をやっていますが、既に使っているDBがあるなら飛ばしてもいいかもしれません。
$ mysql -u root -p
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '任意のパスワード';
mysql> exit
$ cd /usr/share/doc/zabbix-server-mysql-2.2.4/create/
$ mysql -u root -p zabbix < schema.sql
$ mysql -u root -p zabbix < images.sql
$ mysql -u root -p zabbix < data.sql
必要なスキーマなどはSQLファイルが用意されているので、読み込ませるだけになります。
zabbix-server設定
概ね必要な設定は初期設定で入っているので、DBPasswordだけ設定します。
@@ -114,6 +114,8 @@
# Default:
# DBPassword=
+DBPassword=MySQLに設定した任意のパスワード
+
### Option: DBSocket
# Path to MySQL socket.
#
その他にDBHost/DBName/DBUser辺りは必要に応じて設定変更が必要らしいです。
zabbixサービス起動
$ sudo service zabbix-server start
Starting Zabbix server: [ OK ]
$ chkconfig --list | grep zabbix
zabbix-agent 0:off 1:off 2:off 3:off 4:off 5:off 6:off
zabbix-server 0:off 1:off 2:off 3:off 4:off 5:off 6:off
$ sudo chkconfig zabbix-server on
$ chkconfig --list zabbix-server
zabbix-server 0:off 1:off 2:on 3:on 4:on 5:on 6:off
まずは、サーバ側のサービスを起動しておきます。
$ sudo service zabbix-agent start
Starting Zabbix agent: [ OK ]
$ sudo chkconfig zabbix-agent on
$ chkconfig --list zabbix-agent
zabbix-agent 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ついでに、サーバ本体もzabbix-agentとして登録するために、エージェントも起動しておきました。
zabbix-web設定
nginx側の設定前に、zabbix-web関連のファイルを適当なディレクトリでnginx側から見れるように設定しておきます。
$ cd /etc/zabbix
$ ls -ld web
drwxr-x--- 2 apache apache 4096 6月 27 20:34 2014 web
$ sudo chown nginx.nginx web
drwxr-x--- 2 nginx nginx 4096 6月 27 20:34 2014 web
$ cd /var/www
$ sudo ln -s /usr/share/zabbix .
デフォルト(rpmで入れたばかりの)状態ではapache権限になっていたりするので、その辺りを変更したり、ベースとして/var/www
配下でファイルを管理したいので、シンボリックリンクを設定したりします。
zabbix側の設定としてはここまででほぼ完了です。
nginx+php-fpmで監視画面を起動
nginx設定
nginx側にサーバ設定を丸ごと追加します。もしかしたら単にlocation
単位で増やした方が簡単なのかもしれませんが、サーバ設定ファイル丸ごと別管理にしたかったので(^_^;)
ここで追加しているserver_name
について、別途DNS設定などを追加する必要がありますが、現状はローカルPCの/etc/hosts
に追記する方向で動作確認しています。
別途認証とかの設定を追加したりしたら、DNS設定入れようかな…。
server {
server_name zabbix.example.org;
root /var/www/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 ~ \.php {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
access/errorログについては、/etc/logrotate.d/nginx
で適当にローテートして貰うためにファイルパスを合わせて(/var/log/nginx/*.log
にして)います。error_log辺りはデフォルトのerror.log
に纏めてしまっても良かったのだろうか…。
サーバ設定が出来たらsudo service nginx restart
するだけですが、必要に応じて/etc/nginx/nginx.conf
でserver_names_hash_bucket_size
を変更する必要があるかもしれません。
php-fpm設定
次にphp関連の設定を変更します。
@@ -437,7 +437,8 @@
; Maximum execution time of each script, in seconds
; http://www.php.net/manual/en/info.configuration.php#ini.max-execution-time
-max_execution_time = 30
+;max_execution_time = 30
+max_execution_time = 300
; Maximum amount of time each script may spend parsing request data. It's a good
; idea to limit this time on productions servers in order to eliminate unexpectedly
@@ -446,7 +447,8 @@
; Development Value: 60 (60 seconds)
; Production Value: 60 (60 seconds)
; http://www.php.net/manual/en/info.configuration.php#ini.max-input-time
-max_input_time = 60
+;max_input_time = 60
+max_input_time = 300
; Maximum input variable nesting level
; http://www.php.net/manual/en/info.configuration.php#ini.max-input-nesting-level
@@ -726,7 +728,8 @@
; Maximum size of POST data that PHP will accept.
; http://www.php.net/manual/en/ini.core.php#ini.post-max-size
-post_max_size = 8M
+;post_max_size = 8M
+post_max_size = 32M
; Magic quotes are a preprocessing feature of PHP where PHP will attempt to
; escape any character sequences in GET, POST, COOKIE and ENV data which might
@@ -944,6 +947,7 @@
; Defines the default timezone used by the date functions
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone
;date.timezone =
+date.timezone = Asia/Tokyo
; http://www.php.net/manual/en/datetime.configuration.php#ini.date.default-latitude
;date.default_latitude = 31.7667
php-fpmもデフォルトだとapache権限で動作しようとする為、nginx権限で動作するように、設定を変更しておきます。
@@ -36,9 +36,9 @@
; Note: The user is mandatory. If the group is not set, the default user's group
; will be used.
; RPM: apache Choosed to be able to access some dir as httpd
-user = apache
+user = nginx
; RPM: Keep a group allowed to write in log dir.
-group = apache
+group = nginx
; Choose how the process manager will control the number of child processes.
; Possible Values:
ここまでで最低限の設定は終わったので、php-fpmを自動起動するようにしておきます。
$ chkconfig php-fpm --list
php-fpm 0:off 1:off 2:off 3:off 4:off 5:off 6:off
$ sudo service php-fpm start
php-fpm を起動中: [ OK ]
$ chkconfig php-fpm --list
php-fpm 0:off 1:off 2:on 3:on 4:on 5:on 6:off
ブラウザでの設定
後はブラウザ側で操作します。
http://zabbix.example.org
にアクセスすることで、初期画面が表示されるので、基本はそのままNextしていけば完了します。
その後、適時設定(監視対象の追加など)が出来るはずです。