Zabbixを本番運用するために、CentOS 7へとインストールします。
簡易的にするために、MySQLもすべて同じEC2上にインストールします。
環境
- CentOS Linux release 7.2.1511 (Core)
- Zabbix: 3.2.1
- MySQL: 5.7.16
各種下準備
タイムゾーンの変更
timedatectl set-timezone Asia/Tokyo
必要パッケージのインストール
yum install -y wget
MySQLのインストール
ここを参考に適宜インストールします。
以下、参考として書いておきます。
cd /var/tmp
wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
yum localinstall mysql57-community-release-el7-9.noarch.rpm
yum install mysql-community-server
# 起動
service mysqld start
# パスワードの確認
grep "temporary password" /var/log/mysqld.log
# 設定
mysql_secure_installation
# ログインの確認
mysql -uroot -p
つぎに文字コードを設定します。正しく設定しないと日本語を含んだ設定をZabbixで行おうとするとエラーになります。
以下を /etc/my.cnf
に追加します。その後、再起動します。
[client]
default-character-set = utf8
[mysqld]
init-connect='SET NAMES utf8'
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
[mysql]
default-character-set = utf8
Zabbixのインストール
パッケージのインストールとデータ作成
# リポジトリのインストール
rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-release-3.2-1.el7.noarch.rpm
# MySQL用にインストール
yum install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
# MySQLにzabbixデータベースを作成しておく
mysql -uroot -p -e 'create database zabbix'
# データベースがutf8で作られているか確認
mysql> SHOW CREATE DATABASE zabbix;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| zabbix | CREATE DATABASE `zabbix` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+-----------------------------------------------------------------+
1 row in set (0.00 sec)
# 初期データの作成
zcat /usr/share/doc/zabbix-server-mysql-3.2.1/create.sql.gz | mysql -uroot -p zabbix
Zabbixの設定
サーバ側のMySQL用設定を編集する。なおパスワードなどは適宜かえる。
# vi /etc/zabbix/zabbix_server.conf
DBHost=localhost
DBName=zabbix
DBUser=root
DBPassword=zabbix
PHP側のタイムゾーンを変える
vi /etc/httpd/conf.d/zabbix.conf
php_value date.timezone "Asia/Tokyo"
デフォルトでは http://example.com/zabbix
でアクセスされるが、 http://example.com/
でアクセスさせるために以下の設定を行う
vi /etc/httpd/conf.d/zabbix.conf
Alias / /usr/share/zabbix/
Zabbixサーバを起動と自動起動設定
systemctl start zabbix-server
systemctl enable zabbix-server
systemctl restart httpd
systemctl enable zabbix-agent.service
Zabbix UI側での設定
http://example.com/ にアクセス後、以下のような画面がでれば正しくインストールできている。
Next stepでつぎに進み、各種設定する。
なお初期アカウントとパスワードはAdmin/zabbixである。
Zabbixエージェントのインストール、起動、自動起動設定
yum install zabbix-agent
systemctl start zabbix-agent
systemctl enable zabbix-agent
上記の後、Zabbixサーバ側のWeb UIの[設定]=>[ホスト]で該当ステータスを有効にする。
しばらくすると、以下のように監視できていることがわかる。
Slack通知の設定
以下を参考に行う。 /usr/lib/zabbix/alertscripts/
にスクリプトを配置する
その他設定
以下はMacでのやり方だが、CentOSでも多少異なるだけで、設定可能。
エラー対処
cannot recreate Zabbix semaphores for IPC keyのエラーがでてZabbixエージェントが起動しない
以下を参考に解決できる。
Zabbix server is not running: the information displayed may not be currentのエラーがWeb UIで出る。
以下を参考に解決できる。
setsebool -P httpd_can_connect_zabbix on
setsebool -P zabbix_can_network on
Lack of free swap space on ... の警告が出る
swapが無いため出るが、必要ない場合はオフにする。
追記: ALBを入れてSSL通信し、HTTPで接続に来た場合はHTTPSにリダイレクトする
以下を想定する
User ==> ALB:443 ==> Zabbix:80
Apacheの設定ファイルに以下を追記すればよい。その後、Apacheを再起動する
vi /etc/httpd/conf.d/zabbix.conf
以下を追記する
# force https
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]
追記: サーバのホスト名を変える場合は以下
hostnamectl set-hostname zabbix.example.com