Zabbix通过SNMP监控多核CPU使用率时, 计算CPU平均使用率

环境:没有Agent,只能通过SNMP监控时,需要获取多核CPU的平均使用率。

ZABBIX的使用SNMP监控CPU使用率时,由于设备都是多核CPU,监控的都是单独某一核心的使用率,但单独某一核使用率过高触发告警实际意义不大

所以写了一个“外部检查”查询CPU的每个核心的使用率,然后再计算该设备CPU的总体的一个使用率。

cd /usr/local/share/zabbix/externalscripts/
vim /usr/local/share/zabbix/externalscripts/sqlcpuload.sh
sqlcpuload.sh脚本内容如下
cd /home/zabbix/scripts/cpu/$1 || mkdir /home/zabbix/scripts/cpu/$1
cd /home/zabbix/scripts/cpu/$1
cat  /home/zabbix/scripts/cpuload.sql | sed -e "s/CNGDCOP01/$1/g" > cpuloadT.sql
mysql -uzabbixapi -ppassword < cpuloadT.sql | awk ‘{ sum += $4; } END {print sum/(NR-1)}‘
rm -rf cpuloadT.sql
cpuload.sql查询脚本如下(实际环境可以只保留需要的平均值一栏,理论上可以缩短一丢丢查询时间)
USE zabbix;
SELECT
FROM_UNIXTIME(trends_uint.clock,‘%Y-%m-%d %H:00:00‘) AS `日期______ 时间____`,
trends_uint.value_min AS `最小值`,
trends_uint.value_avg AS `平均值`,
trends_uint.value_max AS `最大值`
FROM
trends_uint
WHERE trends_uint.itemid = ANY(
SELECT items.itemid FROM items WHERE items.hostid=
ANY(SELECT `hosts`.hostid FROM `hosts`WHERE `hosts`.`host` =
‘CNGDCOP01‘
)
AND items.key_ LIKE ‘hrProcessorLoad[%‘ AND items.key_ NOT LIKE ‘hrProcessorLoad[{%‘)

and UNIX_TIMESTAMP(now())-trends_uint.clock < 7200
order by trends_uint.itemid,trends_uint.clock desc

上面查询的该监控项的趋势数据里的最新的平均值,为的是节约查询时间。

如果数量监控数据不大,但要求比较实时,可以把trends_uint换成history_uint,缩短数据更新时间。(当然如果环境允许直接安装agent就不用这么麻烦了)

下面是官网对趋势数据的说明

---------------------------------

运行结果如下

zabbix模板中添加监控项和触发器

-------最后测试OK

				
时间: 2024-08-08 11:07:57

Zabbix通过SNMP监控多核CPU使用率时, 计算CPU平均使用率的相关文章

zabbix通过snmp监控网络设备原理

zabbix可以通过snmp协议监控网络设备(路由器.交换机等),也可以监控服务器(linux.windows等)设备 一般我们在对服务器进行网络监控的时候,一般不采用snmp接口,都采用agent的方式进行监控,添加键值就行.当然用agent的监控的方式很简单,只要选对了键值,并添加好参数就ok,我们今天以snmp接口进行监控,我们用snmp监控网络设备的时候还得用snmp接口. 用snmp协议进行监控要开启snmp服务,在linux服务器上要安装snmp服务,并且进行配置,请自己百度,本片只

Zabbix通过SNMP监控Linux主机

监控Linux: Configuration---Host---Create Host 配置Templates: Configuration---Templates---Create Template SNMP OID 的查找方法: //查看网卡的发送速率: [[email protected] ~]# snmpwalk -v 2c -c public 192.168.100.246  .1.3.6.1.2.1.2.2.1.10 IF-MIB::ifInOctets.1 = Counter32:

解决zabbix用snmp监控网络流量不准的问题

公司新上了一个新的数据中心,需要用zabbix监控华三交换机的网络流量. 配好snmp协议之后,正常都能识别,但慢慢的发现一个问题,电信的接口经常出现少数据的情况,但联通和铁通都没有什么问题. zabbix绘的图断断续续的,有时更神奇的是,流量突然下降,下降的还很离谱,从500多Mbps一下掉到40多Mbps,一度以为是交换机返回的数据有问题了. 后来在zabbix机器上抓包,发现数据包没有丢,数据也没有什么异常,不过抓的包里面,有个counter32引起注意. 然后仔细阅读snmp的文档,发现

Zabbix通过SNMP监控HP服务器硬件信息

关于Zabbix监控服务器硬的件信息,Zabbix官方网站没有提到这方面的监控思路和方法.之前我写的博文中写过关于HP服务器硬件监控的文章,大致的思路是借助HP管理工具通过脚本的方式取出硬件的信息,然后以trapper的方式通过Zabbix监控,得到好多博友的支持,在此特别的感谢.    通过脚本的方式监控服务器硬件信息,有三个缺点1)通过agent的方式会超时,取不到值.2)通过trapper的方式需要每台机器添加crontab,部署起来麻烦.3)脚本通用型查,只适合Windows机器.4)

技巧:结合Zabbix与SNMP监控嵌入式设备

在如何利用Zabbix监控网络设备三篇文章的前两篇中,我们介绍了如何通过Zabbix代理监控网络设备.但有些设备无法安装Zabbix代理,需要采用其他方法监控.需要考虑无法安装软件的嵌入式设备或应用程序.对于这些设备,可通过SNMP进行监控. 这是关于Zabbix网络监控三篇文章的第二部分.第一部分详见此处. 许多设备都提供SNMP支持.在大多数情况下,只需要进行简单的配置:开启SNMP服务,配置设备可以通过网络访问并确保安全.SNMP的默认安全配置为通过定义团体名称定义.get communi

使用Zabbix 通过SNMP监控公司防火墙

公司使用的防火墙是FortiGate 80C,现在要使用Zabbix通过SNMP方式监控它的状态.

zabbix 配置SNMP监控

什么是SNMP? 简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol).数据库模型(database schema)和一组资源对象. 该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况.现在服务器.交换机.路由器.打印机等设备都支持SNMP协议. zabbix配置SNMP思路:(zabbix服务器是Linux系统) 第一步:zabbix服务器先安装SNMP服务,配置SNMP服务,设置开

zabbix利用snmp监控路由设备

首先在路由器或者交换机上开启snmp协议: Qd-Hyatt(config)#snmp-server community public ro Qd-Hyatt(config)#snmp-server enable traps snmp Qd-Hyatt(config)#snmp-server enable traps cpu Qd-Hyatt(config)#snmp-server enable traps memory 在zabbix服务端测试: yum -y install net-snmp

zabbix通过snmp监控windows主机

前言: zabbix一个很出众的特点是它的兼容性,基本支持主流所有类型的操作系统,那么windows也是没有问题的,监控windows主机的方式比较常用的有两种:1.安装zabbix-agent,相对来说比较麻烦.(需要通过黑屏终端来进行操作)2.也就是我们今天的主角:通过snmp协议来进行监控,相对易操作,也方便操作.(因为很多业界很多的客户,windows用的都不是很熟悉,使用linux更是谈不上),只需要打开snmp,对snmp和防火墙进行配置就ok了,不需要安装任何服务. 环境: zab