2015年3月6日金曜日

ZabbixをCentOS 7にインストール

どこのサイトの情報も間違っているとのつぶやきを見かけたのでちょっと書いてみます。

ただし、基本的な流れとポイントのみです。

SELinuxは、disabledです。
firewalldの設定は、もっと厳密にした方が良いでしょう。
DBMSは、CentOS 7ですのでMariaDBとします。
PostgreSQLの方が良い方は、Zabbixのパッケージでパッケージ名のmysqlの部分がpgsqlのパッケージをインストールしてください。

=====
1.OSのインストール
=====
最低限の構成でOSをインストールします。

=====
2.各種パッケージのアップデート
=====
yum updateを利用して、インストールされている各種パッケージをアップデートします。

 # yum update

=====
3.SELinuxのdisabled
=====
手順の説明を簡略化するため、disabledにします。
環境に合わせて適宜設定することをお勧めします。

 # vi /etc/selinux/config

----- ここから -----
SELINUX=disabled
----- ここまで -----

=====
4.OS再起動
=====
SELinuxをdisabledに設定したので、それを反映させるためにOSを再起動しておきます。

 # reboot

=====
5.firewalldの設定
=====
rebootしたら、firewalldの設定を行います。
Zabbixサーバが外部から接続を受けるのは、Zabbixエージェントからのアクセスと、Webインターフェースへのアクセスです。
SNMPトラップや他のアクセスを許可する場合は、それらも許可するようにしてください。

 # firewall-cmd --add-port=10050/tcp --zone=public --permanent
 # firewall-cmd --add-port=10051/tcp --zone=public --permanent
 # firewall-cmd --add-service=http --zone=public --permanent
 # systemctl restart firewalld

Zabbixエージェントへのアクセスが、ローカルのループバックを利用するのであれば、10050をあける必要はありません。
つまり、Zabbixエージェントが外部のIPアドレスからアクセスされる場合には、10050をあけます。
Zabbixサーバが、Zabbixエージェントからのアクセスを外部から受ける時には、10051をあけます。

もっとアクセス可能なゾーンを特定したり、Zabbix用のサービスを定義して登録して、サービス名を利用して設定した方が良いかもしれません。
その手順はまた今度。

=====
6.Zabbix SIAのリポジトリ登録
=====
Zabbix SIAが、RHEL 7用のyumのリポジトリも公開しているので、それを登録します。

 2.2系用:
 # yum install http://repo.zabbix.com/zabbix/2.2/rhel/7/x86_64/zabbix-release-2.2-1.el7.noarch.rpm

 2.4系用:
 # yum install http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-release-2.4-1.el7.noarch.rpm

=====
7.Zabbix関連のパッケージインストール
=====
Zabbixサーバの本体、ZabbixサーバのWebインターフェース、自分自身を監視するためにZabbixエージェントをインストールします。
ここでインストールするのは、MySQLまたはMariaDB用です。

 # yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent

zabbix-web-japaneseというパッケージは、Webインターフェースで日本語のフォントを利用できるようにするための設定用パッケージです。

=====
8.MariaDBのインストール
=====
CentOS 7から、標準ではMySQLのサーバのパッケージ(mysql-server)が含まれなくなったので、その代わりにMariaDBのサーバ(mariadb-server)をインストールします。

 # yum install mariadb-server

MariaDB用の設定を行っておきます。

 # vi /etc/my.cnf.d/server.cnf

----- ここから -----
[mysqld]
character-set-server = utf8
collation-server     = utf8_general_ci
skip-character-set-client-handshake
innodb_file_per_table
----- ここまで -----

 # systemctl start mariadb
 # systemctl enable mariadb

=====
9.初期データベースの作成
=====
DBMS上にデータベースとそれにアクセスするためのユーザを作成します。

 # mysql -uroot
 mysql> create database zabbix;
 mysql> grant all privileges on zabbix.* to zabbix@localhost identified by 'password' ;
 mysql> flush privileges;
 mysql> exit
 #

テーブルを作成して、初期データも投入します。

 # mysql -uroot zabbix < /usr/share/doc/zabbix-server-mysql-2.2.8/create/schema.sql
 # mysql -uroot zabbix < /usr/share/doc/zabbix-server-mysql-2.2.8/create/images.sql
 # mysql -uroot zabbix < /usr/share/doc/zabbix-server-mysql-2.2.8/create/data.sql

パス名は、バージョンごとにバージョン番号をパスに含んでいますので、インストールしたバージョンに合わせてパスを変更してください。

=====
10.Zabbixの設定ファイルの更新
=====
ここまでの設定のままであれば、最低限の設定としては、DBPasswordを設定するだけです。
DB作成時のパスワードをDBPasswordに設定してください。

 # vi /etc/zabbix/zabbix_server.conf

----- ここから -----
DBPassword=password
----- ここまで -----

=====
11.ZabbixのWebインターフェース用設定修正
=====
Zabbixのパッケージのデフォルトでは、PHPのtimezoneの設定がコメントアウトされているので、設定を有効にしてタイムゾーンが日本ならば、Asia/Tokyoに設定します。

 # vi /etc/httpd/conf.d/zabbix.conf

----- ここから -----
php_value date.timezone Asia/Tokyo
----- ここまで -----

=====
12.各種デーモン起動
=====

 # systemctl start zabbix-server
 # systemctl start zabbix-agent
 # systemctl start httpd

 # systemctl enable zabbix-server
 # systemctl enable zabbix-agent
 # systemctl enable httpd

=====
13.Webインターフェースにアクセス
=====
ブラウザを利用して、「http://IPアドレス/zabbix/」にアクセスします。

最初のアクセス時は、Zabbix設定のウィザードが実行されるので、DBへのアクセス情報などを入力して次へ次へと進めてください。
「3. Configure DB connection」では、UserとPasswordを入力して「Test connection」をクリックして接続確認を行うことを忘れずに。

設定が終わるとログイン画面になります。アカウント「Admin」、パスワード「zabbix」でログインしてください。

=====
14.Zabbix serverの監視を有効に設定
=====
ログイン後、まずは日本語画面に切り替えます。

右上のProfileをクリックして、LanguageとしてJapaneseを選択してSaveボタンを押してください。

次に、「設定」 -> 「ホスト」と選択してホスト一覧を表示させ、表示された「Zabbix server」というホストのステータスの「無効」をクリックして「有効」に変更すれば、Zabbixサーバ自体の監視が開始されます。