Zabbix-Agentとの通信を暗号化してみる. (3.0の機能)
従来のZabbixでは、ServerとAgent間の通信を暗号化できず、平文でデータのやり取りを行っていました。
どうしても暗号化したい場合は、VPNなどを利用していたようですが
Zabbix3.0の新機能として暗号化できるようになりました。
うちもオンプレだけじゃなくてクラウドのサーバーもあるので、ぜひやってみましょう。
といっても公式にドキュメントがあるのでそれ通りにやって頂ければ問題無いかと思います。
https://www.zabbix.com/documentation/3.0/manual/encryption/using_pre_shared_keys
今回はOpenSSLを使います。
1. 下記のコマンドで暗号化キーを生成し、保存します。
$ openssl rand -hex 32 > /etc/zabbix/zabbix_agentd.psk
2. /etc/zabbix/zabbix_agentd.conf の設定を変更します。
TLSConnect=psk TLSAccept=psk TLSPSKFile=/etc/zabbix/zabbix_agentd.psk TLSPSKIdentity=PSK 001
3. Zabbix-Agentの再起動
$ systemctl restart zabbix-agent
4. Zabbix-Serverの管理画面からホストを編集
暗号化キーを登録するホストを編集します
3.0からは暗号化タブがあるのでそれをクリック
ホストへの接続を「PSK」に
PSKアイデンティティを「PSK 001」に
PSKは1. で生成した暗号化キーを貼り付けて 更新を押せばOKです。
zabbix_agentd.confで設定したTLSPSKIdentityが一致してない場合、通信できないのでご注意ください。
5. 通信チェック
ZabbixServerから下記のコマンドを発行すると良いかと思います
$ zabbix_get -s IPADDR -k "agent.ping" --tls-connect=psk \ --tls-psk-identity="PSK 001" --tls-psk-file=/etc/zabbix/zabbix_agentd.psk 1
下記のようにコマンドを発行した際にidentityとpsk-fileを設定しなかった場合はデータ取れないようになってます。
$ zabbix_get -s IPADDR -k "agent.ping" zabbix_get [25871]: Check access restrictions in Zabbix agent configuration
これからも新機能は1つ1つ試していこうと思います。 おしま