Zabbix版本从3.0之后,开始支持Zabbix server, Zabbix proxy, Zabbix agent, zabbix_sender and zabbix_get之间的通信加密,加密方式有预共享密钥(PSK)和证书加密,加密配置是可选项,一些proxies和agents可以使用证书认证加密通信,另外一些可以使用PSK加密通信,而剩余的可以不使用加密进行通信,需要注意的是如果希望使用加密通信,编译的时候必须加入 with-openssl参数。

1.生成并添加PSK共享密钥

使用命令openssl rand -hex 32生产一串密钥,配置步骤如下:

[root@zabbix scripts]# openssl rand -hex 32ef52cbe2d1a35e6bb3c43b22bd4f1a1d7bf24d1ccb7c47f6a602425970da5432# 将生成的密钥写入该文件vim /data/zabbix/etc/psk/zabbix.pskvim /data/zabbix/etc/zabbix_agentd.conf#加入TLSConnect=pskTLSAccept=pskTLSPSKFile=/data/zabbix/etc/psk/zabbix.pskTLSPSKIdentity=PSK ID #配置完成后重启zabbix_agent进程

2. 在zabbix web gui中添加

3.测试命令

zabbix_get -s 127.0.0.1 -k "system.cpu.load[all,avg1]" --tls-connect=psk --tls-psk-identity="PSK ID" --tls-psk-file=/data/zabbix/etc/psk/zabbix.psk[root@10.28.233.188 ~]$/data/zabbix/bin/zabbix_get -s 10.81.47.129 -p 9528 -k "tps" --tls-connect psk --tls-psk-identity="LianYu" --tls-psk-file /data/zabbix/etc/psk/zabbix.psk 452.05

4..zabbix_get用法

# 只能在zabbix server端使用此命令    zabbix_get -s host-name-or-IP [ -p port-number ] [ -I IP-address ] -k item-key     zabbix_get -s host-name-or-IP [ -p port-number ] [ -I IP -address ] --tls-connect cert --tls-ca-file CA-file [ --tls-crl-file CRL-file ] [ --tls-agent-cert-issuer cert-issuer ] [ --tls- agent-cert-subject cert-subject ] --tls-cert-file cert-file --tls-key-file key-file -k item-key     zabbix_get -s host-name-or-IP [ -p port-number ] [ -I IP-address ] --tls-connect psk --tls-psk-identity PSK-identity --tls-psk-file PSK-file -k item-key     zabbix_get -h     zabbix_get -V    OPTIONS    -s, - host host-name-or-IP      指定主机的主机名或IP地址。    -p, - port port-number      指定主机上运行的代理的端口号。默认值为10050。    -I, - source-address IP-address      指定源IP地址。    -k,--key 项键      指定要检索值的项的键。    --tls-connect 值    如何连接到代理。价值观:          加密方式             无加密连接(默认)          PSK          使用TLS和预共享密钥进行连接          cert          使用TLS和证书连接    --tls-ca-file CA文件    包含用于对等证书验证的顶级CA(s)证书的文件的完整路径名。    --tls-crl-file CRL文件    包含已吊销证书的文件的完整路径名。    --tls-agent-cert-issuer颁发者 证书    允许的代理证书颁发者。    --tls-agent-cert-subject cert-subject    允许的代理证书主题。    --tls-cert-file 证书文件    包含证书或证书链的文件的完整路径名。    --tls-key-file 密钥文件    包含私钥的文件的完整路径名。    --tls-psk-identity PSK-identity    PSK身份字符串。    --tls-psk-file PSK文件    包含预共享密钥的文件的完整路径名。    -h, - help    显示此帮助并退出。    -V, - version    输出版本信息并退出。[/code]

 示例:

1 zabbix_get -s 127.0.0.1 -p 10050 -k“system.cpu.load [all,avg1]” 2 zabbix_get -s 127.0.0.1 -p 10050 -k“system.cpu.load [all,avg1]” - tls- connect cert --tls-ca-file / home / zabbix / zabbix_ca_file --tls-agent-cert-issuer“CN =签名CA,OU = IT操作,O =示例公司,DC =示例,DC = com” - tls-agent-cert-subject“CN = server1,OU = IT operations,O = Example Corp,DC = example,DC = com”--tls-cert-file /home/zabbix/zabbix_get.crt --tls-key -file /home/zabbix/zabbix_get.key 3 zabbix_get -s 127.0.0.1 -p 10050 -k“system.cpu.load [all,avg1]” - tls-connect psk --tls-psk-identity“PSK ID Zabbix agentd“--tls-psk-file /home/zabbix/zabbix_agentd.psk