2023年3月6日 Zabbix 6.4 がリリース されました。約7ヶ月ぶりのバージョンアップです。Zabbix 6.4 では、新しいメニューレイアウト、LDAP/SAMLユーザーの JIT (ジャストインタイム) ユーザープロビジョニング、Zabbixプロキシのバージョン互換性の改善など、魅力的な機能がたくさん追加されています。そこで今回は、Zabbix 6.4 インストール手順と、Zabbix管理画面(フロントエンド)の SSL設定手順をまとめてみました。
Zabbix 6.4 はポイントリリース
Zabbix 6.4 は、ポイントリリースのため、次バージョンの 7.0 がリリースされるまでの期間のみサポートされるのが特徴です。もし長く同じバージョンを使いたい場合は、長期サポート(LTS)の Zabbix 6.0 を利用することをオススメします。
参考資料:Zabbix サポート期間とリリースポリシー | Zabbixオフィシャル日本語サイト
Zabbix 6.4 の新機能と変更点
Zabbix 6.4 の新機能は以下の公式ドキュメントをご参照ください。
What's new in Zabbix 6.4
5 What's new in Zabbix 6.4.0 | Zabbix Documentation 6.4
Zabbix 6.4 の重大な変更
Zabbix 6.4 には重大な変更が3点あります。
MySQL 8.0.30 以上が必須
Zabbix 6.4 では、MySQL 8.0.30 未満のバージョンはサポートされなくなりました。
libssh 0.9.0 以上が必須
Zabbix 6.4 では、最低限必要な libssh のバージョンが 0.6.0 から 0.9.0 に引き上げられました。
RHEL系のサーバーOSでは、以下のコマンドで libssh のバージョンを確認できます。
sudo dnf info libssh インストール済みパッケージ 名前 : libssh バージョン : 0.9.6 (略)
SLES 15 は SP4 以上が必須
サーバーOSが SLES(SUSE Linux Enterprise Server)15 の場合、サポートされるサービスパックの最小バージョンは SP4 になりました。
サーバーOSの選定(RHEL系)
Zabbixサーバーを RHEL(Red Hat Enterprise Linux)系のサーバーOSにインストールする場合は、標準で PHP 8.0 がサポートされている以下の RHEL9系のサーバーOSを選定することをオススメします。
- RHEL 9
- AlmaLinux OS 9(RHELクローン)
- Rocky Linux 9(RHELクローン)
今回は、AlmaLinux OS 9 に Zabbix 6.4 をインストールした時の手順になりますが、RHEL 9 や Rocky Linux 9 など RHEL系のサーバーOSであれば同様の手順でインストールおよび設定ができると思います。
MySQL 8.0 のインストールと設定
Zabbix 6.4 のインストールの前に、下準備として MySQL 8.0 をインストールして設定しておきましょう。
MySQL 8.0 のインストール
sudo dnf -y install mysql-server
MySQL のバージョンが 8.0.30 以上であることを確認してください。
sudo dnf info mysql-server インストール済みパッケージ 名前 : mysql-server バージョン : 8.0.30
デフォルト状態では MySQLのログの出力時間が UTC(協定世界時)になるため、MySQLの設定ファイルの最後の行に以下を追加します。(気にならなければそのままで構いません)
sudo vi /etc/my.cnf.d/mysql-server.cnf
MySQLの起動と自動起動設定
mysql_secure_installation の実行
初期状態では、rootユーザーがパスワードなしで MySQLに接続できるようになっていますのでパスワードを設定しておきます。
mysql_secure_installation コマンドを実行すると、root ユーザーのパスワードを変更し、不要なユーザーやDBも削除してくれます。パスワードは、8文字以上で英数大文字小文字と記号が含まれていないとポリシー違反で弾かれてしまいますので注意です。パスワードポリシーを変更したい場合は「--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 6.4 のインストール
本題の Zabbix 6.4 のインストールです。
Zabbix リポジトリの登録
RHEL系のサーバーOSでよく利用されている EPELリポジトリが登録されている場合は、EPELリポジトリから Zabbix をインストールしないように Zabbix 関連のパッケージを除外しておきます。[epel] セクションの最後あたりに「excludepkgs=zabbix*」を追加してください。
sudo vi /etc/yum.repos.d/epel.repo
[epel]
(略)
countme=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-$releasever
---(以下を追加)-----------------
excludepkgs=zabbix*
Zabbix 6.4 のリポジトリを登録します。
Zabbix のインストール
Zabbix のインストールの前に、パッケージのキャッシュを削除しておきます。
Zabbix 6.4 関連のパッケージをインストールします。Zabbix管理画面を日本語で使う場合は zabbix-web-japanese もインストールします。動作確認用に zabbix-get もインストールしておきましょう。
sudo dnf -y install zabbix-sql-scripts
sudo dnf -y install zabbix-selinux-policy
sudo dnf -y install zabbix-agent
sudo dnf -y install zabbix-web-japanese
sudo dnf -y install zabbix-get
参考資料:Download and install Zabbix
Zabbix データベースとユーザーの作成
MySQLに、Zabbix用のデータベース「zabbix」と、ユーザー「zabbix」を作成します。
Enter password: ←(MySQLのユーザー「root」のパスワードを入力)
create database zabbix character set utf8mb4 collate utf8mb4_bin;
create user zabbix@localhost identified by '<パスワード>';
grant all on zabbix.* to zabbix@localhost;
次のインポートの下準備として、SUPER権限が無くても関数を作成できるように「log_bin_trust_function_creators = 1」を設定してから MySQLとの接続を終了します。
quit;
Zabbix 用のデータベーススキーマとデータをインポート(時間がかかります)
Enter password: ←(MySQLのユーザー「zabbix」のパスワードを入力)
インポートが終わったら「log_bin_trust_function_creators = 0」に戻しておきましょう。
Enter password: ←(MySQLのユーザー「root」のパスワードを入力)
set global log_bin_trust_function_creators = 0;
quit;
SELinux の設定
SELinux を有効にしている場合は、以下のコマンドを実行してポリシーを追加します。
sudo setsebool -P httpd_can_network_connect_db on
Zabbix サーバーの設定と起動
Zabbix サーバーの設定ファイルに、先ほど作成した MySQLのユーザー「zabbix」のパスワードを登録します。
sudo vi /etc/zabbix/zabbix_server.conf
↓
DBPassword=<パスワード>
Zabbix サーバーの自動起動設定
Zabbix サーバーの起動
Zabbix サーバーが起動していることを確認します。
sudo systemctl status zabbix-server ● zabbix-server.service - Zabbix Server Loaded: loaded (/usr/lib/systemd/system/zabbix-server.service; enabled; vendor preset: disabled) Active: active (running) since Thu 2023-03-16 06:26:00 JST; 4s ago Process: 3444 ExecStart=/usr/sbin/zabbix_server -c $CONFFILE (code=exited, status=0/SUCCESS) Main PID: 3446 (zabbix_server) (略)
Apache httpd(SSL)の設定と起動
Zabbix 公式ドキュメントのベストプラクティスでは、Zabbixの管理画面(フロントエンドと呼ばれます)の SSL設定が推奨されていますので、Apache httpd および SSLの設定を行います。
Best practices for secure Zabbix setup | Zabbix Documentation 6.4
今回の設定手順では、Zabbixサーバーのドメイン名を「zabbix.example.com」として設定していますが、ご自分の環境に合わせて設定してください。
Apache httpd の基本設定
オリジナルの設定ファイルをバックアップ
・設定ファイルを作成します。
sudo vi /etc/httpd/conf/httpd.conf
自己署名の SSLサーバー証明書の作成
今回は自己署名の SSLサーバー証明書で設定を行いますが、可能であれば Let's Encrypt など、正規の認証局が発行した SSLサーバー証明書を使うことをオススメします。
関連記事:Let's Encrypt サーバー証明書の取得と自動更新設定メモ
秘密鍵の作成
CSR(証明書署名要求)の作成(入力するのは Country Name と Common Name の2箇所だけです)
Country Name (2 letter code) [XX]:JP
State or Province Name (full name) []:<空エンター>
Locality Name (eg, city) [Default City]:<空エンター>
Organization Name (eg, company) [Default Company Ltd]:<空エンター>
Organizational Unit Name (eg, section) []:<空エンター>
Common Name (eg, your name or your server's hostname) []:zabbix.example.com
Email Address []:<空エンター>
Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:<空エンター>
An optional company name []:<空エンター>
SSLサーバー証明書の作成(有効期限30年)
秘密鍵とSSLサーバー証明書を移動
sudo mv -i server.crt /etc/pki/tls/certs/
パーミッションを変更
sudo chmod 600 /etc/pki/tls/certs/server.crt
SELinux を有効にしている場合は、秘密鍵とSSLサーバー証明書に正しいセキュリティコンテキストをつけておきましょう。(Apache httpd 起動時にエラーが発生することがあります)
restorecon /etc/pki/tls/certs/server.crt
CSRファイルを削除
SSL の設定
Apache httpd の SSLモジュールをインストールします。
オリジナルのSSL設定ファイルをバックアッップします
SSL設定ファイルを作成します。
sudo vi /etc/httpd/conf.d/ssl.conf
Apache httpd の自動起動を設定し起動ます。
インデックスファイルの配置
今回の設定手順だとドキュメントルート直下にインデックスファイルが配置されないため、テストページが表示されてしまいます。必須ではありませんがインデックスファイルを配置しておくことをオススメします。
例えば下のようなインデックスファイルを配置しておけば、https://zabbix.example.com/ → https://zabbix.example.com/zabbix/ のようにリダイレクトしてくれるので便利です。
sudo vi /var/www/html/index.php
header('Location: /zabbix/');
PHP の設定と起動
・PHPの設定
sudo vi /etc/php.ini
expose_php = On ↓ expose_php = Off ;date.timezone = ↓ date.timezone = 'Asia/Tokyo'
php-fpm を自動起動を設定し起動します。
Zabbix エージェントの起動と動作確認
動作確認用に Zabbix エージェントも起動しておきます。
Zabbix エージェントの動作確認(Zabbixのバージョンが表示されればOKです)
6.4.0
firewalld設定
HTTP(80/tcp) と HTTPS(443/tcp) を開けておきます。
sudo firewall-cmd --add-port=443/tcp --permanent
sudo firewall-cmd --reload
・確認
sudo firewall-cmd --list-all
interfaces: enp0s3 enp0s8
sources:
services: dhcpv6-client ssh
ports: 443/tcp 80/tcp ←この表示があればOK
(略)
Zabbix の初期設定
ブラウザで下記URLを開き、初期設定を開始します(ドメイン名「zabbix.example.com」はご自分の環境に読替えてください)
https://zabbix.example.com/zabbix/
今回は日本語で設定しますので Default language「Japanese(ja_JP)」を選択して(選択すると以下の表示に変わります)「次のステップ」をクリックします。
前提条件のチェックがすべて「OK」であることを確認して「次のステップ」をクリックします。
「パスワード」欄に、MySQLのユーザー(zabbix)のパスワードを入力し「次のステップ」をクリックします。
適当なサーバー名を入力、デフォルトタイムゾーン「Asia/Tokyo」を選択し、お好みのデフォルトのテーマを選択したら「次のステップ」をクリックします。
設定した内容の最終確認です。間違えがなければ「次のステップ」をクリックします。
「終了」をクリックすれば、初期設定完了です。
ユーザーパスワードの変更
初期設定が終了すると、Zabbixのログイン画面が表示されますので、下の初期ユーザーとパスワードでログインします。
ユーザー名:Admin
パスワード:zabbix
メニュー下部の [ユーザー設定]→[プロファイル] をクリックします。
「パスワード変更」をクリックします。
パスワードの入力欄が表示されますので、現在のパスワード(zabbix)と新しいパスワードを入力し、「更新」をクリックすればユーザーパスワードの変更完了です。(一度ログアウトされますので、新しいパスワードでログインし直してください)
初期状態でZabbixサーバー自身のホストが登録されていますので、しばらくしてから [監視データ]→[最新データ] をクリックすると、Zabbixサーバー自身の監視データを閲覧することができます。
以上です。設定お疲れ様でした!
コメント