はじめに

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」ボタンをクリックします。

 

Zabbix4.0のインストール

 

「Check of pre-requisites」がすべてOKになっていることを確認し、「Next step」ボタンをクリックします。

 

Zabbix4.0のインストール

 

「Configure DB connection」は以下のとおり入力します。

  • Database type:MySQL
  • Database host:localhost
  • Database port:0
  • Database name:zabbix
  • User:zabbix
  • Password:Zabbix2019#

 

「データベースの作成とユーザーの追加」でパスワードを変更した場合は、設定したパスワードを入力して下さい。「Next step」ボタンをクリックします。

 

Zabbix4.0のインストール

 

「Zabbix server details」は以下のとおり入力し「Next step」ボタンをクリックします。

  • Host:localhost
  • Port:10051
  • Name:zabbix

Zabbix4.0のインストール

 

「Pre-Installation summary」の内容を確認し、「Next step」ボタンをクリックします。

 

Zabbix4.0のインストール

 

「Install」画面で、「Finish」ボタンをクリックして完了です。

 

Zabbix4.0のインストール

 

管理コンソールのサインイン

 

ブラウザを起動し、「http://IPアドレス/zabbix」にアクセスします。

 

Username:Admin  大文字、小文字は正しく入力して下さい
Password:zabbix

 

ユーザー名とパスワードを入力し、「Sign in」ボタンをクリックします。

 

Zabbix4.0のインストール

 

問題なくサインインできれば完了です。

 

Zabbix4.0のインストール

シェルスクリプト

上記で説明した環境構築用のシェルスクリプトです。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

トップへ戻る