AWS
zabbix

Zabbix2.4をRHEL7へインストール

More than 1 year has passed since last update.

環境

  • OS:RHEL-7.2_HVM_GA-20151112-x86_64-1-Hourly2-GP2(Redhat 7.2)
  • Zabbix 2.4.8
  • AWS RDS MySQL 5.6

 ※RDSは事前に作成しておいてください。

インストール

rootユーザへ

$ sudo su

zabbixのリポジトリを指定

# rpm -ivh http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-2.4.8-1.el7.x86_64.rpm 

http://repo.zabbix.com/zabbix/2.4/rhel/7/x86_64/zabbix-2.4.8-1.el7.x86_64.rpm を取得中
警告: /var/tmp/rpm-tmp.A5Chm8: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 79ea5ed4: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:zabbix-2.4.8-1.el7               ################################# [100%]

IUS/EPELのリポジトリを設定

RHELはデフォルトのリポジトリだとzabbix-web-mysqlに必要なphp-mbstringなどのライブラリが入っていない。そのため、デフォルトのphpをアンインストールし、IUSのリポジトリから新規でphp56を追加する。IUSはepelに依存するので、まずはepelのリポジトリをRPMで追加する。

# rpm -Uvh http://download-i2.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
http://download-i2.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm を取得中
警告: /var/tmp/rpm-tmp.CFcYCI: ヘッダー V3 RSA/SHA256 Signature、鍵 ID 352c64e5: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:epel-release-7-6                 ################################# [100%]

リポジトリをアップデート

# yum update

続いてIUSのリポジトリをRPMで追加

# rpm -ivh http://dl.iuscommunity.org/pub/ius/stable/Redhat/7/x86_64/ius-release-1.0-14.ius.el7.noarch.rpm 
http://dl.iuscommunity.org/pub/ius/stable/Redhat/7/x86_64/ius-release-1.0-14.ius.el7.noarch.rpm を取得中
警告: /var/tmp/rpm-tmp.mKMIqR: ヘッダー V4 DSA/SHA1 Signature、鍵 ID 9cd4953f: NOKEY
準備しています...              ################################# [100%]
更新中 / インストール中...
   1:ius-release-1.0-14.ius.el7       ################################# [100%]

リポジトリをアップデート

#yum update

PHP,Apache,MariaDBのインストール

PHPをインストール

#yum --enablerepo=ius,epel -y install php56u

Apacheをインストール

#yum -y install httpd

MariaDBをインストール

#yum -y install mariadb

Zabbixのインストール

yumでパッケージをインストール

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

apache起動

# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
# systemctl start httpd

zabbix-agentの起動

#systemctl enable zabbix-agent
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-agent.service to /usr/lib/systemd/system/zabbix-agent.service.
#systemctl start zabbix-agent

zabbix-serverの起動

# systemctl enable zabbix-server
Created symlink from /etc/systemd/system/multi-user.target.wants/zabbix-server.service to /usr/lib/systemd/system/zabbix-server.service.
# systemctl start zabbix-server

RDSに接続し、Zabbixの設定を流し込む

RDSを作成済みであることを条件に、下記コマンドでDBサーバにログインできるか確認

# mysql -u zabbix -p -h 作成したRDS MySQLのPublic DNS名

DBを作成

MySQL [(none)]> create database zabbix character set utf8 collate utf8_bin;

DBへZabbixのテーブル作成

zabbixユーザなら全てのホストからアクセスできるように設定

MySQL [(none)]> grant all privileges on zabbix.* to zabbix@"%" identified by 'Password';

一度MySQLからログアウトし、Zabbixの初期設定テーブル作成のsqlがあるディレクトリへ移動

# cd /usr/share/doc/zabbix-server-mysql-2.4.8/create

下記のコマンドを実行。zabbix databaseにsqlでテーブルを作成。

# mysql -u zabbix -p zabbix -h 作成したRDS MySQLのPublic DNS名 < schema.sql
# mysql -u zabbix -p zabbix -h 作成したRDS MySQLのPublic DNS名 < images.sql
# mysql -u zabbix -p zabbix -h 作成したRDS MySQLのPublic DNS名 < data.sql

Zabbixの設定ファイルにDBアクセスを追加

zabbixのconfファイルに接続するDBのパブリックDNS名を登録

# vi /etc/zabbix/zabbix_server.conf 
DBHost=作成したRDS MySQLのPublic DNS名
DBName=zabbix
DBUser=zabbix
DBPassword=Password

PHPの設定ファイル変更

# sed -i -e "s/;date.timezone =/date.timezone = Asia\/Tokyo/g" /etc/php.ini
# sed -i -e "s/;always_populate_raw_post_data/always_populate_raw_post_data/g" /etc/php.ini

SELinuxの無効化

SELinuxが有効状態だとZabbixがDB接続できないため、SELinuxを無効化する

# getenforce
Enforcing
# setenforce Permissive
# getenforce
Permissive

下記ファイルを書き換え、永久無効にする。

# vi /etc/selinux/config
 #SELINUX=enforcing
 SELINUX=disabled

ZabbixとApacheを再起動

systemctl restart zabbix-server.service
systemctl restart httpd.service

Zabbix Webコンソールへアクセス

http://IPアドレス/zabbix/ へアクセス
スクリーンショット 2016-06-16 0.46.41.png

PHPのTimezoneの設定等に問題なければ全てOKとなるはずです。

スクリーンショット 2016-06-16 0.47.39.png

SELinuxの無効化をしていない場合はここでエラーが発生する可能性があります。

まとめ

AWS上でRHEL7を立てた場合、サブスクリプションを購入していなければ、上記のようなリポジトリ追加が必要となりました。AWSではRHELのサポート体制も持ち込みライセンスか、そうでないかでサポートも異なりますので、その点注意の上、インストールを行う必要があります。

今回のZabbixサーバの方は特に冗長化をしておりませんので、次はZabbix側のHA化をしたいと思います。

参考