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地址。
zabbix分布式部署和主机自动发现的更多相关文章
- zabbix主机自动发现和监控
在主机较多的时候,配置主机自动发现并加入监控可以代替手动的添加主机,减轻工作量,自动发现由服务端主动发起,Zabbix Server开启发现进程,定时扫描局域网中IP服务器.设备.可以根据需要,在对主 ...
- 自动化监控Zabbix之主机自动发现
创建思路 首先说下自动发现强大的功能,它到底可以帮助我们完成什么工作: 快速发现并添加主机 简单的管理 随着环境的改变而快速搭建监控系统 自动发现基于网络发现功能,而网络发现又基于以下信息: IP地址 ...
- zabbix主机自动发现
环境说明 角色 主机名 IP zabbix-server c1.heboan.com 192.168.88.1 zabbix-agent c2.heboan.com 192.168.88.2 zabb ...
- 030.Zabbix分布式部署
一 分布式Zabbix介绍 zabbix proxy 可以代替 zabbix server 收集性能和可用性数据,然后把数据汇报给 zabbix server,并且在一定程度上分担了zabbix se ...
- zabbix的简单操作(自动发现)
zabbix需要监控很多服务器,比如公司进购一批新的服务器,如何自动添加到zabbix服务上 自动发现: zabbix Server主动发现所有客户端,然后将客户端记录下来 自动注册: zabbix ...
- Zabbix之Python脚本端口自动发现
Zabbix监控服务端口,可以手动添加配置,但是如果一个服务器上需要监控的端口数较多,那么利用Zabbix自动发现,比较高效,下面是自动发现port的Python脚本. #!/usr/bin/pyth ...
- Zabbix SNMP OID discovery,自动发现
Unlike file system and network interface discovery, the item does not necessarily have to have “snmp ...
- 基于percona-monitoring-plugins实现Zabbix的MySQL多端口自动发现监控
https://blog.csdn.net/u013820054/article/details/50931793
- Zabbix监控和分布式部署实施方案
最近在研究Zabbix监控,由于机房分布在多个城市,因此采用zabbix proxy做为监控方案,在每 个节点部署zabbix proxy,由zabbix proxy收集agentd数据,然后将采集到 ...
随机推荐
- springmvc+mybatis多数据源切换
前文:之前练习SSM时配置的都是单数据源,现在项目需求多数据源,所以自己查阅了以下资料,在controller中手动切换数据源成功,以下的配置细节. 实际上应该在dao层进行注解的方式切换,使用AOP ...
- CISCN2018 Writeup
The Lounge战队 CISCN2018 Writeup Pwn-Supermarket from pwn import * def add(name,price,size,des): p.sen ...
- 判断对象当中有没有某一个属性(AS,JS,Java语言比较)
1.AS 首先说说AS里面如何判断,AS现在很少用这个语言了,当时我们公司的项目当中还有,所以就拿出来一块比较一下,代码如下: //利用Object属性判断 if("name" i ...
- Markdown 介绍
Markdown 是目前互联网上最流行的写作语言,它使用一些简单的符号(* / ` > [] () #)来标记文本格式,其简洁的语法.优美的格式以及强大的软件支持深受广大网友的喜爱.维基百科上对 ...
- 【D3D12学习手记】4.1.6 Resources and Descriptors
在渲染过程中,GPU将写资源(resources)(例如,后缓冲区,深度/模板缓冲区),读资源(例如,描述表面外观的纹理,存储场景中几何体3D位置的缓冲区).在我们发出绘图命令之前,我们需要将资源绑定 ...
- 【.NET】Browser Link: Failed to deserialize JSON in Browser Link call
问题 VS2013中调试程序发现,在浏览器控制台输出如下截图代码:
- input.validity
HTML5为表单提供了自带的输入规则提示 但是实际开发中,我们往往需要自定义提示消息和规则,例如限定了最大值但不要求超出时提示错误信息,这时便用到了H5提供的表单新的JS属性--validity,它是 ...
- PHPBase64格式编码图片
base64_encode编码图片 /** * 获取图片的Base64编码(不支持url) * @date 2017-02-20 19:41:22 * * @param $img_file 传入本地图 ...
- DirectX* 11 多线程渲染的性能、方法和实践
对于在 CPU 上运行的 PC 游戏,渲染通常是主要的性能瓶颈:多线程渲染是一种消除瓶颈的有效方法.本文研究了 DirectX* 11 多线程渲染的性能可扩展性,讨论了多线程渲染的两种基本方法,并介绍 ...
- Django-ORM之ForeignKey的使用-多对一关系
ForeignKey使用俩表示两张表多对一关系的外键,外键字段要定义在多属性的表中. 定义外键时,to的表可以直接写类名,但是需要注意类的定义顺序:也可以写字符串式的类名,这样就可以忽略class类的 ...