前文我们了解了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

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

  在node05上安装zabbix agent

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

  启动zabbix-agent

  1. [root@node05 ~]# systemctl start zabbix-agent.service
  2. [root@node05 ~]# ss -tnl
  3. State Recv-Q Send-Q Local Address:Port Peer Address:Port
  4. LISTEN 0 128 *:22 *:*
  5. LISTEN 0 100 127.0.0.1:25 *:*
  6. LISTEN 0 128 *:10050 *:*
  7. LISTEN 0 128 :::22 :::*
  8. LISTEN 0 100 ::1:25 :::*
  9. LISTEN 0 128 :::10050 :::*
  10. [root@node05 ~]#

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

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

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

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

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

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

  1. [root@node05 ~]# grep ^Server /etc/zabbix/zabbix_agentd.conf
  2. Server=192.168.0.43
  3. ServerActive=127.0.0.1
  4. [root@node05 ~]# systemctl restart zabbix-agent.service
  5. [root@node05 ~]# ss -tnl
  6. State Recv-Q Send-Q Local Address:Port Peer Address:Port
  7. LISTEN 0 128 *:22 *:*
  8. LISTEN 0 100 127.0.0.1:25 *:*
  9. LISTEN 0 128 *:10050 *:*
  10. LISTEN 0 128 :::22 :::*
  11. LISTEN 0 100 ::1:25 :::*
  12. LISTEN 0 128 :::10050 :::*
  13. [root@node05 ~]#

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

  1. [root@node03 ~]# zabbix_get -s node05.test.org -k 'system.uname'
  2. Linux node05.test.org 3.10.0-693.el7.x86_64 #1 SMP Tue Aug 22 21:09:27 UTC 2017 x86_64
  3. [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. lumen 添加配置

    app同级目录新建config目录 添加配置文件 bootstrap/app.php里面加载 $app->configure('options');使用 $router->get('/', ...

  2. C++学习---顺序表的构建及操作

    #include<iostream> #include<fstream> using namespace std; #define MAXLEN 100 //定义顺序表 str ...

  3. MVC联想查询绑定下拉框

    前言 在做搜索时,输入些内容时需要弹出下拉框给用户进行选择,极大的方便了用户,会给用户带来不一样的体验 Controller public ActionResult SSAC(string UserN ...

  4. int是java.lang包中可用的类的名称

    int是java.lang包中可用的类的名称(x) int为基本数据类型,不是类

  5. java8中哪个类用到了开放地址解决冲突

    hreadlocalmap使用开放定址法解决haah冲突,hashmap使用链地址法解决hash冲突

  6. centos7 添加环境变量

    修改/etc/profile文件使其永久性生效,并对所有系统用户生效 PATH=$PATH:/usr/local/php/bin export PATH source /etc/profile

  7. vscode+WSL+Debug+Cmake+OpenGL

    网页版:https://www.cnblogs.com/Jay-CFD/p/12584334.html WSL安装 参考:https://www.cnblogs.com/Jay-CFD/p/60672 ...

  8. ui 自动化的测试用例从哪来

    从手工测试当中选取,尽量选择 1.简单且需要反复回归 2.稳定且不会经常变化 3.优先覆盖核心功能

  9. http twisted

    Sunday, September 30th, 2007 Twisted的WEB开发 作者: gashero <harry.python@gmail.com> 目录 1   简介 2    ...

  10. Maven的介绍及使用

    一.Maven简介 Maven 是一个项目管理工具,可以对 Java 项目进行构建.依赖管理,是一个自动化构建工具. 自动化构建工具:将原材料(java.js.css.html....)->产品 ...