Zabbix(監視システム)
監視サーバーのZabbixを構築してみた。
環境
- OpenStack Ocata instance
- OS (Ubuntu16.04) cloud-image
インストールするもの
- apache2
- php
- php-cgi
- libapache2-mod-php
- php-common
- php-pear
- php-mbstring
- mariadb-server
- zabbix-server-mysql
- zabbix-agent
- zabbix-frontend-php
- php-mysql
- php-gd php-xml-util
- php-mbstring
- php-bcmath
- php-net-socket
- php-gettext
OpenStack上でインスタンスを上げる
- vcpu : 2
- ram : 4GB
- hdd : 40GB
- image : ubuntu16.04-cloud.qcow2
#cloud-configの設定 (yml形式)
#cloud-config
password: ubuntu
chapasswd: {expire:False}
ssh_pwauth: True
hostname: ubuntu
インストール前準備
~# apt -y update
apache2
インストールと設定
~# apt -y install apache2
~# ~# vi /etc/apache2/conf-enabled/security.conf
(略)
#25行目
25 ServerTokens Prod
サービス再起動
~# systemctl restart apache2
PHP
インストールと確認
~# apt -y install php php-cgi libapache2-mod-php php-common php-pear php-mbstring
~# a2enconf php7.0-cgi
Conf php7.0-cgi already enabled
Apache2 の設定です
~# vi /etc/php/7.0/apache2/php.ini
# 912行目:コメント解除しタイムゾーン設定
date.timezone = "Asia/Tokyo"
サービス再起動
~# systemctl restart apache2
PHPの確認
~# vi /var/www/html/index.php
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align:center;">
<?php
print Date("Y/m/d");
?>
</div>
</body>
</html>
curlでの確認
~# curl --http1.1 localhost/index.php
<html>
<body>
<div style="width: 100%; font-size: 40px; font-weight: bold; text-align:center;">
2017/08/24</div>
</body>
</html>
日付が表示されているので、多分OK
MariaDB
インストールと設定
~# apt -y install mariadb-server
~# vi /etc/mysql/mariadb.conf.d/50-server.cnf
~# sed -i "105s/utf8mb4/utf8/g" /etc/mysql/mariadb.conf.d/50-server.cnf
~# sed -i "106s/collation-server/#collation-server/g" /etc/mysql/mariadb.conf.d/50-server.cnf
~# sed -i "29s/127.0.0.1/0.0.0.0/g" /etc/mysql/mariadb.conf.d/50-server.cnf
~# mysql_secure_installation
Zabbix
インストール
~# apt -y install zabbix-server-mysql zabbix-agent zabbix-frontend-php php-mysql php-gd php-xml-util php-mbstring php-bcmath php-net-socket php-gettext
データベースの設定
~# mysql -u root -p
Enter password:hogehoge
MariaDB [(none)]> create database zabbix;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%' identified by 'zabbix';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges;
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit
Bye
~# cd /usr/share/zabbix-server-mysql
/usr/share/zabbix-server-mysql# gunzip *.sql.gz
/usr/share/zabbix-server-mysql# mysql -u root -p zabbix < schema.sql
Enter password:
/usr/share/zabbix-server-mysql# mysql -u root -p zabbix < images.sql
Enter password:
/usr/share/zabbix-server-mysql# mysql -u root -p zabbix < data.sql
Enter password:
Zabbix サーバーを設定
~# vi /etc/zabbix/zabbix_server.conf
# 82行目:DB名を追記
DBName=zabbix
# 98行目:DBユーザー名を追記
DBUser=zabbix
# 106行目:コメント解除しDBユーザーのパスワードを追記
DBPassword=zabbix
Zabbix再起動
~# systemctl restart zabbix-server
PHP および Apache2 の設定
:~# vi /usr/share/zabbix/include/classes/setup/CFrontendSetup.php
# 348行目に追記
# Zabbix初期セットアップ要件で「php always_populate_raw_post_data」が「off」を要求されるが
# Ubuntu16.04 デフォルトの PHP7 では当該オプションは削除されたため初期セットアップが完了できないことへの対処
$current = ini_get('always_populate_raw_post_data');
$current = -1;
return array(
~# vi /etc/php/7.0/apache2/php.ini
# 368行目:Zabbix 要件に変更
max_execution_time = 300
# 378行目:Zabbix 要件に変更
max_input_time = 300
# 656行目:Zabbix 要件に変更
post_max_size = 16M
~# vi /etc/apache2/conf-available/zabbix-frontend-php.conf
# 最終行に追記:Web 管理画面へのアクセス制限(自身のネットワークを指定)
<Directory /usr/share/zabbix>
Require local
Require ip 192.168.100.0/24
</Directory>
~# chown -R www-data /etc/zabbix
~# a2enconf zabbix-frontend-php
Enabling conf zabbix-frontend-php.
To activate the new configuration, you need to run:
service apache2 reload
~# systemctl restart apache2.service