本日も乙

ただの自己満足な備忘録。

Zabbixサーバによる統合監視(2) 〜Zabbixサーバ(2.2)を設定する〜

前回の続きで、今回はZabbixサーバを動かし、モニタリングするための設定を行います。

  1. Vagrantでローカル環境にサーバをたてる
  2. Zabbixサーバをインストールする
  3. Zabbixサーバを設定してモニタリングできる環境を構築する
  4. Zabbixエージェントをインストールして、サーバを監視する
  5. Zabbixプロキシをインストールして複雑な監視環境を構築する
  6. ZabbixSenderを使って特殊なパラメータを監視する
  7. ZabbixAPIを使ってZabbixを操作する

今回は3を取り上げます。

zabbixユーザとグループを作成

zabbixを実行するユーザとグループを作成します。

$ sudo groupadd zabbix
$ sudo useradd -M -g zabbix -s /sbin/nologin zabbix
$ sudo mkdir /var/run/zabbix
$ sudo mkdir /var/log/zabbix
$ sudo chown -R zabbix:zabbix /var/run/zabbix
$ sudo chown -R zabbix:zabbix /var/log/zabbix

自動起動の設定

起動スクリプトをコピーします。

$ sudo cp /usr/local/src/zabbix-2.2.3/misc/init.d/fedora/core5/zabbix_server /etc/init.d/zabbix_server
$ sudo chmod 755 /etc/init.d/zabbix_server

自動起動の設定を行います。

$ sudo chkconfig --add zabbix_server
$ 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

MySQLの設定

前半はMySQL自体の設定なので、インストール済の場合は飛ばしてください。

MySQL自動起動設定

$ sudo chkconfig --add mysqld
$ sudo chkconfig mysqld on
$ sudo chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off

MySQL起動

$ sudo service mysqld start
Starting mysqld:                                           [  OK  ]

root のパスワード変更

$ mysqladmin -u root password 'xxxxxxxx'

xxxxxxxxに好きなパスワードを入力してください。

ここからZabbixサーバに関する設定を行います。

Zabbixデータベース作成とユーザの作成

Zabbixサーバ内(localhost)にZabbixサーバ用にzabbixユーザとzabbixデータベースを作成します。
zabbixユーザのパスワードをzabbixにしていますが、お好みで変えてください。
zabbixユーザがzabbixデータベースに関するすべての操作を行うことができるように権限を設定しています。

$ mysql -u root -p
mysql> create database zabbix character set utf8;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'zabbix';
mysql> flush privileges;
mysql> exit

zabbixデータベースにスキーマとデータを投入

Zabbixサーバを動かすのに必要なスキーマ及びデータを先ほど作成したzabbixデータベースに投入します。

$ cd /usr/local/src/zabbix-2.2.3
$ mysql -uzabbix -pzabbix zabbix < database/mysql/schema.sql
$ mysql -uzabbix -pzabbix zabbix < database/mysql/images.sql
$ mysql -uzabbix -pzabbix zabbix < database/mysql/data.sql

PHPの設定

Zabbixサーバを動かすためにphp.iniを編集します。

; php.ini

; 16M以上に設定する
- post_max_size = 8M
+ post_max_size = 16M

; 300以上に設定する
- max_execution_time = 30
+ max_execution_time = 300

; 300以上に設定する
- max_input_time = 60
+ max_input_time = 300

; timezoneを設定する
- ;date.timezone =
+ date.timezone = Asia/Tokyo

Apacheの設定

ログディレクトリのパーミッションを変更

$ sudo chmod -R 755 /var/log/httpd

Apache自動起動設定

$ sudo chkconfig --add httpd
$ sudo chkconfig httpd on
$ chkconfig --list httpd
httpd           0:off   1:off   2:on    3:on    4:on    5:on    6:off

Zabbixサーバのフロントエンドファイル郡をドキュメントルート配下に設置

$ sudo cp -a /usr/local/src/zabbix-2.2.3/frontends/php /var/www/html/zabbix

フロントエンドファイル群のファイル所有者をWebサーバに変更

今回はApacheなので、apacheユーザに変更

$ sudo chown -R apache:apache /var/www/html/zabbix

httpd.conf を編集

$ cd /etc/httpd/conf/
$ sudo cp -a httpd.conf httpd.conf.default
--- httpd.conf.default  2014-05-23 09:40:03.723718692 +0000
+++ httpd.conf  2014-05-23 09:35:53.819829964 +0000
@@ -274,6 +274,7 @@
 # redirections work in a sensible way.
 #
 #ServerName www.example.com:80
+ServerName localhost:80

 #
 # UseCanonicalName: Determines how Apache constructs self-referencing
@@ -1008,3 +1009,10 @@
 #    CustomLog logs/dummy-host.example.com-access_log common
 #</VirtualHost>

+<VirtualHost *:80>
+  DocumentRoot /var/www/html/zabbix
+  ServerName zabbix.localhost
+  CustomLog /var/log/httpd/access.log common
+  ErrorLog /var/log/httpd/error.log
+</VirtualHost>

Apache起動

$ sudo service httpd start
Starting httpd:                                            [  OK  ]

Macの/etc/hosts 編集

今回はローカル環境で構築しており、MacのブラウザからZabbixのGUIを確認するために、Mac/etc/hostsを編集します。

# /etc/hosts

# 追記
192.168.56.50   zabbix.localhost

Zabbixサーバの設定

設定ファイルを編集します。
DBHost, DBName, DBUser, DBPasswordはMySQLで作成したユーザとそのパスワード、データベースを設定してください。

# /usr/local/etc/zabbix_server.conf

- LogFile=/tmp/zabbix_server.log
+ LogFile=/var/log/zabbix/zabbix_server.log

- PidFile=/tmp/zabbix_server.pid
+ PidFile=/var/run/zabbix/zabbix_server.pid

- #DBHost=localhost
+ DBHost=localhost

- #DBName=
+ DBName=zabbix

- DBUser=root
+ DBUser=zabbix

- # DBPassword=
+ DBPassword=zabbix

Zabbixサーバを起動します。

$ sudo service zabbix_server start
Starting zabbix_server:                                    [  OK  ]

GUIで初期設定

http://zabbix.localhost/ にアクセスします。
[Next]をクリックして次に進みます。

setup1

[2.Check of pre-requisites]でZabbixを動かすための要件を満たしているか確認してすべてOKなら[Next]をクリックして次に進みます。
もし、NGが出ている場合はPHPなどの設定を見直してOKになるようにしてください。

setup2

Zabbixデータベースに接続するMySQLユーザ、パスワード、ホスト名、データベース名を入力して[Test Connection]をクリックし、OKが表示されたら[Next]をクリックします。

setup3

Zabbixサーバのホスト名、ポート番号(デフォルトで10051)、サーバ名(任意)を入力して[Next]をクリックします。

setup4

入力した情報を確認して、問題なければ[Next]をクリックします。

setup5

問題がなければ、フロントエンドファイル群以下に設定ファイル(zabbix.conf.php)が自動生成されます。
[Finish]をクリックすると初期設定は完了です。

setup6

ログインしてみる

これでインストール及び、設定が完了しました!
実際にログインしてみましょう。
初回ログイン時のユーザ名はadmin, パスワードはzabbixです *1

login

ログインすると、ダッシュボードが表示されます。

dashboard

日本語表記にする

このままでも問題ないのですが、英語が分かりにくい場合は日本語表記にすることもできます。

サーバの言語を日本語にする

i18nを編集します。

# /etc/sysconfig/i18n

- LANG="en_US.UTF-8"
+ LANG="ja_JP.utf8"

Webサーバ、Zabbixサーバを再起動します。

$ sudo service httpd restart
$ sudo service zabbix_server restart

GUIからZabbixの使用言語を変更する

ダッシュボード右上の[Profile]をクリックします。

profile

[User]タブの[Language]欄からJapanese (ja_JP)を選択して、[Save]をクリックすれば完了です。
Japanese (ja_JP)が一覧に出てこない場合は、サーバ内の言語が日本語になっているかを確認してください。

change_language

すべてのページが日本語表記になっています。

japanese_dashboard

最後に

前回に引き続いてZabbixサーバを設定して監視対象サーバをモニタリングできる環境を構築できました。
しかし、Zabbixサーバをインストールしただけではサーバを監視することができず、Zabbixエージェントをインストールして設定することで監視することができます。次回はZabbixエージェントについて取り上げます。

*1:後でパスワードを変えるのを忘れずに!