CentOS7にZabbix4.2をインストールする


しばらく前にやった手順を、自分用に忘れないようにサルベージします。
記事公開時点でのZabbixの最新版は4.4ですが、手順はほとんど同一だと思います。(未検証)

前提(使用した環境)

  • CentOS 7.6
    • on VMware Workstation Player 14
    • 最小インストール
    • インターネット接続はNAT
    • ホスト名はlocalhost(デフォルト)

導入したもの

  • Zabbix 4.2.1
  • MySQL 8.0.16
  • PHP 7.3.5 (Zabbixの前提パッケージとして自動インストール)

操作

実行はすべてroot

1.リポジトリのインストール

EPEL

bash
yum -y install epel-release
yum -y update

Remi

RHEL(CentOS)向けのPHPを管理しているRedHat社のRemi Collet氏の個人リポジトリ。
比較的新しいPHPを使用する場合に追加する。

bash
yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

#以下は不要かもしれませんが念の為。
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi

MySQL

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

リポジトリの有効化

bash
vi /etc/yum.repos.d/remi.repo
vi /etc/yum.repos.d/remi-php73.repo


#変更箇所
enabled=0
↓
enabled=1

2.SELinuxの無効化

できればSELinuxにポリシーを追加して動かせるようになった方がセキュリティ的に望ましいが、今回は省略。

bash
vi /etc/sysconfig/selinux

#変更箇所
SELINUX=enforcing
↓
SELINUX=disabled

変更を反映するために再起動

bash
reboot

3.MySQLのインストールと設定

インストール

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

PHPを利用するアプリケーションの大半(Zabbix含む)は、MySQLのデフォルトの認証方式caching_sha2_passwordには対応していないので変更する。

bash
vi /etc/my.cnf

#変更箇所
#default-authentication-plugin=mysql_native_password
↓
default-authentication-plugin=mysql_native_password

#MySQLのログはデフォルトでUTC(世界協定時)のタイムスタンプを取るので、気になるなら変更する。
log_timestamps=SYSTEM

MySQLを起動させ、自動起動の設定をして完了。

bash
systemctl start mysqld
systemctl enable mysqld

設定

MySQL root の初期パスワードを確認する。

bash
grep password /var/log/mysqld.log

出力例)
2019-05-09T03:35:13.795380Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: <初期パスワード>

mysql_secure_installation コマンドに「--use-default」オプションを付けて実行する。root ユーザーのパスワード変更や、不要なユーザーやDBの削除が行われる。
ここで設定するパスワードは、8文字以上で英数大文字小文字と記号が含まれていないとポリシー違反で弾かれるので注意。

bash
mysql_secure_installation --use-default
 
(略)
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: <新しいパスワード>
(略)

4.Zabbixのインストール

準備

Zabbixのダウンロードページを開く。
Zabbix ダウンロード


Install Zabbix from Packageを選択する。 ![2019-05-10 12_00_31-ダウンロード.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/314492/dc641b43-d400-5b4b-a730-ee431bbd05c3.png)

プラットフォームをいい感じに選ぶ。


Zabbixのyumリポジトリのurlを獲得する。

# rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
# yum clean all


リポジトリ・Zabbixのインストール

前項で入手したurlを用いる。

bash
rpm -Uvh https://repo.zabbix.com/zabbix/4.2/rhel/7/x86_64/zabbix-release-4.2-1.el7.noarch.rpm
yum clean all

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

MySQLにZabbix用のデータベースとユーザーを作成

bash
mysql -u root -p
 
CREATE DATABASE zabbix character set utf8 collate utf8_bin;
 
CREATE USER zabbix@localhost IDENTIFIED BY '<パスワード>';
GRANT ALL ON zabbix.* TO zabbix@localhost;
quit;

Zabbix用のデータベーススキーマとデータをインポートする。
(バージョンが変わるとディレクトリパスも変わるのでそこは適宜)

bash
cd /usr/share/doc/zabbix-server-mysql-4.2.1/
zcat create.sql.gz | mysql -u zabbix -p zabbix

Zabbixの設定と起動

Zabbixサーバーの設定ファイルに、MySQLのZabbix用ユーザー(zabbix)のパスワードを登録する。
平文での保存になるので、アクセス権を適切に変更しておく。

bash
vi /etc/zabbix/zabbix_server.conf

#変更箇所
# DBPassword=DBPassword=<パスワード>

Zabbix 用の Apache httpd 設定を変更する。(タイムゾーンは自分の地域に合わせて設定する)

bash
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

Zabbixサーバーを起動させ、自動起動を設定する。

bash
systemctl start zabbix-server
systemctl enable zabbix-server

Apache httpdを起動させ、自動起動を設定する。

bash
systemctl start httpd
systemctl enable httpd

動作確認用にZabbixエージェントを起動する。監視対象には自動起動も設定する。

bash
systemctl start zabbix-agent
systemctl enable zabbix-agent

Zabbixエージェントの稼働確認をする。バージョン番号が表示されればOK。

bash
zabbix_get -s 127.0.0.1 -k agent.version

例)
4.2.1

5.firewalldの設定

外部のマシンからコンソールにアクセスするため、HTTP(80/tcp) と HTTPS(443/tcp) を開ける。
Zabbixサーバー、エージェントともに同一のマシン上なので、それらの通信にかかる設定は追加していない。

bash
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --add-port=443/tcp --permanent
firewall-cmd --reload

確認

bash
firewall-cmd --list-all
(略)
ports: 443/tcp 80/tcp
(略)

6.インストールの仕上げ

ブラウザから /zabbix にアクセス、GUIに従ってぽちぽち







不勉強なもので、使い方は他のQiitaやブログ等を参考に…