CentOS7にZabbix2.2をインストールする

自宅の検証環境の監視方法について検討するため、いくつかの監視ツールを試してみようと思う。
というわけで、まずはこちらを参考にOSSの監視ツールとして有名なZabbixから試してみる事にする。

なお、サーバ・エージェント共にCentOS 7を用いるものとし、バージョンはインストールの簡単なZabbix 2.2を対象とする。

1.Zabbixサーバインストール

Zabbix2.2の場合は、以下のコマンドでインストールを実施する。

yum install -y epel-release
yum install -y zabbix22 zabbix22-web zabbix22-agent zabbix22-server mariadb-server mariadb php-mysql

インストール完了後、データベースやhttpd、OS、Zabbix自体の設定を行う。

Firewalld・SELinuxの設定

以下のコマンドで、SELinuxの無効化とFirewalldの設定を行う。

setenforce 0
sed -i.bak "/SELINUX/s/enforcing/disabled/g" /etc/selinux/config
firewall-cmd --get-default-zone
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --add-port=10050/tcp --permanent
firewall-cmd --add-port=10051/tcp --permanent
systemctl restart firewalld

データベースの設定

Zabbixで利用するデータベースの設定をする。
参考ページと同様に、DBにはMariaDBを用いる。
(以下ではrootパスワードなどは未設定のため、別途mysql_secure_installationコマンドを実行することをおすすめする
zabbixユーザのパスワードはpasswordとなっているので、環境に応じて読み替えてもらいたい。)

systemctl enable mariadb
systemctl restart mariadb
mysql -u root -e "CREATE DATABASE zabbix CHARACTER SET utf8 COLLATE utf8_bin;GRANT ALL ON zabbix.* TO 'zabbix'@'localhost' IDENTIFIED BY 'zabbix_password';"
mysql -uzabbix -ppassword zabbix < /usr/share/zabbix-mysql/schema.sql
mysql -uzabbix -ppassword zabbix < /usr/share/zabbix-mysql/images.sql
mysql -uzabbix -ppassword zabbix < /usr/share/zabbix-mysql/data.sql

httpdの設定

/etc/httpd/conf.d/zabbix.confに設定を追記する。

cat << EOF >> /etc/httpd/conf.d/zabbix.conf
php_value max_execution_time 300
php_value post_max_size 16M
php_value max_input_time 300
php_value date.timezone Asia/Tokyo
EOF

Zabbixのパスワード設定

以下のコマンドを実行し、ZabbixのDBパスワードを設定する。

sed -i '/# DBPassword/cDBPassword=zabbix_password' /etc/zabbix/zabbix_server.conf
sed -i '/# DBPassword/cDBPassword=zabbix_password' /etc/zabbix_server.conf

以上が完了したら、Zabbixを起動する。

systemctl restart zabbix-agent
systemctl enable zabbix-agent
systemctl restart zabbix-server-mysql
systemctl enable zabbix-server-mysql
systemctl restart httpd

2.Zabbixサーバ WEB設定

ブラウザを開き、「http://Zabbixサーバ ホスト名orIPアドレス/zabbix/setup.php」にアクセスし、初期設定を行う。

これで、初期設定が完了した。
デフォルトのログインID/PWは「Admin/zabbix」となっている。

3.Zabbixエージェントインストール

さて、Zabbixサーバはインストールできたので、次は監視対象サーバにZabbixエージェントをインストールする。
今回は、yumからインストール出来るZabbix 2.2を利用しているので、エージェントもyumからインストールする。

yum install -y zabbix22-agent

Zabbixエージェントの設定ファイルに、ZabbixサーバのIPアドレスを記述、サービスを開始する。

sed -i -e '/^Server\=/cServer=IPアドレス' -e '/^ServerActive\=/cServerActive=IPアドレス' -e '/Hostname=/cHostname=Zabbix Agent01' /etc/zabbix_agentd.conf
systemctl enable zabbix-agent
systemctl start zabbix-agent

Zabbixエージェント起動後、Firewalldの設定及びSELinuxの無効を行う。

setenforce 0
sed -i.bak "/SELINUX/s/enforcing/disabled/g" /etc/selinux/config
firewall-cmd --add-port=10050/tcp
firewall-cmd --add-port=10051/tcp

最後に、疎通確認としてZabbixサーバからzabbix_getコマンドでエージェントのバージョンを取得出来ることを確認する。

zabbix_get -s エージェントのIPアドレス -k agent.version

値が帰ってきたら、後はWEBコンソール上から監視対象ホストを追加するだけだ(自動で認識されるわけではない)。
少しづつ使ってみて、どれがいいか決めていこうと思う。