Zabbix 4.0のインストール

はじめに

Zabbix 4.0のインストールおよび初期設定を行い管理コンソールにログインできるようにするまでを解説していきます。 OSはCentOS7.7(64bit)のインストールが完了しているものとします。

環境

OS:CentOS 7.7.1908

SELinux

設定変更

/etc/selinux/config

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

サーバ再起動

SELinuxの設定を変更した場合は再起動してください。
# reboot

Firewall

サービスの停止

# systemctl stop firewalld.service

サービスの自動起動解除

# systemctl disable firewalld.service

PHP

PHPはバージョン7.2をインストールします。(2019年12月5日付)

リポジトリの登録

# 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

設定変更

/etc/php.ini

# 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をインストールします。(2019年12月5日付)

リポジトリの登録

# 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)を使用できるようにします。

/etc/my.cnf

#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-mysqlZabbixサーバ本体
zabbix-web-mysqlWebサーバ(Webインターフェース)
zabbix-web-japanese日本語環境に必要なパッケージ
zabbix-agentZabbixエージェント

設定変更

/etc/zabbix/zabbix_server.conf

# vi /etc/zabbix/zabbix_server.conf
# DBPassword=

DBPassword=Zabbix2019#

/etc/httpd/conf.d/zabbix.conf

# 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
タイトルとURLをコピーしました