Zabbix設定 · 9 min read · Oct 09, 2025
Rocky Linux 9にZabbixサーバーとクライアントをインストールおよび構成する方法

Zabbixは、ネットワーク、サーバー、仮想マシン、クラウドサービスなどのITインフラストラクチャを監視するための無料でオープンソースの監視ソリューションです。そのコアはCとJavaで書かれており、フロントエンドはPHPで書かれています。フロントエンドは、ネットワークの利用状況、CPU負荷、ディスクスペースなどのメトリクスを追跡および監視し、カスタマイズされたトリガーに基づいて通知を送信するためのWebベースのインターフェースを提供します。
Zabbixはクライアント/サーバーモデルとして動作します。さまざまなオペレーティングシステム用のクライアントまたはエージェントがサーバーに接続してデータを送信します。エージェントのないシステムの場合、Zabbixは、Simple Network Management Protocol (SNMP)やIntelligent Platform Management Interface (IPMI)などの一般的な監視プロトコルを使用するオプションを提供します。
このチュートリアルでは、Rocky Linux 9サーバーにZabbixサーバーとクライアントをインストールする方法を学びます。
前提条件
- Rocky Linux 9を実行している2台のサーバー。1台はサーバーとして機能し、もう1台はサーバーを使用して監視するクライアントです。
- sudo権限を持つ非rootユーザー。
- サーバーを指す完全修飾ドメイン名 (FQDN) 例えば
zabbix.example.com。 - Amazon SESやMailgunなどのメールサービスを持つSMTPアカウント。
- すべてが更新されていること。
$ sudo dnf update - チュートリアルとZabbixサーバーを実行するために必要な基本的なパッケージがいくつか必要です。これらのいくつかはすでにサーバーにインストールされている場合があります。
$ sudo dnf install wget curl nano unzip yum-utils policycoreutils-python-utils -y
ステップ1 - ファイアウォールの構成
最初のステップはファイアウォールを構成することです。Rocky LinuxはFirewalldファイアウォールを使用します。ファイアウォールの状態を確認します。
$ sudo firewall-cmd --state
running
ファイアウォールは異なるゾーンで動作し、パブリックゾーンがデフォルトで使用されます。ファイアウォールでアクティブなすべてのサービスとポートをリストします。
$ sudo firewall-cmd --permanent --list-services
次の出力が表示されるはずです。
cockpit dhcpv6-client ssh
Zabbixサーバーがエージェントと接続するために必要なポート10050と10051を開きます。
$ sudo firewall-cmd --add-port={10051/tcp,10050/tcp} --permanent
HTTPおよびHTTPSポートを許可します。
$ sudo firewall-cmd --permanent --add-service=http
$ sudo firewall-cmd --permanent --add-service=https
ファイアウォールの状態を再確認します。
$ sudo firewall-cmd --permanent --list-all
似たような出力が表示されるはずです。
public
target: default
icmp-block-inversion: no
interfaces:
sources:
services: cockpit dhcpv6-client http https ssh
ports: 10051/tcp 10050/tcp
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
変更を有効にするためにファイアウォールを再読み込みします。
$ sudo firewall-cmd --reload
ステップ2 - SELinuxを許可モードに設定
SELinuxを許可モードで動作するように構成します。このモードでは、SELinuxはプロセスをブロックせず、すべてを監査ログファイルに記録します。後でSELinuxルールを設定するためにこれを使用します。
$ sudo setenforce 0 && sudo sed -i 's/^SELINUX=.*/SELINUX=permissive/g' /etc/selinux/config
SELinuxの状態を確認します。
$ sestatus
SELinux status: enabled
SELinuxfs mount: /sys/fs/selinux
SELinux root directory: /etc/selinux
Loaded policy name: targeted
Current mode: permissive
Mode from config file: permissive
Policy MLS status: enabled
Policy deny_unknown status: allowed
Memory protection checking: actual (secure)
Max kernel policy version: 33
ステップ3 - NginxおよびPHPリポジトリの構成
Zabbixパッケージは自動的にPHPとNginxをインストールします。しかし、古いバージョンを取得します。したがって、プロセスが最新のバージョンをインストールすることを確認する必要があります。
ファイル /etc/yum.repos.d/nginx.repo を編集のために作成して開きます。
$ sudo nano /etc/yum.repos.d/nginx.repo
以下のコードを貼り付けます。
[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Nginxメインラインリポジトリを有効にします。
$ sudo dnf config-manager --enable nginx-mainline
次に、PHPリポジトリを構成する必要があります。
最初のステップはEpelリポジトリを取得することです。
$ sudo dnf install epel-release -y
次に、Remiリポジトリをインストールします。
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-9.rpm
利用可能なPHPストリームを確認します。
$ dnf module list php -y
Name Stream Profiles Summary
php 8.1 common [d], devel, minimal PHP scripting language
Remi's Modular repository for Enterprise Linux 9 - x86_64
Name Stream Profiles Summary
php remi-7.4 common [d], devel, minimal PHP scripting language
php remi-8.0 common [d], devel, minimal PHP scripting language
php remi-8.1 common [d], devel, minimal PHP scripting language
php remi-8.2 common [d], devel, minimal PHP scripting language
php remi-8.3 common [d], devel, minimal PHP scripting language
Hint: [d]efault, [e]nabled, [x]disabled, [i]nstalled
デフォルトバージョンは8.1です。このチュートリアル執筆時点で、ZabbixはPHP 8.2と互換性があります。したがって、RemiのPHP 8.2リポジトリを有効にします。次のZabbixバージョンはPHP 8.3をサポートするため、Zabbixバージョンが6.0.26以上の場合はそれを有効にできます。
$ sudo dnf module reset php -y
$ sudo dnf module enable php:remi-8.2
これでZabbixのインストールに進むことができます。
ステップ4 - Zabbixサーバーのインストール
ZabbixパッケージはデフォルトでEPELリポジトリに提供されています。インストールを進める前に、それらを無効にする必要があります。 /etc/yum.repos.d/epel.repo を編集のために開き、[epel] セクションの下に次の行を追加します。
[epel]
...
excludepkgs=zabbix*
完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Zabbixの最新バージョンは6.4.xですが、LTS(長期サポート)リリースを使用することにします。これは本番環境にとってはるかに安定しています。
Zabbixのリポジトリをインストールします。
$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm
すべてのRPMキャッシュを削除します。
$ sudo dnf clean all
Zabbixサーバー、フロントエンド、およびエージェントをインストールします。私たちは目的のためにPostgreSQLサーバーを使用するため、zabbix-web-pgsqlパッケージが必要です。MySQL/MariaDB/Perconaサーバーを使用している場合は、zabbix-web-mysqlパッケージをインストールする必要があります。
$ sudo dnf install zabbix-server-pgsql zabbix-web-pgsql zabbix-nginx-conf zabbix-sql-scripts zabbix-selinux-policy zabbix-agent
ステップ5 - PostgreSQLのインストールと構成
ZabbixはPostgreSQL 13以上で動作します。Rocky Linux 9にはデフォルトでPostgreSQL 13が付属しています。ただし、チュートリアルではPostgreSQL 16を使用します。
PostgreSQLリポジトリRPMファイルをインストールします。
$ sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
組み込みのPostgreSQLモジュールを無効にします。
$ sudo dnf -qy module disable postgresql
次に、以下のコマンドを使用してPostgreSQLをインストールできます。
$ sudo dnf install -y postgresql16-server postgresql16-contrib
データベースを初期化します。
$ sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
PostgreSQLサービスを有効にします。
$ sudo systemctl enable postgresql-16
PostgreSQLサービスを開始します。
$ sudo systemctl start postgresql-16
PostgreSQLサービスの状態を確認します。
$ sudo systemctl status postgresql-16
? postgresql-16.service - PostgreSQL 16 database server
Loaded: loaded (/usr/lib/systemd/system/postgresql-16.service; enabled; preset: disabled)
Active: active (running) since Thu 2024-01-18 14:54:46 UTC; 10s ago
Docs: https://www.postgresql.org/docs/16/static/
Process: 3407 ExecStartPre=/usr/pgsql-16/bin/postgresql-16-check-db-dir ${PGDATA} (code=exited, status=0/SUCCESS)
Main PID: 3412 (postgres)
Tasks: 7 (limit: 24694)
Memory: 17.4M
CPU: 117ms
CGroup: /system.slice/postgresql-16.service
??3412 /usr/pgsql-16/bin/postgres -D /var/lib/pgsql/16/data/
??3413 "postgres: logger "
??3414 "postgres: checkpointer "
??3415 "postgres: background writer "
??3417 "postgres: walwriter "
??3418 "postgres: autovacuum launcher "
??3419 "postgres: logical replication launcher "
Zabbixデータベースユーザーを作成します。
$ sudo -u postgres createuser --pwprompt zabbix
パスワードの入力を求められます。
Enter password for new role:
Enter it again:
Zabbixデータベースを作成します。
$ sudo -u postgres createdb -O zabbix zabbix
初期スキーマとデータをインポートします。再度パスワードの入力を求められます。
zcat /usr/share/zabbix-sql-scripts/postgresql/server.sql.gz | sudo -u zabbix psql zabbix
このプロセスは数分かかる場合があります。
ファイル /etc/zabbix/zabbix_server.conf を編集のために開きます。
$ sudo nano /etc/zabbix/zabbix_server.conf
変数 DBPassword を見つけ、前のステップで選択したパスワードに設定するために、前のハッシュ (#) を削除してコメントを解除します。
DBPassword=psqlpassword
完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Zabbixサーバーとエージェントサービスを開始および有効にします。
$ sudo systemctl enable zabbix-server zabbix-agent --now
ステップ6 - PHPの構成
ZabbixはPHPとNginxの構成ファイルをインストールしますが、使用する前にいくつかの編集が必要です。
最初に、/etc/php-fpm.d/zabbix.conf を編集のために開きます。
$ sudo nano /etc/php-fpm.d/zabbix.conf
user = apache と group = apache の値を nginx に変更します。
user = nginx
group = nginx
これは、公式リポジトリからNginxを使用しているため、nginxユーザーで実行され、配布版のNginxが実行されるapacheではないためです。
他のPHP関連の値を編集したり、カスタム定義を追加したりすることもできます。完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
PHP-FPMサービスを開始および有効にします。
$ sudo systemctl enable php-fpm --now
ステップ7 - SSLのインストール
SSL証明書を生成するためにCertbotをインストールする必要があります。それにはSnapdパッケージインストーラーを使用します。Rocky LinuxにはSnapdが付属していないため、Snapdインストーラーをインストールします。EPEL(Enterprise Linux用の追加パッケージ)リポジトリが必要ですが、ステップ3で既にインストールしたため、直接進むことができます。
Snapdをインストールします。
$ sudo dnf install -y snapd
Snapサービスを有効にして開始します。
$ sudo systemctl enable snapd --now
Snapコアパッケージをインストールし、Snapdのバージョンが最新であることを確認します。
$ sudo snap install core && sudo snap refresh core
Snapdが機能するために必要なリンクを作成します。
$ sudo ln -s /var/lib/snapd/snap /snap
$ echo 'export PATH=$PATH:/var/lib/snapd/snap/bin' | sudo tee -a /etc/profile.d/snapd.sh
Certbotをインストールします。
$ sudo snap install --classic certbot
次のコマンドを使用して、Certbotコマンドが/usr/binディレクトリで実行できるようにシンボリックリンクを作成します。
$ sudo ln -s /snap/bin/certbot /usr/bin/certbot
Certbotが正しく機能しているか確認します。
$ certbot --version
certbot 2.8.0
次のコマンドを実行してSSL証明書を生成します。
$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email protected] -d zabbix.example.com
上記のコマンドは、サーバーの /etc/letsencrypt/live/zabbix.example.com ディレクトリに証明書をダウンロードします。
Diffie-Hellmanグループ証明書を生成します。
$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096
Certbotの更新スケジューラーサービスを確認します。
$ sudo systemctl list-timers
snap.certbot.renew.service が実行予定のサービスの1つとして表示されます。
NEXT LEFT LAST PASSED UNIT ACTIVATES -------------------------------------------------------------------------------------------------------------------------------------
Sat 2024-01-20 10:04:02 UTC 1min 32s left Sat 2024-01-20 08:52:11 UTC 1h 10min ago dnf-makecache.timer dnf-makecache.service
Sun 2024-01-21 00:00:00 UTC 13h left Sat 2024-01-20 00:00:10 UTC 10h ago logrotate.timer logrotate.service
Sat 2024-01-20 21:13:00 UTC 11h left Sat 2024-01-20 08:19:11 UTC 1h 43min ago snap.certbot.renew.timer snap.certbot.renew.service
プロセスのドライランを実行して、SSL更新が正常に機能しているか確認します。
$ sudo certbot renew --dry-run
エラーが表示されなければ、すべて設定完了です。証明書は自動的に更新されます。
ステップ8 - Nginxの構成
ZabbixはデフォルトのNginx構成ファイルをインストールします。SSL証明書を有効にするためのコードを追加するために編集する必要があります。また、listenポートを変更し、HTTPリンクをHTTPSにリダイレクトするためのコードを追加する必要があります。
ファイル /etc/nginx/conf.d/zabbix.conf を編集のために開きます。
$ sudo nano /etc/nginx/conf.d/zabbix.conf
ファイルが次のようになるようにコードを編集します。
server {
listen 443 ssl;
listen [::]:443 ssl;
http2 on;
root /usr/share/zabbix;
index index.php;
access_log /var/log/nginx/zabbix.access.log;
error_log /var/log/nginx/zabbix.error.log;
ssl_certificate /etc/letsencrypt/live/zabbix.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/zabbix.example.com/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/zabbix.example.com/chain.pem;
ssl_session_timeout 5m;
ssl_session_cache shared:MozSSL:10m;
ssl_session_tickets off;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_prefer_server_ciphers on;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
ssl_stapling on;
ssl_stapling_verify on;
ssl_dhparam /etc/ssl/certs/dhparam.pem;
location = /favicon.ico {
log_not_found off;
}
location / {
try_files $uri $uri/ =404;
}
location /assets {
access_log off;
expires 10d;
}
location ~ \.ht {
deny all;
}
location ~ /(api/|conf[^\.]|include|locale) {
deny all;
return 404;
}
location /vendor {
deny all;
return 404;
}
location ~ [^/\.php(/|$) {
fastcgi_pass unix:/run/php-fpm/zabbix.sock;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_index index.php;
fastcgi_param DOCUMENT_ROOT /usr/share/zabbix;
fastcgi_param SCRIPT_FILENAME /usr/share/zabbix$fastcgi_script_name;
fastcgi_param PATH_TRANSLATED /usr/share/zabbix$fastcgi_script_name;
include fastcgi_params;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param REQUEST_METHOD $request_method;
fastcgi_param CONTENT_TYPE $content_type;
fastcgi_param CONTENT_LENGTH $content_length;
fastcgi_intercept_errors on;
fastcgi_ignore_client_abort off;
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
}
}
# enforce HTTPS
server {
listen 80;
listen [::]:80;
server_name zabbix.example.com;
return 301 https://$host$request_uri;
}
完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
ファイル /etc/nginx/nginx.conf を編集のために開きます。
$ sudo nano /etc/nginx/nginx.conf
include /etc/nginx/conf.d/*.conf; の前に次の行を追加します。
server_names_hash_bucket_size 64;
完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
Nginx構成を確認します。
$ sudo nginx -t
Nginxサービスを開始および有効にします。
$ sudo systemctl enable nginx --now
ステップ9 - Zabbixフロントエンドにアクセス
Zabbixフロントエンドをインストールする前に、Nginxが /etc/zabbix/web ディレクトリにアクセスできるように権限を設定します。
$ sudo chown -R nginx:nginx /etc/zabbix/web
ブラウザでURL https://zabbix.example.com を開くと、次の画面が表示されます。

次のステップボタンをクリックしてZabbixのインストールを完了します。次のページではシステム要件がチェックされ、すべてが満たされているか確認されます。

問題がなければ、次のステップボタンをクリックして進みます。次に、データベースの資格情報を入力するように求められます。データベースTLS暗号化オプションのチェックを外してください。設定していないためです。

次のステップボタンを押して進みます。Zabbixサーバーの名前を入力します。これはオプションですが、設定するとメニューバーやページタイトルに表示されます。

次のステップボタンを押して進みます。すべての設定を確認するように求められます。

すべてが問題なければ、次のステップボタンを押して進みます。インストールが成功したことを知らせるメッセージが表示されます。

完了ボタンをクリックしてプロセスを完了します。ログインページに移動します。

デフォルトのユーザー名はAdminで、パスワードはzabbixです。ログイン情報を入力し、サインインボタンをクリックしてZabbixダッシュボードにアクセスします。

ステップ10 - SELinuxの構成
HTTPデーモンがZabbixに接続できるようにします。
$ sudo setsebool -P httpd_can_connect_zabbix 1
ZabbixがすべてのTCPポートに接続できるようにします。
$ sudo setsebool -P zabbix_can_network on
HAマネージャーエラーを回避するために、daemons_enable_cluster_modeを有効にします。
$ sudo setsebool -P daemons_enable_cluster_mode on
監査ログを使用してカスタムSELinuxポリシーパッケージを作成します。
$ sudo grep "denied.*zabbix" /var/log/audit/audit.log | audit2allow -M zabbix_policy
****************** 重要 *********************
このポリシーパッケージをアクティブにするには、次を実行してください:
semodule -i zabbix_policy.pp
作成したカスタムSELinuxポリシーパッケージをインストールします。
$ sudo semodule -i zabbix_policy.pp
データベースエラーをチェックするコマンドを実行します。
$ sudo sealert -a /var/log/audit/audit.log
多くのルールを適用するように提案されます。
次のコマンドを実行します。
$ sudo ausearch -c 'php-fpm' --raw | audit2allow -M my-phpfpm
$ sudo semodule -X 300 -i my-phpfpm.pp
$ sudo ausearch -c 'zabbix_agentd' --raw | audit2allow -M my-zabbixagentd
$ sudo semodule -X 300 -i my-zabbixagentd.pp
NginxがPostgreSQLにアクセスできるようにするためのポリシーを適用します。
$ sudo setsebool -P httpd_can_network_connect_db 1
外部ホストへの接続を許可するためのポリシーを適用します。
$ sudo setsebool -P httpd_can_network_connect 1
SELinuxを強制モードに設定します。
$ sudo setenforce 1 && sudo sed -i 's/^SELINUX=.*/SELINUX=enforcing/g' /etc/selinux/config
ステップ11 - リモートシステムにZabbixエージェントをインストール
Zabbixエージェントの主な仕事は、システムから情報を収集し、それを中央のZabbixサーバーに送信して分析することです。Rocky Linux 9システムにエージェントをインストールしますが、任意のディストリビューションで実行できます。
ステップ11.1 - リモートシステムのファイアウォールを構成
Zabbixエージェントがサーバーに接続できるようにポート10050を開きます。
$ sudo firewall-cmd --add-port=10050/tcp --permanent --zone=public
$ sudo firewall-cmd --reload
ステップ11.2 - Zabbixエージェントをインストール
ステップ4を繰り返す必要がありますが、最後のインストール文は除きます。つまり、/etc/yum.repos.d/epel.repoファイルを編集し、[epel]セクションに次の行を追加します。
[epel]
...
excludepkgs=zabbix*
次に、Zabbixリポジトリをインストールし、RPMキャッシュをクリーンアップします。
$ sudo rpm -Uvh https://repo.zabbix.com/zabbix/6.0/rhel/9/x86_64/zabbix-release-6.0-4.el9.noarch.rpm
$ sudo dnf clean all
Zabbixエージェントをインストールします。
$ sudo dnf install zabbix-agent
ステップ11.3 Zabbixエージェントを構成
Zabbixは証明書ベースの暗号化をサポートしていますが、このチュートリアルの簡単さのために、サーバーとエージェント間の接続を保護するために事前共有キー(PSK)を使用します。
PSKファイルを生成します。
$ sudo sh -c "openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk"
コピー用のキーを表示します。
$ cat /etc/zabbix/zabbix_agentd.psk
797c84746dfe86f71b0f207785906d2bb886be27149b296d86df6b1ec9de6bbe
このキーをコピーしてください。後で必要になります。
Zabbixエージェントはその構成を /etc/zabbix/zabbix-agentd.conf ファイルに保存します。編集のために開きます。
$ sudo nano /etc/zabbix/zabbix_agentd.conf
次の変数のコメントを解除し、値を以下のように更新します。
Server=
ServerActive=
HostMetadata=ZabbixLinuxClient
Hostname=zabbixclient.example.com
Server と ServerActive 変数の値としてZabbixサーバーのIPアドレスを指定します。HostMetadata 変数は、システムを識別するために使用できる任意の値にできます。また、後で説明するZabbixフロントエンドでの自動登録プロセスにも使用されます。Hostname項目はZabbixエージェントノードのシステムホスト名を指します。
ホスト名を確認するには、次のコマンドを使用します。
$ cat /etc/hostname
次に、サーバーとエージェント間の安全な接続を構成するセクションを見つけます。TLSConnect変数を見つけ、その値をunencryptedからpskに変更します。
...
### Option: TLSConnect
# How the agent should connect to server or proxy. Used for active checks.
# Only one value can be specified:
# unencrypted - connect without encryption
# psk - connect using TLS and a pre-shared key
# cert - connect using TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
# TLSConnect=psk
...
次に、TLSAcceptセクションを見つけ、その値をpskに変更します。
...
### Option: TLSAccept
# What incoming connections to accept.
# Multiple values can be specified, separated by comma:
# unencrypted - accept connections without encryption
# psk - accept connections secured with TLS and a pre-shared key
# cert - accept connections secured with TLS and a certificate
#
# Mandatory: yes, if TLS certificate or PSK parameters are defined (even for 'unencrypted' connection)
# Default:
# TLSAccept=psk
...
次に、TLSPSKIdentityセクションを見つけ、その値をPSK 001に変更します。
...
### Option: TLSPSKIdentity
# Unique, case sensitive string used to identify the pre-shared key.
#
# Mandatory: no
# Default:
# TLSPSKIdentity=PSK 001
...
これは、Zabbixウェブフロントエンドを通じてホストを追加するために使用するPSK IDです。
最後に、TLSPSKFileセクションを見つけ、その値をPSKファイルの場所に変更します。
...
### Option: TLSPSKFile
# Full pathname of a file containing the pre-shared key.
#
# Mandatory: no
# Default:
# TLSPSKFile=/etc/zabbix/zabbix_agentd.psk
...
完了したら、Ctrl + Xを押してファイルを保存し、プロンプトが表示されたらYを入力します。
ステップ11.4 - Zabbixエージェントを開始
Zabbixエージェントサービスを開始および有効にします。
$ sudo systemctl enable zabbix-agent --now
ステップ12 - ZabbixフロントエンドにZabbixクライアントを追加して監視
既存の定義されたホストグループに新しいホストを追加するか、新しいホストグループを作成できます。ホストグループは、監視しているノードの種類を分類するのに役立ちます。新しいホストグループを作成するには、ConfigurationメニューのHost groupsオプションを開きます。
ボックスにグループの名前を追加し、Applyボタンをクリックしてグループを作成します。
新しいホストを作成するには、ConfigurationメニューのHostsオプションをクリックし、右上のCreate hostボタンをクリックします。

Zabbixノードのホスト名を追加します。
TemplatesセクションにLinux by Zabbix agentと入力し、ドロップダウンからテンプレートを選択します。
同様に、GroupsセクションにLinux Serversと入力し、選択します。
Interfacesセクションの下にあるAddボタンをクリックし、Agentを選択します。
次に、ZabbixクライアントノードのIPアドレスを追加します。完了すると、完全なNew hostポップアップは次のようになります。

次に、Encryptionタブに切り替えます。Connections to hostおよびConnections from hostオプションの両方にPSKを選択します。PSK IdentityをPSK 001に設定します。これは、ステップ11.3で変数TLSPSKIdentityのために設定した値です。次に、PSK値を、以前にエージェントマシンで生成したキーとして設定します。

完了したら、Addボタンをクリックしてホストの追加を完了します。
新しいホストがリストに表示され、エージェントがサーバーに接続されていることを示す緑のラベルが表示されるはずです。

ステップ13 - メール通知の構成
Zabbixは、メール、Slack、Telegram、SMSなど、さまざまなタイプの通知をサポートしています。このチュートリアルの目的のために、メール通知を構成します。Zabbixフロントエンドにアクセスし、Administrationをクリックし、左側のメニューでMedia typesをクリックします。プレーンテキストメール用とHTMLメール用の2つのメールタイプが表示されます。

Email (HTML)オプションをクリックすると、次のページが表示されます。

SMTPサーバーの詳細を入力します。このチュートリアルでは、Amazon SESサービスを使用しています。完了したら、Updateボタンをクリックして詳細を保存します。Media typesページに戻ります。ページのTestボタンをクリックしてメール設定をテストします。ポップアップが表示されます。メールアドレスを入力し、Testボタンをクリックしてテストメールを送信します。

成功メッセージがポップアップに表示され、正常に動作したことを通知され、受信トレイに次のメールが届くはずです。ポップアップを閉じるには、Cancelボタンをクリックします。

ステップ14 - 新しいユーザーを作成
デフォルトのZabbixユーザーは、通知を受け取るように構成されていません。これを行うこともできますが、デフォルトのユーザーは使用するには安全ではありません。最良のオプションは、新しいユーザーを作成し、デフォルトのユーザーを無効にすることです。
メニューのAdministration >> Usersセクションにアクセスし、右上のCreate userボタンをクリックして次のページを開きます。

ユーザーの詳細を入力します。ユーザーグループとしてZabbix administratorsを選択します。完了したら、Mediaタブをクリックします。Addボタンをクリックし、タイプとしてEmail (HTML)を選択します。

Send toフィールドにメールアドレスを入力し、Addボタンをクリックしてメールオプションを追加します。次に、Permissionsタブに切り替え、SelectボタンをクリックしてSuper admin roleを追加します。

Addボタンをクリックしてユーザーの追加を完了します。次に、フロントエンドからログアウトし、新しいユーザーとして再度ログインし、ユーザーページに戻ります。Adminユーザーをクリックし、Disabledグループを選択してユーザーを更新します。これにより、デフォルトのユーザーが使用できなくなります。
ステップ15 - テストアラートを送信
デフォルトで、Zabbixはサーバー上の空きスペースの量を追跡します。すべてのディスクマウントを検出し、定期的にチェックを行います。
最初のステップは、Zabbixがすべての管理者に通知を送信できるようにする通知トリガーを有効にすることです。Zabbixにはデフォルトのトリガーがすでに構成されています。それを機能させるために有効にする必要があります。Configuration >> Actions >> Trigger actionsにアクセスし、Disabledの状態をクリックしてEnabledに変更します。

次に、Zabbixノードにログインし、ディスク使用量アラートをトリガーするのに十分な大きさの一時ファイルを作成します。
まず、サーバーの空きスペースを確認します。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 780M 51M 730M 7% /run
/dev/vda2 94G 12G 78G 13% /
/dev/vda1 260M 7.0M 253M 3% /boot/efi
tmpfs 390M 4.0K 390M 1% /run/user/1001
これにより、約78GBの空きスペースがあることが示されます。次に、fallocateコマンドを使用して、ディスクスペースの80%以上を事前に割り当てます。アラートをトリガーするのに十分な大きさです。
$ fallocate -l 74G /tmp/temp.img
再度ディスク使用量を確認します。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 4.0M 0 4.0M 0% /dev
tmpfs 2.0G 0 2.0G 0% /dev/shm
tmpfs 780M 54M 726M 7% /run
/dev/vda2 94G 86G 3.9G 96% /
/dev/vda1 260M 7.0M 253M 3% /boot/efi
tmpfs 390M 4.0K 390M 1% /run/user/1001
Zabbixはディスクスペースに関するアラートをトリガーし、同様のメールアラートを送信します。メールは次のようになります。

ダッシュボードでもアラートを確認できるはずで、数秒以内に表示されるはずです。

完了したら、一時ファイルを削除します。
$ rm -f /tmp/temp.img
問題が解決されたことを通知するメールが届くはずです。

ステップ16 - Linuxノードの自動登録を構成
複数のノードをZabbixサーバーに追加する必要がある場合、プロセスが少し面倒になることがあります。幸いなことに、Zabbixフロントエンドでは自動登録を使用してプロセスを自動化できます。
Actions >> Autoregistration actionsにアクセスし、右上のCreate actionボタンをクリックします。

新しい画面に移動したら、アクションに名前(Auto registration of Linux servers)を付けます。
Conditionsの下にあるAddボタンをクリックして条件を追加し、Host metadataをタイプとして選択し、containsをオペレーターとして、Linuxを値として選択します。

Addをクリックして進み、アクション作成ページは次のようになります。

Operationsタブをクリックし、Add to host groupを操作として選択し、Host groupsとしてLinux serversを選択します。Addボタンをクリックして完了します。

PSK暗号化を使用する場合は、それを構成することもできます。Administration >> General >> Autoregistrationメニューに移動し、両方の暗号化オプションを有効にします。Zabbixサーバーで作成されたPSK IDとPSKキーを入力します。このPSK IDとキーをすべてのノードで使用でき、これらの値を使用して暗号化されます。

これ以降、LinuxサーバーにZabbixエージェントをインストールして構成するたびに、自動的にZabbixフロントエンドに追加されます。
結論
これで、Rocky Linux 9システムにZabbixサーバーをインストールおよび構成する方法に関するチュートリアルが終了します。また、サーバーと接続するためにリモートサーバーにZabbixエージェントをインストールしました。質問がある場合は、以下のコメントに投稿してください。
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。