以前から使用しているZabbixですが、ついサボってエージェントとの通信を暗号化していませんでした。流石に拙いかなと思い立ち、PSK(Pre-Shared Key・事前共有鍵)による暗号化設定をした際のメモです。
準備する情報は次の通りです。
TLSPSKIdentity | zabbix-www.example.com |
事前共有鍵 | Open SSLでランダムな文字列を生成(後述) |
Zabbix Agent側(監視対象)で作業します。先ずはPSKを生成します。
# mkdir -p /etc/zabbix/tls
# openssl rand -hex 32 > /etc/zabbix/tls/zabbix_agentd.psk
# cat /etc/zabbix/tls/zabbix_agentd.psk
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Zabbix Agentの設定を変更します。
# vi /etc/zabbix/zabbix_agentd.conf
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=zabbix-www.example.com
TLSPSKFile=/etc/zabbix/tls/zabbix_agentd.psk
Zabbix ServerではGUIから設定します。「設定」⇒「ホスト」⇒対象のホストを選択し、暗号化タブに設定を入力します。ホストへの接続を「PSK」、ホストからの接続の「暗号化なし」のチェックを外し、「PSK」のチェックを入れ、「PSKアイデンティティ」にTLSPSKIdentityの値、PSKに生成したPSKの値を入れます。「更新」ボタンを押すと同時に、Zabbix Agent側でエージェントを再起動します。

# systemctl restart zabbix-agent
サーバ側のホスト一覧画面で、エージェント暗号化に「PSK」が2つグリーンで表示されれば成功です。失敗すると「Zabbix agent on www.example.com is unreachable for 5 minutes」と怒られます。
以上です。