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[{%')
order by trends_uint.itemid,trends_uint.clock desc
上面查询的该监控项的趋势数据里的最新的平均值,为的是节约查询时间。

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

---------------------------------
运行结果如下

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

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

Zabbix通过SNMP监控多核CPU使用率时, 计算CPU平均使用率的更多相关文章
- 自学Zabbix11.1 Zabbix 配置SNMP监控
点击返回:自学Zabbix之路 点击返回:自学Zabbix4.0之路 点击返回:自学zabbix集锦 自学Zabbix11.1 Zabbix 配置SNMP监控 1. 概述 zabbix采集数据方式: ...
- zabbix通过snmp监控网络设备
首先需要在zabbix的server端或proxy端安装snmpd服务 安装: yum -y install net-snmp* 查看版本: [root@Check3 ~]# snmpd -v NET ...
- zabbix通过snmp监控linux主机
1.安装net-snmp [root@db01 ~]# yum install -y net-snmp 2.修改配置文件 [root@db01 ~]# vim /etc/snmp/snmpd.conf ...
- zabbix通过snmp监控windows主机
1.开启Windows的snmp功能 2.配置snmp服务 设置snmp服务社区名称及允许的主机,设置完成后重启snmp服务 3.在zabbix server上测试 测试需要使用命令snmpwalk, ...
- zabbix通过SNMP监控服务器硬件及构建触发器
公司的服务器没装系统无法使用IPMI协议来监控服务器硬件信息,所以我们使用SNMP来获取,下面介绍如何通过SNMP监控服务器硬件信息. 1.HP服务器进入iLO开启SNMP协议. 2.查看服务器温度信 ...
- 025.Zabbix之SNMP监控
一 SNMP介绍及配置 1.1 SNMP介绍参考其他笔记 1.2 SNMP配置 [SW1]int vlan 1 [SW1-Vlanif1]ip address 172.24.8.13 24 [SW1- ...
- zabbix 配置SNMP监控
什么是SNMP? 简单网络管理协议(SNMP),由一组网络管理的标准组成,包含一个应用层协议(application layer protocol).数据库模型(database schema)和一组 ...
- 技巧:结合Zabbix与SNMP监控嵌入式设备
在如何利用Zabbix监控网络设备三篇文章的前两篇中,我们介绍了如何通过Zabbix代理监控网络设备.但有些设备无法安装Zabbix代理,需要采用其他方法监控.需要考虑无法安装软件的嵌入式设备或应用程 ...
- 【Zabbix】大规模监控误报发生时的处理方案
今天遇到了这样一件事..Zabbix一直在用的数据库突然间崩溃,无法连接了.在down掉的那一时刻开始,zabbix向管理员报了警.然后随之而来的是铺天盖地的所有主机zabbix agent无法连接的 ...
随机推荐
- .NET入行之工作后
成长这条路上,有一些事已经渐渐的消失模糊的脑海里,而有一些事,则历历在目,终生铭记. 一切都是从大二下学期快结束的那段培训课程开始的,从此也算是入门了,这也是一条不归路. 在.NET入行之工作前一文中 ...
- return 的返回值与结束功能
前言:大家好~我是阿飞~在js中return是很重要的基础.一定要彻底掌握理解它哦.否则js学习到中后期很容易懵逼的+_+ 什么是return? 1.在js中return是一个表达式语句,如果后面什么 ...
- 【JBoss】数据库连接配置小结(转)
数据库驱动位置: %JBOSS_HOME%\server\default\lib目录下. 数据库配置文件位置:JBOSS_HOME\docs\examples\jca\XXXX-ds.xml < ...
- 使用SAS和JavaScript前端上传Azure Bolb大文件
问题描述: Azure Storage Rest API提供了对于大文件分块上传方法,分别使用Put Block和Put Block List实现相关功能 参考链接: Uploading Large ...
- Spring MVC 中获取session的几种方法
Spring MVC 中使用session是一种常见的操作,但是大家上网搜索一下可以看到获取session的方式方法五花八门,最近,自己终结了一下,将获取session的方法记录下来,以便大家共同学习 ...
- <经验杂谈>前端form提交导出数据
之前在做列表的是总会遇到一些导出的功能,而在做导出的时候总是习惯于用get的方法将参数放在url上,这样一来就会有很多的弊端,一是url的参数长度有限,遇到有的参数很长的时候就会报错,二是也不太安全. ...
- C语言:min和max头文件
转自:http://www.cppblog.com/jince/archive/2010/09/14/126600.html min和max头文件 虽然说求最大值最小值函数在哪个头文件下并不是非常重要 ...
- 数据结构之B进制(确定进制)
#include <cstdio> int max_num(int n) { int max=0; while(n) { int k=n%10; if(k>max) max=k; n ...
- 【Vue】Vue中的父子组件通讯以及使用sync同步父子组件数据
前言: 之前写过一篇文章<在不同场景下Vue组件间的数据交流>,但现在来看,其中关于“父子组件通信”的介绍仍有诸多缺漏或者不当之处, 正好这几天学习了关于用sync修饰符做父子组件数据双向 ...
- linux下tomcat作为daemon进程运行
在linux下如果想让tomcat在开机时自启动,可以将启动代码写到/etc/rc.local里面.但是,这样的话,tomcat将以root权限运行,这是不安全的.因此,要想办法让tomcat以非特权 ...