Zabbix 4.4 インストールメモ(CentOS8)

Zabbix
Zabbix
スポンサーリンク

2019年10月7日、Zabbix 4.4 がリリース されました。およそ半年ぶりのバージョンアップです。Zabbix 4.4 では、Go言語で書かれた新しいエージェント zabbix_agent2(現在はアルファ版)が導入され、メディアタイプ(通知の方法)で Webhook が使えるようになっています。そこで今回は、CentOS8(8.0.1905)に Zabbix 4.4 をインストールする手順をまとめてみました。

Zabbix 4.4 はポイントリリース

Zabbix 4.4 は、ポイントリリースのため、次期バージョン(5.0)がリリースされるまでの期間のみサポートされるのが特徴です。もし長く同じバージョンを使いたい場合は、長期サポート(LTS)の Zabbix 4.0 を利用するか、半年後にリリースを予定している Zabbix 5.0(LTS)を待つのもひとつの手です。

参考資料:Zabbix サポート期間とリリースポリシー | Zabbixオフィシャル日本語サイト

Zabbix 4.4 の新機能

Zabbix 4.4 では、冒頭にも書きましたが zabbix_agent2 の導入によりネットワーク効率が向上し、Webhookの追加では外部のチケットシステムやチャットと連携しやすくなっています。また、マクロの説明の追加やテンプレートリンクUIの変更など、ちょっとした使い勝手の改善も嬉しいところです。

また、新機能ではありませんが テンプレート作成の基準となる Zabbixテンプレートガイドライン が公開されたことにも注目です。テンプレートの命名規則や、非推奨のマクロの注意など(よく使うアイテム名の$1マクロは Zabbix5.0で削除されるそうです)テンプレートを作成する上でとても役立つ内容になっています。

参考資料
What's New in Zabbix 4.4
5 What's new in Zabbix 4.4.0 | Zabbix Documentation 4.4

CentOS8 の下準備

今回は、CentOS8(8.0.1905)に Zabbix 4.4 をインストールします。CentOS8 は標準で PHP7.2 や MySQL8 が使えるようになっています。また、PHP がモジュール版ではなく PHP-FPM に変更になったため PHPの設定ファイルなどの場所が変わっていることに注意してください。(CentOS8 は RHEL8 とほぼ同じOSです)

参考資料:15.1.2. PHP への主な変更点 | RHEL 8 の導入における検討事項

CentOS8 を最小構成でインストールしている場合は、開発ツールなど、基本的なパッケージをインストールしておきましょう。

yum -y groupinstall base
yum -y groupinstall development

タイムゾーンを日本に変更しておきます。

timedatectl set-timezone Asia/Tokyo

SELinux無効設定

・下記を変更
vim /etc/sysconfig/selinux

SELINUX=enforcing
 ↓
SELINUX=disabled

OSを再起動します

shutdown -r now

MySQL 8.0 のインストールと設定

MySQL 8.0 のインストール

yum -y install mysql-devel
yum -y install mysql-server

MySQLログのタイムゾーンが UTC(協定世界時)になっていますので、気になるようでしたら以下の設定を追加しておきましょう。(OSのタイムゾーンが設定されます)

vim /etc/my.cnf.d/mysql-server.cnf

log_timestamps=SYSTEM

Zabbix で MySQL 8.0 を使う場合は、デフォルトの認証プラグインを「mysql_native_password」に変更する必要がありますが、CentOS8 では、以下の設定ファイルで、認証プラグインが「mysql_native_password」に変更されているため設定不要です。

cat /etc/my.cnf.d/mysql-default-authentication-plugin.cnf

(略)
[mysqld]
default_authentication_plugin=mysql_native_password

MySQLの起動と自動起動設定

systemctl start mysqld
systemctl enable mysqld

mysql_secure_installation の実行

初期状態では、rootユーザーがパスワードなしで MySQLに接続できるようになっていますのでパスワードを設定しておきます。

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

mysql_secure_installation --use-default
 
(略)
Please set the password for root here.
 
New password: <新しいパスワード>
 
Re-enter new password: <新しいパスワード>
(略)
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
(不要なユーザーやDBを削除)
All done!

Zabbix 4.4 のインストール

Zabbix 4.4 のリポジトリの登録

rpm -Uvh https://repo.zabbix.com/zabbix/4.4/rhel/8/x86_64/zabbix-release-4.4-1.el8.noarch.rpm
yum clean all

インストール(2019年10月14日時点のバージョンは 4.4.0-1)

yum -y install zabbix-server-mysql zabbix-web-mysql zabbix-web-japanese zabbix-apache-conf
yum -y install zabbix-agent2
yum -y install zabbix-get

Zabbix データベースとユーザーの作成

MySQLに、Zabbix用のデータベース(zabbix)とユーザー(zabbix)を作成します。(MySQL8では GRANT文でユーザーを作成できないため、CREATE USER でユーザーを作成してから、GRANTで権限を設定してください)

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 用のデータベーススキーマとデータをインポート

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

Zabbix サーバーの設定と起動

Zabbix サーバーの設定ファイルに、先ほど作成したMySQLのユーザー(zabbix)のパスワードを登録します。
vim /etc/zabbix/zabbix_server.conf

# DBPassword=

DBPassword=<パスワード>

Zabbix サーバーのタイムゾーンを設定します。Apache httpd の設定ファイルではなく PHP-FPM の設定ファイルを変更します。(タイムゾーン はご自分の地域に合わせて設定してください)

vim /etc/php-fpm.d/zabbix.conf

; php_value[date.timezone] = Europe/Riga
 ↓
php_value[date.timezone] = Asia/Tokyo

Zabbix サーバーの起動と自動起動設定

systemctl start zabbix-server
systemctl enable zabbix-server

Apache httpd の起動と自動起動設定

systemctl start httpd
systemctl enable httpd

PHP-FPM の起動と自動起動設定

systemctl start php-fpm
systemctl enable php-fpm

また、動作確認用に Zabbix エージェントも起動しておきます。

systemctl start zabbix-agent2
systemctl enable zabbix-agent2

Zabbix エージェントの動作確認(Zabbixのバージョンが表示されればOKです)zabbix_agent2 は、現時点では実験的な状態のためアルファバージョンです。

zabbix_get -s 127.0.0.1 -k agent.version
4.4.0alpha1

firewalld設定

HTTP(80/tcp) と HTTPS(443/tcp) を開けておきます。

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

・確認
firewall-cmd --list-all

public (default, active)
interfaces: enp0s3 enp0s8
sources:
services: dhcpv6-client ssh
ports: 443/tcp 80/tcp ←この表示があればOK
(略)

Zabbix の初期設定

ブラウザで下記URLを開き、初期設定を開始します(IPアドレスはご自分の環境に読替えてください)
http://<IPアドレス>/zabbix/

「Next step」をクリックします。

Zabbix初期設定のトップ画面

すべて「OK」であれば「Next step」をクリックします。

Zabbixのシステム要件チェック画面

「Password」欄に、MySQLのユーザー(zabbix)のパスワードを入力し「Next step」をクリックします。

データベースの接続設定画面

そのまま「Next step」をクリックします。

Zabbixサーバーの詳細設定画面

設定した内容の最終確認です。間違えがなければ「Next step」をクリックします。

初期設定内容の確認画面

「Finish」をクリックすれば、初期設定完了です。

初期設定の完了画面

ユーザーパスワードと言語の変更

初期設定が終了すると、Zabbixのログイン画面が表示されますので、下の初期ユーザーとパスワードでログインします。

Username:Admin
Password:zabbix

Zabbixのログイン画面

[Administration]→[Users] をクリックします。

Zabbix管理画面のメニュー

Alias列の「Admin」をクリックします。

Users設定画面 Adminユーザーをクリック

Userタブを選択し、「Change password」をクリックします。

Adminユーザー情報の設定画面

パスワードの入力欄が表示されますので、パスワードを入力し、
「Language」を「Japanese(ja_JP)」に変更したら「Update」をクリックします。

Adminユーザーのパスワードを入力 使用言語の変更

以上でZabbix管理画面が日本語表示になります。

日本語表示になったZabbix管理画面

初期状態でZabbixサーバー自身のホストが登録されていますので、しばらくしてから [監視データ]→[概要] で、グループ「Zabbix Servers」タイプ「データ」を選択すると、Zabbixサーバーの監視データを閲覧することができます。

監視データの表示画面

おわりに

zabbix_agent2 の設定ファイルの最後に、外部プラグインを読み込むための設定サンプルが書かれていました。Go言語で書かれたプラグインが登場するのでしょうか? 今後の展開が楽しみですね、

vim /etc/zabbix/zabbix_agent2.conf

####### PLUGIN-SPECIFIC PARAMETERS #######

### Option: Plugins
#       A plugin can have one or more plugin specific configuration parameters in format:
#     Plugins.<PluginName>.<Parameter1>=<value1>
#     Plugins.<PluginName>.<Parameter2>=<value2>
#
# Mandatory: no
# Range:
# Default:

コメント

  1. 匿名 より:

    参考にさせていただきました。ありがとうございました。

    • あぱーブログ あぱーブログ より:

      >匿名さん
      こちらこそコメントありがとうございました。
      参考になったようで良かったです。

タイトルとURLをコピーしました