ZabbixエージェントとZabbixサーバー間の通信をPSKで暗号化する手順
ZabbixエージェントとZabbixサーバーやZabbixプロキシ間の通信を暗号化するための手順です。
PSK(Pre Shared Key)を利用した暗号化手順を、WindowsとLinuxの場合に分けて確認しています。
PSKの文字列生成、ホストおよびconfファイルでの暗号化通信有効化、設定後のステータス確認、zabbix_getコマンドを利用した確認までの手順を紹介しています。
※本記事では、Pre Shared KeyをPSKとして表記しています。
※Zabbixのバージョンは、7.0LTS(7.0.17)を利用しています。
※WindowsはWindows Server 2025を利用しています。
※LinuxはRocky Linuxは、Rocky Linux release 9.5(Blue Onyx)を利用しています。
※Zabbix Agent 2で手順を確認していますが、Zabbix Agentも同様の手順でインストールできます。
※手順の確認はrootユーザーで実施しています。環境に合わせてsudoコマンド利用してください。
Zabbixの暗号化通信の概要
Zabbixコンポーネント間の通信暗号化方法には2種類ある
Zabbixサーバー、Zabbixプロキシ、Zabbixエージェント間の通信を暗号化することができます。
暗号化方法には、PSK(Pre Shared Key)を利用する方法と、証明書を利用する方法があります。
PSKを利用した暗号化は、生成した事前共有キーの文字列を設定するだけで通信の認証と暗号化が可能なため、簡単に設定できます。
通信の認証や暗号化の強度は高くしたい場合は、証明書を利用します。
一方で、証明書を利用した場合は証明書の管理が必要となるため、運用の手間が増します。
※暗号化していない場合と比較して、通信にかかわる処理の負荷が増えます。
ホストやプロキシ単位で暗号化通信の設定が可能
ホストやプロキシ単位で通信の暗号化を設定できます。
ZabbixサーバーとZabbixプロキシ間のみ暗号化し、ZabbixエージェントとZabbixプロキシ間は平文通信とする、といった一部の通信のみ暗号化する設定も可能です。
ホストやプロキシごとに暗号化方式やPSKの内容を個別に設定することもできます。
Webインタフェースとconfファイルそれぞれ暗号化設定が必要
通信を暗号化するためには、Webインタフェースとconfファイルで設定が必要です。
Webインタフェースで、ホストやプロキシの設定を開いて暗号化の有無や、暗号化方式を選択します。
アクティブチェック、パッシブチェックそれぞれを設定します。
confファイルは、暗号化方式などによって設定箇所が異なります。
Zabbixエージェントとの通信を暗号化する場合は、以下の設定が必要になります。
-
- TLSConnect
- アクティブチェック時に利用
- サーバーやプロキシへ接続する際の接続方式を指定
- デフォルト値はunencrypted(暗号化なしで接続)
- TLSAccept
- パッシブチェック時に利用
- zabbix_getの場合にも利用
- サーバーやプロキシから接続される際の接続方式を指定
- デフォルト値はunencrypted(暗号化なしで接続)
- TLSPSKIdentity
- PSKアイデンティティを記載
- ZabbixがPSK管理するための名前
- 暗号化されずに通信される
- TLSPSKFile
- PSKを記載したファイルのパスを指定
- TLSConnect
※Zabbixプロキシの場合は、アクティブプロキシかパッシブプロキシかどちらか1つになります。
PSKのサイズや利用できる文字列
PSKで設定できる文字数には制限があります。
-
- PSKアイデンティティ
- 128文字(UTF-8)
- PSK
- 最小 : 16進数32桁(128-bit )
- 最大 : 16進数512桁( 2048-bit)
- PSKアイデンティティ
WindowsでZabbixエージェントとの通信をPSKで暗号化するための手順
公式サイトの手順を参考に、設定を進めています。
PSKとして利用する文字列を生成
PSKとして使用する文字列を生成します。
PSKとして利用する文字列を生成 | |
|
※1つの発行例です。
※PSKファイルを、Zabbixエージェントと同じディレクトリに配置しています。
zabbix_agent2.confで暗号化通信を有効化
テキストエディタなどでzabbix_agent2.confを編集します。
今回は、パッシブチェックおよびアクティブチェックの両方で通信を暗号化しています。
PSKアイデンティティ名はPSK001としています。
※標準では、C:\Program Files\Zabbix Agent 2\配下にzabbix_agent2.confが作成されています。
zabbix_agent2.confを編集 | |
|
※該当する編集箇所のみを抜粋しています。行番号はZabbixのバージョンや他の設定内容によって異なる場合があります。
Zabbixエージェントを再起動
Zabbixエージェントを再起動して、zabbix_agent2.confの設定内容を反映させます。
Zabbixエージェントを再起動 | |
|
※ZabbixエージェントへのPATHを通した状態で、コマンドを実行しています。
※WindowsのサービスメニューからZabbixエージェントのサービスを再起動することでも、設定変更内容が反映されます。
ホストの設定画面で暗号化通信を有効化
ホストの暗号化タブで設定を行います。
ホストへの接続はパッシブチェック、ホストからの接続はアクティブチェックに該当します。
今回は、両方ともPSKによる暗号化通信を設定しています。
エージェント暗号化の状態の詳細については、公式サイトの記載を確認してください。接続の暗号化管理に記載があります。
zabbix_getコマンドで確認
zabbix_getコマンドで通信の暗号化設定の状態を確認します。
※zabbix_getコマンドで確認できるのは、パッシブチェックの状態のみです。
Zabbix Agentのコマンドを確認 | |
|
※ZabbixエージェントへのPATHを通した状態で、コマンドを実行しています。
—広告—
LinuxでZabbixエージェントとの通信をPSKで暗号化するための手順
公式サイトの手順を参考に、設定を進めています。
PSKとして利用する文字列を生成
PSKとして使用する文字列を生成します。
生成したPSKファイルの権限設定も行います。
※今回は、OpenSSLのコマンドを利用して生成しています。
PSKとして利用する文字列を生成 | |
|
zabbix_agent2.confで暗号化通信を有効化
zabbix_agent2.confを編集して暗号化通信を有効化します。
今回は、パッシブチェックおよびアクティブチェックの両方で通信を暗号化しています。
PSKアイデンティティ名はPSK002としています。
※今回の環境では、/etc/zabbix/配下にzabbix_agent2.confが作成されています。
zabbix_agent2.confを設定 | |
|
ホストの設定画面で暗号化通信を有効化
ホストの暗号化タブで設定を行います。
ホストへの接続はパッシブチェック、ホストからの接続はアクティブチェックに該当します。
今回は、両方ともPSKによる暗号化通信を設定しています。
ホストの設定画面で暗号化通信の設定 | |
ホスト設定の暗号化タブで設定を行います。 デフォルトでは暗号なしが選択されているので、PSKを選択します。 PSKアイデンティティ名と、PSKの値を入力し更新します。 |
![]() |
![]() |
エージェントの状態やエージェント暗号化の表示を確認
エージェントの状態とエージェント暗号化の表示を確認します。
エージェント暗号化の表示は、右側がホストへの接続(パッシブチェック)、左側がホストからの接続(アクティブチェック)の状態を表しています。
ステータスを確認 | |
エージェント暗号化でPSKが選択されていることが確認できます。 エージェントの状態を確認します。 アクティブチェック、パッシブチェックともに利用可能になっていることが確認できます。 |
![]() |
zabbix_getコマンドで確認
zabbix_getコマンドで通信の暗号化設定の状態を確認します。
ローカルホストからアクセスし確認するため、zabbix_agent2.confのServer設定で127.0.0.1からのアクセスが許可されていない場合は、エラーが表示されます。
※zabbix_getコマンドで確認できるのは、パッシブチェックの状態のみです。
zabbix_getコマンドで確認 | |
|
※zabbix_getコマンドをインストールした状態で確認しています。
設定ミスにより利用不可となった場合の例
ZabbixサーバーとZabbix Agent間のTLS(PSK)通信の確立に失敗している場合は、ステータスが利用不可として表示されます。
-
- 主な確認ポイント
- PSKの値が一致しているか
- PSKアイデンティティ名が一致しているか?
- PSKファイルの読み込み権限やパスが正しいか?
- 主な確認ポイント
※エラー例は、PSKファイルのパスを間違っていた場合です。
—広告—
最後に
今回は、ZabbixエージェントとZabbixサーバーやZabbixプロキシ間の通信を暗号化する手順について確認しました。
PSK(Pre Shared Key)を利用した暗号化の設定手順について、PSKの文字列生成、Webインタフェースおよびconfファイルでの暗号化設定内容、設定後のステータス確認、zabbix_getコマンドを利用したテストまでを確認しました。
簡単に設定できて、とても便利だと感じました。
引き続き、いろいろ試してみたいと思います。
Zabbixエージェントのインストール手順については、こちらで確認しています。
Zabbixでホストを追加登録する場合の手順については、こちらで紹介しています。
Zabbixサーバーの構築手順については、こちらで紹介しています。
ZabbixサーバーのHAクラスター構成手順については、こちらで紹介しています。
Zabbix プロキシの構築手順については、こちらで紹介しています。
Zabbix プロキシグループの設定やHA構成の手順も確認しています。
Zabbixのアクションのメール送信でSendGridを使う方法は、こちらで紹介しています。
Zabbixを利用したAzureのリソース監視設定方法ついては、こちらで紹介しています。