はじめに
Zabbix 4.0のインストールおよび初期設定を行い管理コンソールにログインできるまでの手順をまとめています。
環境
CentOSのインストールは以下の内容でセットアップされていることとします。
ソフトウェアの選択
ベース環境:インフラストラクチャーサーバー
GUIに関連したツールを全て省いた上でサーバーとして必要なパッケージが含まれている「インフラストラクチャーサーバー」を選択します。
選択した環境のアドオン:開発ツール
開発ツールには「gcc」や「make」などの開発関連のパッケージが含まれておりソースパッケージをコンパイルできるようにします。
OS:CentOS 7.7.1908
PHP:7.2.25
Apache:2.4.6(CentOS 7標準)
MySQL:8.0.18
SSHによるリモート接続で操作することを前提としています。
SELinux
設定変更
# vi /etc/selinux/config
SELINUX=enforcing
↓
SELINUX=disabled
サーバ再起動
SELinuxの設定を変更した場合は再起動してください。
# reboot
Firewall
サービスの停止
# systemctl stop firewalld.service
サービスの自動起動解除
# systemctl disable firewalld.service
PHP
PHPはバージョン7.2をインストールします。
リポジトリの登録
# yum -y install epel-release
# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
インストール
# yum -y install --enablerepo=remi,remi-php72 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql php-ldap php-bcmath
バージョンの確認
# php -v
PHP 7.2.25 (cli) (built: Nov 20 2019 17:44:37) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
設定変更
# vi /etc/php.ini
;date.timezone =
↓
date.timezone = Asia/Tokyo
Apache
CentOS7にはApacheは標準でインストールされているためそのまま利用します。
バージョンの確認
# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Aug 8 2019 11:41:18
サービスの起動
# systemctl start httpd
サービスの自動起動設定
# systemctl enable httpd
MySQL
MySQLはバージョン8.0をインストールします。
リポジトリの登録
# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
インストール
# yum -y install mysql-community-server mysql-community-devel mysql-utilities
バージョン確認
# mysql --version
mysql Ver 8.0.18 for Linux on x86_64 (MySQL Community Server - GPL)
設定変更
MySQL8.0の認証処理はより安全で高速なプラグイン(caching_sha2_password)に変更されましたが、 Zabbixが未対応のため従来のプラグイン(mysql_native_password)を使用できるようにします。
#vi /etc/my.cnf
# default-authentication-plugin=mysql_native_password
↓
default-authentication-plugin=mysql_native_password
サービスの起動
# systemctl start mysqld
サービスの自動起動設定
# systemctl enable mysqld
初期パスワードの変更
MySQLで使用するrootアカウントの初期パスワードを変更します。
# grep password /var/log/mysqld.log
2019-05-20T08:11:23.376439Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 38W?G&l3R#
緑字がroot@localhost ユーザーのパスワードです。
# mysql_secure_installation --use-default
Securing the MySQL server deployment.
Enter password for user root:緑字のパスワードを入力
The existing password for the user account root has expired. Please set a new password.
New password:新しいパスワードを入力
Re-enter new password:新しいパスワードを再入力
新しいパスワードは8文字以上で英数大文字小文字と記号が含まれていることが必須となっています。
Zabbix
リポジトリの登録
# rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
インストール
# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent
パッケージ名 | 内容 |
---|---|
zabbix-server-mysql | Zabbixサーバ本体 |
zabbix-web-mysql | Webサーバ(Webインターフェース) |
zabbix-web-japanese | 日本語環境に必要なパッケージ |
zabbix-agent | Zabbixエージェント |
設定変更
# vi /etc/zabbix/zabbix_server.conf
# DBPassword=
↓
DBPassword=Zabbix2019#
# vi /etc/httpd/conf.d/zabbix.conf
<IfModule mod_php5.c>
↓
<IfModule mod_php7.c>
# php_value date.timezone Europe/Riga
↓
php_value date.timezone Asia/Tokyo
データベースの作成とユーザーの追加
# mysql -u root -p
Enter password:rootの新しいパスワードを入力
mysql> create database zabbix character set utf8 collate utf8_bin;
zabbixデータベースを作成
mysql> CREATE USER zabbix@localhost IDENTIFIED BY 'Zabbix2019#';
アカウントとパスワード(Zabbix2019#)を設定
パスワードは任意に変更して下さい
mysql> GRANT ALL ON zabbix.* TO zabbix@localhost;
zabbix@localhostにzabbixデータベースのすべてのテーブルに対し権限の付与以外のあらゆる権限を付与
mysql> flush privileges;
設定を反映
mysql> quit;
スキーマとデータベースのインポート
# zcat /usr/share/doc/zabbix-server-mysql-4.0.15/create.sql.gz | mysql -u zabbix --password=Zabbix2019# zabbix
4.0.15の部分はインストールしたバージョンによって変わります。
バージョンは以下のコマンドで確認できます。
# find /usr/share/doc/ -name "zabbix-server-mysql*"
/usr/share/doc/zabbix-server-mysql-4.0.15
サービスの起動
# systemctl start zabbix-server
サービスの自動起動設定
# systemctl enable zabbix-server
エージェントの起動
# systemctl start zabbix-agent
エージェントの自動起動設定
# systemctl enable zabbix-agent
サービスの再起動
# systemctl restart httpd
Zabbixサーバの設定
ブラウザを起動し、「http://IPアドレス/zabbix」にアクセスします。
「Next step」ボタンをクリックします。
「Check of pre-requisites」がすべてOKになっていることを確認し、「Next step」ボタンをクリックします。
「Configure DB connection」は以下のとおり入力します。
- Database type:MySQL
- Database host:localhost
- Database port:0
- Database name:zabbix
- User:zabbix
- Password:Zabbix2019#
「データベースの作成とユーザーの追加」でパスワードを変更した場合は、設定したパスワードを入力して下さい。「Next step」ボタンをクリックします。
「Zabbix server details」は以下のとおり入力し「Next step」ボタンをクリックします。
- Host:localhost
- Port:10051
- Name:zabbix
「Pre-Installation summary」の内容を確認し、「Next step」ボタンをクリックします。
「Install」画面で、「Finish」ボタンをクリックして完了です。
管理コンソールのサインイン
ブラウザを起動し、「http://IPアドレス/zabbix」にアクセスします。
Username:Admin 大文字、小文字は正しく入力して下さい
Password:zabbix
ユーザー名とパスワードを入力し、「Sign in」ボタンをクリックします。
問題なくサインインできれば完了です。
シェルスクリプト
上記で説明した環境構築用のシェルスクリプトです。CentOS7.7を新規にインストールして動作を確認済みです。あとKAGOYAのVPS(CentOS7.2)、ConoHaのVPS(CentOS7.7)でも動作確認しています。ConoHaのテンプレートにはZabbixがあるのですがモジュールが古く、日本語に対応していません。
以下をすべてコピーして、「vi zabbix.sh」で保存して下さい。実行時は「chmod 755 zabbix.sh」で権限を与えてから「./zabbix.sh」で実行して下さい。
#!/usr/bin/bash
#----------------------------------------------------
# パスワード情報(テスト用なので任意に変更して下さい)
rpw=Supervisor2019#
dpw=Zabbix2019#
#----------------------------------------------------
#■Firewall
#設定変更
sed -i".org" -e s/"SELINUX=enforcing/SELINUX=disabled/" /etc/selinux/config
#サービスの停止
systemctl stop firewalld.service
#サービスの自動起動解除
systemctl disable firewalld.service
#■PHP
#リポジトリの登録
yum -y install epel-release
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
#インストール
yum -y install --enablerepo=remi,remi-php72 php php-mbstring php-xml php-xmlrpc php-gd php-pdo php-pecl-mcrypt php-mysqlnd php-pecl-mysql php-ldap php-bcmath
#設定変更(/etc/php.ini)
sed -i".org" -e s/";date.timezone =/date.timezone = Asia\/Tokyo/" /etc/php.ini
#■Apache
#サービスの起動
systemctl start httpd
#サービスの自動起動設定
systemctl enable httpd
#■MySQL
#リポジトリの登録
rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
#インストール
yum -y install mysql-community-server mysql-community-devel mysql-utilities
yum -y install expect
#設定変更(/etc/my.cnf)
sed -i".org" -e s/"# default-authentication-plugin=mysql_native_password/default-authentication-plugin=mysql_native_password/" /etc/my.cnf
#サービスの起動
systemctl start mysqld
#サービスの自動起動設定
systemctl enable mysqld
#rootの初期パスワードを変更
idpw=`grep password /var/log/mysqld.log | awk '{print $13}'`
expect -c "
spawn mysql_secure_installation --use-default
expect \"Enter password for user root:\"
send \"${idpw}\n\"
expect \"New password:\"
send \"${rpw}\n\"
expect \"Re-enter new password:\"
send \"${rpw}\n\"
expect "
#■Zabbix
#リポジトリの登録
rpm -Uvh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm
#インストール
yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-agent
#設定変更(/etc/zabbix/zabbix_server.conf)
sed -i".org" -e s/"# DBPassword=/DBPassword=$dpw/" /etc/zabbix/zabbix_server.conf
#設定変更(/etc/httpd/conf.d/zabbix.conf)
sed -i".org" -e s/"IfModule mod_php5.c/IfModule mod_php7.c/" -e s/"# php_value date.timezone Europe\/Riga/php_value date.timezone Asia\/Tokyo/" /etc/httpd/conf.d/zabbix.conf
#■データベースの作成とユーザーの追加
mysql -u root --password=$rpw -e "
create database zabbix character set utf8 collate utf8_bin;
CREATE USER zabbix@localhost IDENTIFIED BY '$dpw';
GRANT ALL ON zabbix.* TO zabbix@localhost;
flush privileges;
"
zver=`find /usr/share/doc/ -name "zabbix-server-mysql*"`
zcat $zver/create.sql.gz | mysql -u zabbix --password=$dpw zabbix
#サービスの起動
systemctl start zabbix-server
#サービスの自動起動設定
systemctl enable zabbix-server
#エージェントの起動
systemctl start zabbix-agent
#エージェントの自動起動設定
systemctl enable zabbix-agent
#サービスの再起動
systemctl restart httpd