前文我们了解了zabbix的宏,自定义item和模板的相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14013331.html;今天我们来了解下zabbix的网络发现功能;

  1、为什么要使用网络发现功能呢?

  我们知道使用zabbix监控系统去监控一个集群,通常我们会使用各种信道去对应server上采集数据,这意味着每台server上必须能够支持zabbix上定义的信道去采集数据;比如我们使用zabbix agent这种信道去server上采集数据,那么对应server上就必须安装好zabbix agent;其次配置zabbix agent告诉它zabbix server是谁;然后我们才可以在zabbix 的web界面上配置添加对应主机使用zabbix agent信道去采集数据;在集群环境节点和server数量不多的情况下我们手动添加也到不是什么难事,试想一下,如果我们监控的server有20台,甚至更多,这意味着我们手动去添加主机,然后链接模板需要重复做20次,甚至更多;很显然这不是我们想要的方式;那有没有什么方式能够帮助我们去自动添加主机,并链接模板呢?这就是我们使用zabbix网络发现功能的目的;简单说zabbix的网络发现功能,它能帮助我们在我们指定的网段内扫描主机,当扫描到对应网段有符合我们定义的扫描规则时,它就会触发一个discovery事件,而对应action监听到对应的事件发生后,就能触发action的操作,比如把某主机添加到zabbix,然后链接指定的模板等等;这样一来我们要想去监控一个集群,我们只需要定义怎么去发现主机的规则和监听对应discovery事件的action,就能够完成一个集群的快速监控;

  2、zabbix网络发现它是怎么去发现主机的呢?

  zabbix的网络发现功能是通过扫描我们指定的网段,当然扫描肯定是有判断条件的,不是说在指定网段里的所有主机都能满足;那它是怎么判断的呢?我们知道要想被zabbix所监控,必须满足对应server支持指定的信道和zabbix server进行通信,将指定的指标数据响应或发送给zabbix server;如果说zabbix使用一种机制给指定的主机发送指定信道的某种请求,如果对应server能够正常响应,那么我们就可以理解为对应server支持该信道和zabbix server进行通信,这样一来zabbix server 就可以把对应的server添加进来进行监控;简单讲zabbix discovery功能是通过zabbix server 向指定网段中的所有主机发送某种信道的某种请求,如果对应server能够正常响应,那么zabbix server 就认为对应server满足加入zabbix监控系统,此时zabbix server 就会触发一个discovery事件;对于该事件发生后该采取什么措施,这取决于我们定义的action的操作;

  示例:配置使用zabbix 网络发现功能发现指定网段内的主机

  创建网络发现规则

  提示:在zabbix web 界面的configuration--->discovery菜单找到create discovery rule,点击进入创建discovery rule界面;

  提示:以上配置表示在192.168.0.44-50这个网段进行ICMP ping操作,如果有主机响应,则触发discovery 事件;当然checks可以配置多个,比如zabbix agent,snmp,ssh ,telnet,ftp等等;使用zabbix agent去check,如果对应主机能够给予响应,则表示对应主机上安装的有zabbix agent,如果使用snmp去check,如果对应主机能够响应,这表示对应主机支持使用snmp信道去采集数据;总之使用什么方式去扫描,就意味着对应主机上必须支持对应方式和zabbix server通信;zabbix server才会触发一个discovery事件;意思就是根据某种check去扫描指定网段内的主机发现了某某主机支持这种方式;至于后续该怎么处理这个事件,则由对应的action来处理就好;

  验证:看看对应网段是否有符合icmp ping的主机呢?

  提示:在monitoring--->discovery菜单下选择我们刚才定义的test_discovery规则,然后点击apply,就能够查看对应符合test_discovery规则的主机;从上面结果可以看到符合test_discovery规则的主机有4台;

  更改test_discovery规则使用zabbix agent方式来扫描指定网段的主机

  提示:以上配置表示使用zabbix agent的方式来扫描指定网段主机;向指定网段内的主机发送请求zabbix 内建的key system.uname,如果对应主机能够给予响应,则zabbix server 就触发discovery事件;

  现在看看test_discovery 是否能够发现主机呢?

  提示:现在看就只有node04被发现了,其他的主机都没有发现,这说明node04上安装的有zabbix agent ;同理我们在node05上如果安装上zabbix agent,是不是node05也会被发现呢?

  复制zabbix.repo文件到node05

[root@node03 ~]# scp /etc/yum.repos.d/zabbix.repo node05:/etc/yum.repos.d/
zabbix.repo 100% 242 205.5KB/s 00:00
[root@node03 ~]#

  在node05上安装zabbix agent

[root@node05 ~]# yum install -y zabbix-agent

  启动zabbix-agent

[root@node05 ~]# systemctl start zabbix-agent.service
[root@node05 ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 128 :::10050 :::*
[root@node05 ~]#

  再次查看zabbix server是否发现了node05呢?

  提示:很显然没有发现node05;

  手动在zabbix server上使用zabbix_get命令来获取node05上的system.uname看看是否能够正常获取?

[root@node03 ~]# zabbix_get -s node05.test.org -k 'system.uname'
zabbix_get [1902]: Check access restrictions in Zabbix agent configuration
[root@node03 ~]#

  提示:它这里提示我们检查对应agent的配置;

  在node05上配置zabbix agent,将server指向zabbix server ,然后重启zabbix agent

[root@node05 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
Server=192.168.0.43
ServerActive=127.0.0.1
[root@node05 ~]# systemctl restart zabbix-agent.service
[root@node05 ~]# ss -tnl
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 *:22 *:*
LISTEN 0 100 127.0.0.1:25 *:*
LISTEN 0 128 *:10050 *:*
LISTEN 0 128 :::22 :::*
LISTEN 0 100 ::1:25 :::*
LISTEN 0 128 :::10050 :::*
[root@node05 ~]#

  看看在node3上使用zabbix_get命令获取node05上的system.uname是否能够获取到数据?

[root@node03 ~]# zabbix_get -s node05.test.org -k 'system.uname'
Linux node05.test.org 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64
[root@node03 ~]#

  提示:现在能够获取到数据了;

  再次查看node05是否被发现了呢?

  提示:可以看到node05已经被发现了;从上面实验可以总结,使用zabbix agent 来check,对应主机必须要安装zabbix agent并配置其Server的地址才能够被发现;

  配置zabbix action监听discovery事件

  提示:在configuration--->actions页面选择discovery事件源,然后点击create action进入新建discovery事件源的action;

  填写action名称,以及触发条件

  提示:以上添加了3个条件,第一个条件是discovery check必须是test_discovery:zabbix agent "system.uname";第二个是发现的主机状态必须是up,第三个条件是对应主机响应中包含Linux字串;通过上述三个条件,我们发现的主机一定是一个linux主机;那么接下来我们就可以将发现的主机添加到host,然后链接针对监控Linux主机的模板进行监控;

  添加执行的操作

  提示:以上添加了两个操作,第一个操作上将对应主机添加为zabbix监控的主机;第二个操作上将对应主机链接至template os linux模板;当然如果还有其他操作可以继续添加;这里的操作有很多,比如发邮件,远程执行命令,添加/移除主机,添加/移除主机到某个主机组,链接/取消链接某个模板等等操作;

  验证:查看是否将node05添加至host并链接了Template OS Linux模板呢?

  提示:可以看到node05已经加入到zabbix 的hosts中,并链接了Template OS Linux 模板;同时我们也可以发现node04也链接了Template OS Linux;这说明只要符合dicovery事件监听的action都会执行对应action定义的操作;

  以上就是zabbix的网络发现功能的使用演示,在大规模网络环境中使用,需要注意扫描时间间隔,如果网段特别大,此时如果扫描的间隔时间密集可能造成网络拥堵,对集群网络有一定的影响;其次选择zabbix agent 做判断条件,需要在各个server上安装zabbix agent 并配置server指向zabbix server ;这个安装和配置可以使用自动化运维工具去搞,比如ansible ,puppet等等;当然也可以提前规划好,在装系统时直接安装并启动好;

分布式监控系统之Zabbix网络发现的更多相关文章

  1. 分布式监控系统之Zabbix基础

    1.为什么要使用监控系统? 我们知道一个系统不管怎么讲它都会出故障,我们为了保证线上业务的最大化的可用性,通常我们要给关键业务做高可用:做高可用的目的是为了让故障发生时,能够有一个备用的解决方案,将故 ...

  2. 分布式监控系统之Zabbix基础使用

    前文我们了解了分布式监控系统zabbix的相关组件的作用和zabbix的部署,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13997582.html:今天我们 ...

  3. 分布式监控系统之Zabbix主动、被动及web监控

    前文我们了解了zabbix的网络发现功能,以及结合action实现自动发现主机并将主机添加到zabbix hosts中,链接指定模板进行监控:回顾请参考https://www.cnblogs.com/ ...

  4. 分布式监控系统之Zabbix 使用SNMP、JMX信道采集数据

    前文我们了解了zabbix的被动.主动以及web监控相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14024212.html:今天我们来了解下zabb ...

  5. 分布式监控系统之Zabbix宏、模板和自定义item

    前文我们聊了下zabbix的基础使用,包括主机的添加.监控项.触发器.action以及告警通知的配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/140073 ...

  6. 分布式监控系统之Zabbix proxy

    前文我们了解了zabbix 使用snmp和jmx信道采集数据的相关使用配置,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14029864.html:今天我们来 ...

  7. Zabbix分布式监控系统实践

    https://www.zabbix.com/wiki/howto/install/Ubuntu/ubuntuinstall 环境介绍OS: Ubuntu 10.10 Server 64-bitSer ...

  8. 分布式监控系统Zabbix-3.0.3-完整安装记录(1)

    分布式监控系统Zabbix-3.0.3的安装记录 环境说明zabbix-server:192.168.1.30     #zabbix的服务端(若要监控本机,则需要配置本机的Zabbix agent, ...

  9. 分布式监控系统Zabbix-3.0.3-新版微信报警(企业微信取代企业号)

    一般来说,Zabbix可以通过多种方式把告警信息发送到指定人,常用的有邮件,短信报警方式,但是现在越来越多的企业开始使用zabbix结合微信作为主要的告警方式,这样可以及时有效的把告警信息推送到接收人 ...

随机推荐

  1. centos8平台nginx服务配置打开文件限制max open files limits

    一,nginx启动时提示打开文件数,ulimit的配置不起作用: 1, 2020/04/26 14:27:46 [notice] 1553#1553: getrlimit(RLIMIT_NOFILE) ...

  2. Storm入门教程汇总

    http://www.aboutyun.com/thread-8059-1-1.html

  3. PyTorch常用参数初始化方法详解

    1. 均匀分布 torch.nn.init.uniform_(tensor, a=0, b=1) 从均匀分布U(a, b)中采样,初始化张量. 参数: tensor - 需要填充的张量 a - 均匀分 ...

  4. buuctf-misc-[BJDCTF 2nd]圣火昭昭-y1ng 1

    开局一张图片,flag全靠猜,那这个是不是和outguess工具有关呢?于是我们显示查看了图片的详细信息 看到是新佛曰,于是我们用新佛曰论禅解密:http://hi.pcmoe.net/buddha. ...

  5. Linux标准重定向-输入-输出-错误-多重

    一切皆文件,都是文件的操作 三种I/O设备 标准的输入输出 程序:指令+数据 读入数据:Input 输出数据:Output 系统中打开一个文件系统自动分配文件描述符,除了0,1,2是固定的,其他的都是 ...

  6. Unity-根据时间开灯与关灯

    声明:本人只是学生,并且只是自学Unity,如有大神,不喜勿喷,不足之处,请指出! 本项目使用了UniStorm 3.0(天气)插件,时间也是调用它本身的API,实际并不影响,用系统的时间的是也是可以 ...

  7. eclipse快捷键(Mac版)整理

    eclipse快捷键(Mac版)整理 前言: 最近在学习JDBC,老师用的是eclipse,对于习惯了IDEA的我来说,没有了快捷键,效率明显下降. 我认为,开发工具的熟练使用,也是程序员必备的一项技 ...

  8. centos之间如何实现免密ssh登陆

    在公司产品中,管理平台和下面的主机很多时候都要求免密,免密的逻辑到底是怎么样的呢?今天就简单看看! 首先创建两台虚机,正常情况下ssh登陆对方是需要密码的 先通过ssh-keygen生成一对秘钥 [r ...

  9. centos7安装oracle版本的jdk

    Hadoop机器上的JDK,最好是Oracle的Java JDK,不然会有一些问题,比如可能没有JPS命令. 如果安装了其他版本的JDK,卸载掉!!! 1,查看是否已经安装了jdk java -ver ...

  10. 攻防世界-mfw

    打开题目,让我们看看about这个链接是什么,我们看到了这个 他说他写这个站点用了git.php.bootstrap这很容易就能让我们想到,git源码泄露,这我们直接掏出githack, python ...