ここさえ見れば大丈夫! CentOS7へzabbix4.0をインストールする方法


初めに

こんにちは。
システムソリューション部運用管理課の情報処理安全確保支援士見習い兼、万年留守番係の三木田です。
弊社では監視業務でzabbixを利用しております。先日訓練やテスト用のためにCentOS7へzabbix4.0をインストールしました。
インストールの際に他のいろいろなサイトで公開されているインストール手順を確認しましたが、部分的な手順を記載しているサイトが殆どで、ここさえ見れば大丈夫!!他のサイトは見なくていいよ!!的なサイトがなかったのでおまとめ的な意味も込めて作成いたしましたので良ければご参照ください。

前提条件

CentOS7はインストール済みとします(今回はCentOS Linux release 7.6.1810 (Core)を利用する)
zabbixインストールに必要なミドルウェアは以下のバージョンを採用します。

  • apacheは2.4(2.4.6)
  • phpは7.2(7.2.16)
  • mysqlは8.0(8.0.15)

 
 

その1.zabbixと必要なミドルウェアをインストールするためにリポジトリを追加しましょう

今回、zabbix4.0をインストールするためにPHP7.2とMySQL8.0をインストールしたいのですが、OS標準のリポジトリではインストールできないため、EPELとRemi、そしてMySQL8.0のリポジトリをインストールし、最後にzabbix4.0のリポジトリをインストールします。
 

・EPELのリポジトリをインストールします。

# yum -y install epel-release
# yum -y update

 

・Remiのリポジトリをインストールします。

# rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
# rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

 

・MySQL8.0のリポジトリをインストールします。

# rpm -ivh https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm

 

・最後にzabbix4.0のリポジトリをインストールします。

# rpm -ivh https://repo.zabbix.com/zabbix/4.0/rhel/7/x86_64/zabbix-release-4.0-1.el7.noarch.rpm

 
 

その2.zabbixと必要なミドルウェアをインストールしましょう

その1.で必要なリポジトリは全てインストールできましたので、ひとまず必要なものを一通りインストールしましょう
 

・apacheをインストールします。

# yum -y install httpd 

 

・PHPをインストールします。

# yum --enablerepo=remi-safe -y install php72-php php72-php-mysqlnd php72-php-xml php72-php-bcmath php72-php-ldap php72-php-gd#yum --enablerepo=remi-safe -y install php72-php

 

・MySQLをインストールします。

# yum -y install mysql-community-devel
# yum -y install mysql-community-server 

 

・最後にzabbixをインストールします。

# yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese
# yum -y install zabbix-agent
# yum -y install zabbix-get

 
 

その3.インストールしたzabbixとミドルウェアに必要な設定をしましょう。

 

・apacheを設定します。

設定ファイルファイル:/etc/httpd/conf/httpd.conf

【変更】<Directory "/var/www/html">配下のAllowOverride をNoneからAllに変更します。
【追加】最終行に以下の2行を追加します。
 ServerTokens Prod
 KeepAlive On

zabbixをインストールした際に設置されるzabbix用のapache設定ファイルも変更します。
設定ファイル:/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

 

・phpを設定します。

phpinfoのページを作成し、それがcurlコマンドで正常に見えるか確認します。
まず、テスト用のphpinfoのページを作成します。

# echo '<?php phpinfo();' > /var/www/html/info.php  

次にapacheを起動します。

# systemctl start httpd 

最後にcurlコマンドでphpinfoのページからphpのバージョンが確認できるかテストします。
下記の様に最終行に7.2台のバージョン情報が表示されていればOKです。

# curl http://localhost/info.php | grep 'PHP Version' | tail -1
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 88183    0 88183    0     0  11.1M      0 --:--:-- --:--:-- --:--:-- 12.0M
<tr><td class="e">PHP Version </td><td class="v">7.2.16 </td></tr>

上記テストが完了しましたら、セキュリティ以上の理由から削除しておきましょう。

# rm /var/www/html/info.php  

 

・mysqlを設定します。

まずは認証プラグインをMySQL8.0のデフォルトの認証プラグインを変更します。
変更する理由は、MySQL8.0からデフォルトの認証プラグインがSHA-256とキャッシュ機能を利用したより安全で高速化されたcaching_sha2_passwordに変更されましたが、こちらの認証プラグインを利用するにはMySQLに接続する側にも対応している必要があり、zabbixではまだ対応していないため、従来の認証プラグインであるmysql_native_passwordを使う必要があるからです。
 
/etc/my.cnf の default-authentication-plugin=mysql_native_password のコメントアウトを外します。

【変更前】#default-authentication-plugin=mysql_native_password
 ↓
【変更後】default-authentication-plugin=mysql_native_password
 
上記設定が完了しましたら、MySQLのサービスを立ち上げ、mysql_secure_installationを実行し、念のためパスワードの設定と最低限のセキュリティ設定をしましょう。まずはMySQLのサービスを実行します。初回実行時には一部初期設定のプログラムが実行されますのでサービス立ち上げ完了まで少し時間がかかるので注意しましょう。

# systemctl start mysqld

 
まずはMySQLの初回立ち上げ時に自動設定されたMySQLのroot初期パスワードを確認します。
/var/log/mysqld.logに先程のパスワードが記載されておりますので、そちらを確認します。

# grep password /var/log/mysqld.log
2019-03-08T11:40:18.323251Z 5 [Note] [MY-010454] [Server] A temporary password 
is generated for root@localhost: JkhyshMl2C:K

上記結果から初期パスワードは JkhyshMl2C:K です。
 
それではmysql_secure_installationを実行しましょう。なお、このスクリプトを実行するとMySQLのrootパスワード再設定をすることなりますので、それは事前に決めておいてください。パスワードの設定ポリシーですが、8文字以上で英大文字、小文字、数字と記号が含まれていないとポリシー違反で弾かれてしまいますので注意してください。

# mysql_secure_installation --use-default
【中略】
Enter password for user root: <strong>先程調べた初期パスワードを入力</strong>
The existing password for the user account root has expired. Please set a new password.
New password: <strong>事前に決めておいたパスワードを入力</strong>
Re-enter new password:<strong>事前に決めておいたパスワードを再入力</strong>

 
次にzabbixが利用するmysqlにDB(DB名:zabbix)とユーザ(ユーザ名:zabbix)を作成しましょう。
こちらもzabbixユーザに対するパスワードを事前に決めておいてください。(パスワードポリシーは先程と一緒です)

# mysql -u root -p
Enter password: 先程設定したrootユーザのパスワードを入力
【略】
mysql> CREATE DATABASE zabbix character set utf8 collate utf8_bin;
mysql> CREATE USER zabbix@localhost IDENTIFIED BY '事前に決めておいたパスワード';
mysql> GRANT ALL ON zabbix.* TO zabbix@localhost;
mysql> quit
Bye
#

 
上記作業でDBとユーザが出来ましたのでDBの中身(スキーマと初期データ)を作りましょう。
zabbixをパッケージでインストールすると上記スキーマと初期データを作成するスクリプトがありますので
それをDBに流し込むだけで完了します。

# cd /usr/share/doc/zabbix-server-mysql-4*/
# gzip -dc create.sql.gz | mysql -u zabbix -p zabbix

 

・MySQLに設定したzabbixユーザのパスワードをzabbixの設定ファイルに記入します。

設定ファイル:/etc/zabbix/zabbix_server.conf

【変更前】# DBPassword=
【変更後】DBPassword= MySQLのzabbixユーザパスワード

 

・zabbixのサービスを立ち上げましょう。

・zabbixサーバーと動作確認用のzabbixエージェントについて起動しましょう。

# systemctl start zabbix-server
# systemctl start zabbix-agent

 

・zabbixエージェントの動作確認をしておきましょう。

以下の様にzabbixのバージョン(4.0.5)が表示されれば正常です。

# zabbix_get -s 127.0.0.1 -k agent.version
4.0.5

 

・必要なサービスの自動起動を設定しておきましょう。

このままの設定では、何らかの理由でサーバを再起動したときに必要なサービスが自動起動せず、都度サービスを手動起動しないといけないので、自動起動設定をしておきます。

# systemctl enable httpd
# systemctl enable mysqld
# systemctl enable zabbix-server
# systemctl enable zabbix-agent

 
 

その4.zabbixの管理画面をWebブラウザで立ち上げ、最終設定をしましょう。

Web画面からzabbixの初期設定を行います。
http://設定しているサーバのip/zabbix で接続すると用こそ画面が表示されます。
 

・ようこそ画面が表示されましたら、右下の「次のステップ」ボタンを押してください。

zabbix_001
 
 

・前提条件のチェック画面で右の列が全て「OK」であることを確認し、右下の「次のステップ」ボタンを 押してください。

zabbix_002
 

・データベース接続設定の画面で下の「パスワード」の空欄にmysqlで設定したzabbixユーザのパスワードを入力し右下の「次のステップ」ボタンを押してください。

zabbix_003
 

・データベース接続設定の画面で下の「パスワード」の空欄にmysqlで設定したzabbixユーザのパスワードを入力し右下の「次のステップ」ボタンを押してください。

zabbix_004
 

・インストール事前準備概要が表示されましたら、準備完了です。右下の「次のステップ」ボタンを押すと初期設定のインストールが開始されます。

zabbix_005
 

以上でインストール作業は完了です。
 
 

最後に

いかがでしたでしょうか。一言でzabbixのインストールといってもapache,php,mysqlと利用するミドルウェアが多く、事前準備にいろいろとインストールや設定が大変ですが、いったんインストールが完了するとあとはzabbixの管理画面からほぼすべての設定ができますので、大変使いやすい監視システムとなります。次回からはこのzabbixを利用したいろいろな監視や、他システムとの連携について書いていきたいと思います。


この記事をかいた人

About the author