专注 K8S研究
分类: 系统运维
2015-01-27 23:06:46
原文地址:Zabbix系统内部数据采集 作者:bamboo789
从本质上来说,Zabbix系统它也与其它的被监控的系统一样,也是一种应用系统。所以,它的状态、性能数据也需要被采集与监控。以便对它的运行性能、状态情况进行了解,进而在必要的时候对它进行性能调优或进行必要的系统硬件升级,甚至对它的架构进行更换。例如,一般组织,随着组织业务的不断拓展和实际发展的需要,被监控设备和被监控项目的数量会快带的增长。而这种增长达到一定的程度以后,原来采用的单台独立服务器模式的Zabbix系统就很难满足组织的需要,这个时候我们可能就需要及时的将单台独立服务器运行模式更换为分布式模式进行运行。
而实际上,当我们决定是否要对现有的Zabbix系统进行硬件升级、系统性能优化甚至更换独立服务器模式为分布式服务器模式时,就需要面临依据的问题。即在我们决定进行上述升级时,我们就需要有数据依据。
而Zabbix系统内部数据采集方法就是采集和监控Zabbix系统自身状态和性能数据的方法。Zabbix系统内部数据采集方法是由Zabbix服务器端通过计算获取的,所以这种数据采集方法不需要安装任何的客户端。下表2-4列出的是内部数据采集方法支持的监控项目。
表2-4 Zabbix系统内部数据采集监控项目列表
关键字(Key) |
描述 |
备注 |
zabbix[boottime] |
该监控项返回Zabbix服务器端进程启动的时间截。 |
返回的时间截是自1970年01月01日零时的秒数。因此,如果转换成年月日的形式需要手动转换。 |
zabbix[history] |
返回数据库中HISTORY表中记录的条数。 |
如果数据库是MySQL InnoDB的存储引擎或Oracle、PostgreSQL尽量不要使用这个监控项,以免对数据库的性能有较大的影响。 |
zabbix[history_log] |
返回数据库中HISTORY_LOG表中记录的条数据。 |
如果数据库是MySQL InnoDB的存储引擎或Oracle、PostgreSQL尽量不要使用这个监控项,以免对数据库的性能有较大的影响。 |
zabbix[history_str] |
返回数据库中HISTORY_STR表中记录的条数据。 |
如果数据库是MySQL InnoDB的存储引擎或Oracle、PostgreSQL尽量不要使用这个监控项,以免对数据库的性能有较大的影响。 |
zabbix[history_text] |
返回数据库中HISTORY_TEXT表中记录的条数据。 |
如果数据库是MySQL InnoDB的存储引擎或Oracle、PostgreSQL尽量不要使用这个监控项,以免对数据库的性能有较大的影响。 |
zabbix[history_uint] |
返回数据库中HISTORY_UINT表中记录的条数据。 |
如果数据库是MySQL InnoDB的存储引擎或Oracle、PostgreSQL尽量不要使用这个监控项,以免对数据库的性能有较大的影响 |
zabbix[host, |
返回指定的主机是否支持某种类型的数据采集方法。这个监控项目所采集的值与主机列表中的数据采集方法可能性图标是相对应的。 |
这个项目中的type参数可选agent、snmp、ipmi以及jmx等。返回值为0则表示该主机对应的数据采集方法不用,1表示该采集方法可用,而返回值为2则表示对应的数据采集方法是否可用为未知。 |
zabbix[items] |
返回系统中已经配置的监控项目的总数。 |
|
zabbix[items_unsupported] |
返回数据库中配置的,但是系统不支持的监控项目的总数。 |
|
zabbix[java,,] |
返回与Zabbix Java应用程序网关相关的信息。 |
如果是ping的话,那么当Java应用程序网关可用的话,则返回数字1。针对这个监控项,可以在触发器中使用nodata()函数,以识别出Java应用程序网关不可用。当参数项是version的话,则返回Java应用程序网关的版本信息,例如2.0.0等。 |
Zabbix[process, |
该项目返回的是指定的Zabbix进程或指定的一组进程(通过
Zabbix服务器端进程有多达二十多种(当我们在操作系统下用ps –ef命令来查看时,往往看到很多zabbix系统进程,而这些系统进程在zabbix内部称为实例。这些实例各处负责不同的工作,就形成了不同种类型的进程)。在这个监控项目中, 这里的最大值和最小值是针对单个进程而言的。例如,我们要统计一组三个某类型的最大值或最小值。如果这三个进程在统计期间“繁忙”率分别为:2、18和66,那么这组进程中最小“繁忙”率是2,而最大“繁忙”率是66。 |
该监控项支持的进程类型包括: 报警器(alerter)——该类型的进程是用来发送报警通知的; 配置同步器(configuration syncer)——用于将配置文件中的配置信息同步到内存中缓存; 数据发送器(data sender)——服务器代理节点用于发送数据的进程(服务器端没有这类进程); 数据库看门狗(db watchdog)——该进程用于监视zabbix系统的数据库状态,当数据库状态变为不可用时,发送警告信息(服务器代理端不支持这类型进程)。 自动发现器(discoverer)——用于自动发现设备的进程; 步骤(escalator)——用于处理动作中的步骤的进程; 心跳发送器(heartbeat sender)——服务器代理端用于发送心跳信息(服务器端没有这类型的进程); 历史数据同步器(history syncer)——用于写历史数据表; 管家(housekeeper)——用于清理过期的历史数据的进程; HTTP 轮询器(http poller)——用于轮询web类的监控项目; Ping检查器(icmp pinger)——用于定期的进行ICMP PING检查; ipmi 轮询器(ipmi poller)——用于定期进行ipmi监控项目的检查; java 轮询器(java poller)——用于轮询java 监控项目; 分布式节点看守器(node watcher)——用于在不同的分布式节点发送历史数据和配置信息更新的进程; 轮询器(poller)——用于普通的被动监控项目的轮询; 服务器代理轮询(proxy poller)——用于服务器代理的被动轮询; 自我监控(self-monitoring)——用于收集Zabbix系统内部的监控信息; 定时器(timer)——用于处理触发器中也时间相关的函数和维护模式的进程; 陷入器(trapper)——用于处理主动采集、陷入以及分布式节点间或服务器代理的通信; 不可到达轮询器(unreachable poller)——用于轮询不可到达到的设备; vmware 收集器(vmware collector)——负责从vmware服务进程中收集数据(服务器代理端不支持这种类型的进程); 可用的mode参数包括: avg——指定类型所有进程的平均值; count——返回创建的指定类型进程的数量; max——最大值; min——最小值;
可用的state参数包括: 繁忙(busy)——表示处于繁忙状态的进程; 空闲(idle)——表示处于空闲状态的进程; |
zabbix[proxy, |
该监控项是用于采集Zabbix服务器代理的相关信息。 |
参数 |
zabbix[proxy_history] |
返回服务器代理端proxy history 表中等待发送给服务器端的数据的条数。 |
|
zabbix[queue, |
返回系统队列中延时了 |
|
zabbix[rcache, |
返回内存中用于缓存配置信息的内存空间使用信息。 |
参数cache可选buffer; 参数mode可选择: total ——返回用于缓存配置信息的总的内存空间大小。这个返回值应于配置文件中CacheSize配置选项指定的数值是一致的; free——返回用于缓存配置信息的空闲的内存空间大小; pfree——返回用于缓存配置信息的空闲的内存空间占总的内存空间的百分比; used——返回用于缓存配置信息的已使用的内存空间大小; |
zabbix[requiredperformance] |
该监控项返回的是Zabbix服务器期望的性能值,即Zabbix系统根据系统中配置的被监控主机和被监控项目的数量及类型,估算出来的服务器每秒钟需要处理的新数据的数量。 |
该监控项的返回值与我们将在后面介绍的“状态统计”->“状态面板”->“ZABBIX状态”及“系统报告”->“ZABBIX状态”中的“服务器性能(值/秒)”项目显示的数值是相同的,且其含义也是一样的。 |
zabbix[trends] |
返回数据库中TRENDS表中记录的条数据。 |
如果数据库是MySQL InnoDB的存储引擎或Oracle、PostgreSQL尽量不要使用这个监控项,以免对数据库的性能有较大的影响。 |
zabbix[trends_uint] |
返回数据库中TRENDS_UINT表中记录的条数据。 |
如果数据库是MySQL InnoDB的存储引擎或Oracle、PostgreSQL尽量不要使用这个监控项,以免对数据库的性能有较大的影响。 |
zabbix[triggers] |
返回数据库中已经配置的触发器的数量。 |
|
Zabbix[wcache, |
该监控项用于采集Zabbix系统中写缓存信息的。 |
参数cache可以选择values,history,trend,text等选项。当参数cache选择values项时,则mode参数可以选择以下值: all——返回自zabbix服务端进程或服务器代理进程启动以来处理的所有监控数据的总和。但是不包括不被支持的监控项目。 float——返回自zabbix服务端进程或服务器代理进程启动以来处理的所有浮点型监控数据的总和。 uint——返回自zabbix服务端进程或服务器代理进程启动以来处理的所有无符号整型监控数据的总和。 str——返回自zabbix服务端进程或服务器代理进程启动以来处理的所有字符串型监控数据的总和。 log——返回自zabbix服务端进程或服务器代理进程启动以来处理的所有日志型监控数据的总和。 text——返回自zabbix服务端进程或服务器代理进程启动以来处理的所有文本型监控数据的总和。 not supported——返回系统自zabbix服务端进程或服务器代理进程启动以来处理的不被支持的监控数据的总和。 当参数cache选择history项时,则mode参数可以选择以下值: pfree——返回的是历史缓冲区中空闲缓冲区占总的历史缓冲区的百分比。总的历史缓冲区的大小是由配置文件中的HistoryCacheSize 参数来指定的。历史缓冲区是用来缓存所有类型监控项目信息、采集数据的时间截以及数值类型监控项目所采集的数据。如果这个项目的值偏低,则很可能意味着数据库方面有性能问题。 free——返回空闲的历史缓冲区大小。 total——返回总的历史缓冲区大小。 used——返回已使用的历史缓冲区大小。 当参数cache选择trend项时,则mode参数可以选择以下值: pfree——返回的是趋势缓冲区中空闲缓冲区占总的趋势缓冲区的百分比。总的趋势缓冲区的大小是由配置文件中的TrendCacheSize 参数来指定的。趋势缓冲区用于缓存监控项目最近一个小时内所采集到的所有数据,以用于数据聚合使用。服务器代理端不支持该种数据采集方法。趋势缓冲区其它统计项目:free、total、used与历史缓冲区中对应的统计项目的含义相类似,在这里我们不再一一缀缀述。 当参数cache选择text项时,则mode参数可以选择以下值: pfree——返回的是文本缓冲区中空闲缓冲区占总的文本缓冲区的百分比。总的文本缓冲区的大小是由配置文件中的HistoryTextCacheSize参数来指定的。文本缓冲区用于缓存字符、文本以日志类型的历史数据的。但是,上述这些类型的监控项目信息以及所采集数据的时间截信息仍然是保存在历史缓冲区中的。文本缓冲区其它统计项目:free、total、used与历史缓冲区中对应的统计项目的含义相类似,在这里我们不再一一缀缀述。 |