深入浅出Zabbix 3.0 -- 第三章  Zabbix 监控方式

本文详细介绍了Zabbix 3.0的各种监控方式,包括Active和Passive agents、Extending agents、Simple checks、SNMP agents等,展示了如何配置和使用这些监控方式来实现全面的系统监控。通过了解这些监控方式,读者将明白Zabbix为何能胜任几乎任何监控任务。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第三章  Zabbix 监控方式

近日完成《深入浅出 zabbix 4.0》视频教程的录制并正式发布,该教程基于 zabbix 4.2 ,对Zabbix进行全面讲解。欢迎大家围观。课程链接:https://edu.youkuaiyun.com/course/detail/24870

有人说通过Zabbix可以完成任何监控任务,只有你想不到的,但没有监控不了的,真是这样吗?当你通过本章了解了Zabbix提供的多种监控方式后,你就会发现此言非虚。

这里所说的监控方式,实际上就是Zabbix中的配置监控项时选择的监控项类型。为了适应各种应用场景的需要,Zabbix提供了多种方法帮助你更好的完成监控任务。

Zabbix 3.0中提供的监控方式包括:

  • Active agents

  • Passive agents

  • Extending agents

  • Simple checks

  • SNMP agents

  • Zabbix Internal checks

  • Zabbix trapper

  • IPMI agents

  • JMX agents

  • External checks

  • Database monitoring

  • SSH agents

  • Telnet agents

  • SNMP Traps

  • Aggregate checks

  • Calculated checks

 

3.1 Active agents

 

使用Zabbix agent创建监控项时有两种方式,即Active(主动式)agent和Passive (被动式)agent。

在Active agent模式下,Zabbix agent启动后,由agent端初始化和Zabbix server之间的通信,向Zabbix server发出获取监控项清单的请求,server端收到请求后响应agent发出的请求,并将监控项清单发送给agent。agent端定期和Zabbix server通信,保证获得最新的监控项清单。agent则根据监控项清单查询监控项的数据并将结果发送给Zabbixserver。流程如下图3-1所示。

  

 

图 3-1

为了启用Active agent模式,需要在zabbix_agentd.conf文件中配置ServerActive参数,告诉agent可以联系到哪些服务器(默认端口是10051)。通过配置RefreshActiveChecks参数,可以设置agent端多长时间向server询问一次监控项清单,默认是120秒。在默认设置下server端改变active agent监控项有关的一些设置后,server端需要1分钟刷新配置缓存(通过server配置文件中的参数CacheUpdateFrequency设置,默认是60秒),agent需要等待2分钟才能够知道监控项的变化。如果从server查询监控项清单失败(网络问题或其他原因),agent端会等待1分钟后重新向server发出查询请求。Active agent也有自己的缓存,可以通过BufferSend或BufferSize进行设置, BufferSend参数设置监控项数据在缓存中保留的时间,默认是5秒(可以设置到3600)。BufferSize参数设置保留监控项数据的缓存大小,默认是100(可以设置到65535)

配置Active agent监控项的步骤:

1、  Zabbix agent安装完成后,打开配置文件zabbix_agentd.conf。

2、  设置ServerActive参数,格式为IP:port 或DNS主机名:port。在这里我们可以设置多个server或proxy的DNS主机名或IP地址,用逗号分隔。

3、  设置Hostname参数,这个名字必须是唯一的并和Zabbixserver中Configuration -->Hosts页面中添加的主机名称相同。

4、  验证Zabbix server的10051端口能够访问。

5、  重启zabbix_agent(systemctlrestart zabbix-agent.service)。

6、  检查agent日志(tail -f/var/log/zabbix/zabbix_agentd.log)。

7、  在主机中添加主动式监控项(Configuration --> Hosts --> Items --> Create item)。选择监控项的Type(类型)为Zabbix agent(active)。

 

 

3.2 Passive agents

Passive agent为我们提供了一种简单易行的方法,Zabbixserver或proxy根据监控项中配置的Update interval(数据更新间隔),定期向agent端发出查询请求,如CPU负载、磁盘使用空间等等。agent根据请求收集监控项数据并返回给server或proxy。整个过程就是简单的一问一答,你要什么值我给你什么值,从agent角度来看是被动的回答。如下图3-2所示。

 

图 3-2

 

配置Passive agent监控项的步骤:

1、  安装Zabbix agent,打开配置文件zabbix_agentd.conf。

2、  设置Server参数,格式为IP 或DNS主机名。在这里我们可以设置多个server或proxy的DNS主机名或IP地址,用逗号分隔。

3、  注释掉ServerActive和Hostname这两个参数,在Passive agent模式中不需要这两个参数,如果你想同时使用active agent,这两个参数必须配置。

4、  验证agent端的10050端口能够访问。

5、  重启zabbix_agent(systemctlrestart zabbix-agent.service)。

6、  检查agent日志(tail -f/var/log/zabbix/zabbix_agentd.log)。

7、  在主机中添加被动式监控项(Configuration --> Hosts --> Items --> Create item)。选择监控项的Type(类型)为Zabbix agent。

 

3.3 Extending agents

Zabbix中提供了一些标准的监控项可以使用Key,当你添加Zabbix agent监控项时可以选择使用,但在实际环境中这些标准的Key并不能满足特定的监控需求,在Zabbix中可以使用多种方法进行扩展,其中一个方法就是在agent配置文件中使用UserParameter进行扩展。

通过UserParameter参数扩展监控项的key,可以灵活的实现多种监控需求。Zabbix中定义UserParameter的格式为UserParameter=<key>,<command>。

配置UserParameter的步骤:

1、  打开agent配置文件zabbix_agentd.conf。

2、  设置UserParameter参数。例如:UserParameter=mysql.threads,mysqladmin -u root –p<password> status|cut -f3 -d":"|cut -f1-d"Q" ,该参数返回MySQL线程的数量给自定义的key:mysql.threads。

3、  保存配置文件,重新启动Zabbix agent服务。

4、  Web前端Configuration --> Hosts--> Items页面中添加监控项。

u  Name字段中设置监控项名称,例如 MySQL Threads。

u  Type字段中选择Zabbix agent或者Zabbix agent(active)。

u  Key字段中填写mysql.threads,这里填写的内容必须和UserParameter中定义的一样。

u  Type of Information字段中选择Numeric(unsigned)。

u  Data type中选择Decimal。

u  其他配置参数保持不变。点击Add按钮保存。

5、  Monitoring --> Latest data页面查看监控项MySQL Threads。

3.4 Simple checks

Zabbix 中simple checks是基于ICMP ping或者端口检测来确定主机是否在线或服务端口能否正常连接。这种方式下主机中不需要安装Zabbix agent,当我们检测主机或端口的可用性时simplechecks返回的值为1或者0,当我们检测性能时返回的是浮点数(如检测ping的响应时间时返回值0.02秒),如果检测失败则返回0。

为了降低网络流量,更高效的进行ICMP检测,Zabbix执行icmppingsec、icmpping 和 icmppingloss检测时使用了一个第三方的工具fping和fping6,依赖linux不同的发行版安装的版本各有不同,建议使用fping 3.0以上的版本。在CentOS系统中需要安装fping时可以通过命令yum install fping完成安装。

Zabbix中默认定义了3个用于ICMP检测的监控项和2个用于TCP/UDP连接检测的监控项,分别是:

  • Icmpping:主机响应ICMP ping返回1,否则返回0。

  • Icmppingloss:返回丢失ICMP ping数据包的百分比。

  • Icmppingsec:返回ICMP ping的响应时间,单位是秒。如果主机没有响应(timeout reached)则返回0。如果返回值小于0.0001秒时返回值将被设置为0.0001。

  • Net.tcp.service / net.udp.service:主机上指定的服务正常运行并能建立TCP / UDP连接时返回1,否则返回0。

  • Net.tcp.service.perf / net.udp.service.perf:返回连接到指定TCP / UDP端口的服务所使用的时间,单位是秒。如果服务没有运行则返回0.000000。

net.tcp.service 和net.tcp.service.perf支持我们知道的大部分协议,如SSH、FTP、HTTP等。这两个项目是非常有用的,我们可以对特定的IP和端口进行简单的TCP握手连接完成可用性的检测,同时对主机或应用的性能不会有任何影响。

下面一起来看看这几个项目的用法。

  • Icmpping

格式:Icmpping[<target>,<packets>,<interval>,<size>,<timeout>]。其中target是主机IP或DNS主机名;packets是数据包的数量;interval是数据包之间的间隔时间,单位是微秒;size是数据包的大小,单位是bytes;timeout是超时时间,单位是微秒。例如icmpping[,20,50,256,100],如果你不想定义target、packet等值,可以不填写任何参数,可以写成icmpping[,4],只要4个数据包有1个响应,监控项就会返回1。

  • Icmppingloss

格式:icmppingloss[<target>,<packets>,<interval>,<size>,<timeout>]。其中target是主机IP或DNS主机名;packets是数据包的数量;interval是数据包之间的间隔时间,单位是微秒;size是数据包的大小,单位是bytes;timeout是超时时间,单位是微秒。

  • Icmppingsec

格式:icmppingsec[<target>,<packets>,<interval>,<size>,<timeout>,<mode>]。其中target是主机IP或DNS主机名;packets是数据包的数量;interval是数据包之间的间隔时间,单位是微秒;size是数据包的大小,单位是bytes;timeout是超时时间,单位是微秒。

  • net.tcp.servic

格式:net.tcp.service[service,<ip>,<port>]。其中service是TCP协议的名称,如:ssh、ldap、smtp、ftp、http、pop、nntp、imap、Telnet等等;IP是IP地址或DNS主机名(默认使用定义监控项的主机的IP或DNS主机名);port是端口号(默认使用服务标准的端口号)。例如:net.tcp.service[ftp,45]。当前不支持加密协议的检测,像IMAP的993端口或POP的995端口,但我们可以用net.tcp.service[tcp,<ip>,port]来完成对它们的检测。Zabbix 从v2.0起支持https和telnet。

  • net.tcp.service.perf

格式:net.tcp.service.perf[service,<ip>,<port>]。其中service是TCP协议的名称,如:ssh、ldap、smtp、ftp、http、pop、nntp、imap、Telnet等等;IP是主机的IP地址或DNS主机名(默认使用定义该监控项主机的IP或DNS主机名);port是端口号(默认使用服务标准的端口号)。例如:net.tcp.service.perf [ssh]。当前不支持加密协议的检测,像IMAP在993端口或POP在995端口上,但我们可以用net.tcp.service.perf [tcp,<ip>,port]来完成对它们的检测。

  • net.udp.service

格式:net.udp.service[service,<ip>,<port>]。其中service是UDP协议的名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

大白小白一起学

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值