2024年6月4日 Zabbix 7.0 がリリース されました。約2年4ヶ月ぶりのメジャーバージョンアップです。Zabbix 7.0 は、長期サポート(LTS)リリースのためサポート期間が5年と長いのが特徴です。Zabbix 7.0 では、ブラウザベースのシナリオ監視、Zabbixプロキシの冗長化と負荷分散、多要素認証など魅力的な機能がたくさん追加されています。そこで今回は、Zabbix 7.0 インストール手順と、Zabbix管理画面(フロントエンド)の SSL設定手順をまとめてみました。
Zabbix 7.0 の新機能と変更点
Zabbix 7.0 の新機能や変更点は以下の公式ドキュメントをご参照ください。
What's new in Zabbix 7.0
5 What's new in Zabbix 7.0.0 | Zabbix Documentation 7.0
Zabbix 7.0 の注意すべき変更点
システム要件について大きなところで Zabbix 7.0 で注意すべき変更点が2つあります。
PHP 8.0.0 以上が必須
Zabbix 7.0 では、サポートされる PHPのバージョンが 7.4.0以上 から 8.0.0以上 に変更されました。
Oracle DB は非推奨
Zabbix 7.0 では、バックエンドデータベースとしての Oracle のサポートは非推奨になりました。将来のバージョンではサポートされない予定です。
サーバーOSの選定(RHEL系)
Zabbixサーバーを RHEL(Red Hat Enterprise Linux)系のサーバーOSにインストールする場合は、標準で PHP 8.0 がサポートされている以下の RHEL9系のサーバーOSを選定することをオススメします。
- RHEL 9
- AlmaLinux 9
- Rocky Linux 9
今回は、AlmaLinux 9 に Zabbix 7.0 をインストールした時の手順になります。Zabbix 7.0 では AlmaLinux や Rocky Linux など RHEL系のサーバーOSには、ディストリビューションごとに専用のインストールパッケージが提供されていますので、ご自分の環境に合ったインストールパッケージからインストールしてください。
MySQL 8.0 のインストールと設定
Zabbix 7.0 のインストールの前に、下準備として MySQL 8.0 をインストールして設定しておきましょう。
MySQL 8.0 のインストール
sudo dnf -y install mysql-server
MySQL のバージョンが、Zabbix 7.0 のシステム要件を満たす 8.0.30 以上であることを確認してください。
sudo dnf info mysql-server Installed Packages Name : mysql-server Version : 8.0.36
デフォルト状態では 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 7.0 のインストール
サーバーOSの選定のところでも触れましたが、RHEL系のサーバーOSには、ディストリビューションごとに専用のインストールパッケージが用意されていますので、Zabbixのダウンロードページ でご自分の環境のインストール手順を確認してください。
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*
AlmaLinux 9 用の Zabbix 7.0 のリポジトリを登録します。
Zabbix のインストール
Zabbix のインストールの前に、パッケージのキャッシュを削除しておきます。
Zabbix 7.0 関連のパッケージをインストールします。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
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 用のデータベーススキーマとデータをインポート(時間がかかります)
mysql --default-character-set=utf8mb4 -u zabbix -p 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 Sat 2024-06-29 16:23: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の設定を行います。
2 Best practices for secure Zabbix setup | Zabbix Documentation 7.0
今回の設定手順では、Zabbixサーバーのドメイン名を「zabbix.example.com」として設定していますが、ご自分の環境に合わせて設定してください。
Apache httpd の基本設定
オリジナルの設定ファイルをバックアップ
・設定ファイルを作成します。
sudo vi /etc/httpd/conf/httpd.conf
自己署名の SSLサーバー証明書の作成
今回は自己署名の SSLサーバー証明書で設定を行いますが、可能であれば Let's Encrypt など、正規の認証局が発行した SSLサーバー証明書を使うことを強くオススメします。
関連記事:Let's Encrypt サーバー証明書の取得と自動更新設定メモ
秘密鍵の作成
SSLサーバー証明書の作成(有効期限30年)
-subjオプションで C(Country Name)に2文字の国名コード、CN(Common Name)にサイトのドメイン名(FQDN)を指定してください。
-days 10950 \
-key server.key \
-subj '/C=JP/CN=zabbix.example.com' \
-out server.crt
秘密鍵とSSL証明書を移動
sudo mv -i server.crt /etc/pki/tls/certs/
パーミッションを変更
sudo chmod 600 /etc/pki/tls/certs/server.crt
sudo chown root:root /etc/pki/tls/private/server.key
sudo chown root:root /etc/pki/tls/certs/server.crt
SELinux を有効にしている場合は、秘密鍵とSSL証明書に正しいセキュリティコンテキストをつけておきましょう。(Apache httpd 起動時にエラーが発生することがあります)
sudo restorecon /etc/pki/tls/certs/server.crt
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です)
7.0.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サーバー自身の監視データを閲覧することができます。
以上です。設定お疲れ様でした!
コメント