ZabbixのAgent <=> Server通信で、インターネット越しの場合も監視内容がもれないように暗号化します。
今回はPSK(pre-shared keys)を利用して暗号化します。
環境
- OS X EI Captian (10.11.6)
- Zabbix 3.2.1
Macへのインストールは以下で行っている。なお、TLSをONにするために、configure時に --with-gnutls
を忘れないようにする。
鍵の作成
GnuTLSで鍵を作成します。GnuTLSをインストールしていない場合は、 brew install gnutls
であらかじめいれておきます。
$ cd /var/tmp
$ psktool -u zabbix_agent -p database.psk -s 32
Generating a random key for user 'zabbix_agent'
Key stored to database.psk
するとdatabase.pskに鍵があるのでcatなどで確認します。
zabbix_agent:a3107a610fb59c4a67d1ec8a836f8cca47dacabf8b85deb57a980184e04a67e7
Agentの設定更新
/usr/local/etc/zabbix/zabbix_agentd.psk
に先程の鍵をいれます。ただしユーザ名は必要ないので、鍵の部分だけ格納します。
echo "a3107a610fb59c4a67d1ec8a836f8cca47dacabf8b85deb57a980184e04a67e7" > /usr/local/etc/zabbix/zabbix_agentd.psk
PSKを使い通信するように、設定ファイル /usr/local/etc/zabbix_agentd.conf
を更新します。
TLSConnect=psk
TLSAccept=psk
TLSPSKIdentity=zabbix_agent
TLSPSKFile=/usr/local/etc/zabbix/zabbix_agentd.psk
Serverの設定更新
Web UI上から以下のように設定します。
すべて設定が終わったら、AgentとServerを再起動します。
トラブルシューティング
正しく設定できない場合は、ログをみて、TLSが有効になっているか確認してください。
ログで以下のように TLS support
がNOになっていると、TLSサポートされていないので、 --with-gnutls
をつけて再度Zabbix自体をインストールしてください。
6525:20161024:105752.796 ****** Enabled features ******
6525:20161024:105752.796 SNMP monitoring: YES
6525:20161024:105752.796 IPMI monitoring: NO
6525:20161024:105752.796 Web monitoring: YES
6525:20161024:105752.796 VMware monitoring: NO
6525:20161024:105752.796 SMTP authentication: YES
6525:20161024:105752.796 Jabber notifications: NO
6525:20161024:105752.796 Ez Texting notifications: YES
6525:20161024:105752.796 ODBC: NO
6525:20161024:105752.796 SSH2 support: NO
6525:20161024:105752.796 IPv6 support: NO
6525:20161024:105752.796 TLS support: NO
6525:20161024:105752.796 ******************************
追記: PSKで暗号化するとzabbix_getがそのままでは使えなくなる
回避するために以下のようにする
zabbix_get -s localhost -k proc.num[ruby,,,td-agent] --tls-connect=psk --tls-psk-identity=zabbix_agent --tls-psk-file=/usr/local/etc/zabbix/zabbix_agentd.psk