zabbix分布式部署和主机自动发现

1.分布式部署原理

1.1Zabbix分布式部署的原理

传统的部署架构,是server直接监控所有的主机,全部主机的数据都是有server自己来采集和处理,server端的压力比较大,当监控主机数量很大的时候,server端可能会崩溃。并且如果监控的主机分布在不同地域、互不相同的网络上,传统的架构就不能满足监控所有主机的要求。

分布式部署proxy节点,可以有效的避免上面的问题,每个proxy独立的收集自己区域的主机数据,汇总后按照一定的频率统一发送给server端,server只负责分析和展示数据,能有效减轻server端的压力,并能实现不同地域、不同网络的主机实现统一监控。

Proxy分布式部署的架构图如下

 

1.2经测试proxy只提供数据收集和转发功能,无法对数据进行分析和告警,也无法提供图形化监控界面,并且一个proxy只能向一个server发送数据,但是agent可以向多个server提供数据。

所以要实现一个server端监控全部数据,并且每个地区还要监控自己的数据,无法通过一个server加多个proxy实现,现在能想到比较好的并且测试可行的方案是,总部部署一个server,每个地区各部署一个server和一个proxy,地区server中的数据通过直连地区服务器收集,proxy中的数据也是直连服务器收集,但是proxy收集到的数据是发给总部server的,实现总部监控全部资源的需求,并且通过分布式部署proxy还能有效降低总部server的压力。

 

2.常见的问题

2.1即使通过proxy监控,主机的时候IP地址需要配置正确,否则获取不到监控数据

例如下面我把一个通过proxy监控的ip地址修改了,重启了proxy之后,监控状态就异常了,监控数据也获取不到了。

问题列表也出现了告警

看下面折线图数据断了

重新把IP地址改回来之后,监控数据重新出现,但是我每次改了IP之后,需要重启proxy才会生效,可能是proxy重启的时候才会拉取host的配置,可是文档说会定时更新,可能是间隔时间比较长,这个还有待验证。

2.2验证数据是否真从proxy收集来的,因为host配置的ip地址直接指向了agent,所以不确定监控数据是否是从proxy收集来的而不是直接从agent收集来的,现在将proxy服务停掉。

看图proxy已经有5分多钟没有链接了

问题列表中告警通过proxy收集数据的两台机器链接丢失

但是host页面并没变化,我理解的是这个状态应该从proxy获取才对,不过看起来不是,因为proxy已经停了,不知道算不算bug,有时间再研究。

通过proxy收集数据的docker1和docker2两台主机监控数据也已经收不到了

但是直接通过agent收集数据的docker3主机接收数据正常

到这里就能看出来,配置到proxy中的两台主机,确实是通过proxy进行数据收集之后发送给server的,没配到proxy中的主机,数据是agent直接发送给server的。

3.设备自动发现和注册

3.1Zabbix可能需要监控大量的主机,一个个手动加入很麻烦,所以zabbix提供了主机的自动发现和自动注册功能。

3.2创建自动发现规则

配置– 自动发现– 创建发现规则,打开创建自动发现规则页面,检查规则可以根据实际情况添加。

隔一段时间之后,如果有符合条件的主机,会显示出来

3.3创建自动发现动作

点击创建动作之后,打开创建动作页面,可以设置触发条件,支持多种条件的组合。

然后点击操作选项卡,可以设置发送消息,添加主机,关联主机的群组和主机模板等操作。

添加成功之后等一会,会看到主机中已经添加上了符合天健的主机了,之所以发现了很多只添加上了3个主机,是因为我们上面设置的规则中有个服务类型是zabbix客户端的条件,现在只有这三个安装了agent所以就只加入了三个。

点到详情页面看关联的模板,也是我们动作中设置的模板

也能看到监控数据了,说明自动加入主机是没问题的。

3.4通过proxy实现自动加入

先将主机删掉,然后修改自动发现规则,只是把这里改成proxy,其他都没有变。

这次等的时间有点长,刷新规则我设置的5分钟,结果等了将近二十分钟,主机才加进来,但是还有点问题,虽然是加入到了正确的proxy下面,但是ZBX标签不是绿色的,想到之前修改主机配置后proxy不能及时生效的问题,重启了一下proxy后状态恢复正常。

看监控数据也正常了

但是查看了一下proxy的日志,有下面这样的错误,说主机无法识别,但是看起来并没有影响监控数据的获取。出错原因是因为加入proxy的时候会根据主机名去匹配agent,现在自动加入的主机名是IP地址,跟agent配置的主机名不一致,导致无法识别。

修改agent的Hostname为IP地址之后,重启agent和proxy后,日志的报错信息消失,所以建议以后如果想手动添加主机,hostname可以配置成便于识别的名称,如果要使用自动加入主机,hostname最好配置成IP地址。

posted @ 2018-09-07 17:24  张艳华  阅读(328)  评论(0编辑  收藏  举报