0x01 前言

先来假设一种情况:你管理着一个或多个私有云,其中的服务器需要用zabbix进行监控,可是云中的服务器都无法直接连接公网,那怎样才能将数据汇总到一个zabbix server中呢?

这就需要用到zabbix的代理服务器–>zabbix proxy。

0x02 架构

先放一张图片:

从图中可以看到,只需要在私有云中配置一台zabbix proxy服务器,即可代替zabbix server从该云中监控服务器,zabbix proxy再主动往zabbix server发送是收集到的数据。proxy和server的中间还可以增加一层防火墙增强安全性,两者的链路还可以使用TLS进行加密。

在此文章中不涉及TLS的内容,TLS的相关内容将在下一篇文章中进行说明。

如果有多个私有云,只需要增加proxy即可。甚至有多个位于不同地域的数据中心也可以采用这种方式汇总数据。

虽然zabbix proxy是代替zabbix server从客户机中获取数据的服务器,但proxy并没有GUI界面,所以zabbix proxy有两种代理模式:

  1. Active:主动模式,代理服务器会主动与server联系并索取配置文件以用于轮询客户机
  2. Passive:被动模式,代理服务器等待server的主动联系并下发配置文件

0x03 准备

0x03.1 zabbix server

首先需要准备zabbix server,编译安装过程请参考以下文章:

变以前请安装以下软件:

为了方便,可以使用以下编译参数:

如果一切正常,那么你将会看到以下界面:

如果是使用被动模式,推荐修改以下参数:

0x03.2 zabbix proxy

注意!请为proxy和zabbix独立配置数据库,切勿共用同一个数据库!

因为zabbix proxy和zabbix server的数据库是相冲突的,为了安全起见,请不要共用数据库。不过既然用上了proxy,那么两者应该不在同一个服务器上,数据库一般也不会在一起。

依旧使用上面的编译参数进行编译:

然后将启动器复制到指定位置:

先修改zabbix proxy的配置文件:

完成后使用以下命令启动:

将启动命令添加到开机启动文件中:

至此,zabbix proxy的配置已完成,下面来检查相关服务有没有成功启动。先查看相关进程:

检查端口:

这里还有一些proxy的配置信息可供配置:

如果你的zabbix系统处于新配置的阶段,需要经常修改调试,请将上方的参数按需要调小点。例如ConfigFrequency这一项的默认值为3600,也就是说每隔一个小时,proxy才向server索取一次配置文件,这很明显很浪费时间。

0x03.3 zabbix agent

如果使用agent的方式从客户机中获取数据,那么agent的配置文件要做一些调整。

首先需要安装agent,你可以在以下页面中下载rpm或exe安装包:

或者依旧使用上方的编译参数进行编译:

然后将agent的启动文件链接到指定位置:

再修改配置文件:

最后启动zabbix agent:

添加到开机启动文件中:

最后检查启动情况:

检查端口监听情况:

0x04 配置

完成zabbix server、zabbix proxy和zabbix agent的配置安装后,还需要到zabbix server中添加zabbix proxy和agent的相关信息。

0x04.1 zabbix proxy

进入Administration –> Proxies添加proxy节点:

如果使用主动模式,那么只需要在Proxy name一栏中填入proxy的hostname即可:

如果采用被动模式,则还需要填入proxy的IP地址或域名:

如果是使用主动模式,那么在超过proxy中HeartbeatFrequency所设定的时间后,proxy将会往服务器发送心跳包,显示如下:

如果使用被动模式,那么显示如下:

0x04.2 host

和往常一样配置host即可,不过在Monitored by proxy一栏中需要选择对应的proxy:

0x05 查看

如果一切顺利,那么稍等片刻即可从监控界面中看到被监控host的数据。因为proxy同步配置信息和server接收数据需要一段时间,请耐心等待:

0x06 结语

如果有多个数据中心、多个私有云网段或者网络环境是内外网相隔离的情况,zabbix proxy是非常有用的。

但使用proxy请注意安全,推荐使用TLS进行加密,以防止数据被窃听或篡改甚至是入侵,同时需要在server和proxy之间配置防火墙和IDS,以增强安全性。