zabbix怎么把所有主机的cpu占用图ajax请求数据放到页面一个页面

&&国之画&&&&&&
版权所有 京ICP备号-2
迷上了代码!Zabbix与RRDtool绘图篇(2)_创建每台主机每张图的rrd文件 - 为程序员服务
Zabbix与RRDtool绘图篇(2)_创建每台主机每张图的rrd文件
RRDtool对于图形展示有多优秀,想必懂的人都知道。 兵马未动粮草先行。搞IT的得手册先行RRDtool的官方手册地址&还有ailms整理的” 该教材通俗易懂,先膜拜下!基本看了alims的 那个教程就对RRDtool清楚了。 我创建每台主机每张rrd文件用的是多线程,遍历每张图的时间大概12秒的样子,千张图的rrd文件创建大概2分钟的样子,主要受硬件的限制,如果 有更快的硬盘和更多的线程应该会快不少。rrd文件分类参考了cacti的风格,创建的rrd文件按主机ID分文件夹存放(hostid),每张图的名称 由图形ID和.rrd后缀组成(graphid.rrd)。
创建每个rrd文件的py模块如下,写的有点笨,有多少个不同的item组成的图形就得定义不同的创建函数,我找了一个下午都没有找到更好的传参方法,先 就用这个笨方法。记住有几种DS就需要写对应的Item函数,下面我只列出Item03,我是不会告诉你们我总共堆了24个一直到Item24#!/usr/bin/env python
#coding=utf-8
import rrdtool
def Item01(rrdname, startStamp, DS):
rrdtool.create(rrdname, '--step', '60', '--start', startStamp, DS[0],
'RRA:AVERAGE:0.5:1:3000',
'RRA:AVERAGE:0.5:5:4200',
'RRA:AVERAGE:0.5:24:3800',
'RRA:AVERAGE:0.5:240:4400',
'RRA:MAX:0.5:1:3000',
'RRA:MAX:0.5:5:4200',
'RRA:MAX:0.5:24:3800',
'RRA:MAX:0.5:240:4400',
'RRA:MIN:0.5:1:3000',
'RRA:MIN:0.5:5:4200',
'RRA:MIN:0.5:24:3800',
'RRA:MIN:0.5:240:4400')
def Item02(rrdname, startStamp, DS):
rrdtool.create(rrdname, '--step', '60', '--start', startStamp, DS[0],
'RRA:AVERAGE:0.5:1:3000',
'RRA:AVERAGE:0.5:5:4200',
'RRA:AVERAGE:0.5:24:3800',
'RRA:AVERAGE:0.5:240:4400',
'RRA:MAX:0.5:1:3000',
'RRA:MAX:0.5:5:4200',
'RRA:MAX:0.5:24:3800',
'RRA:MAX:0.5:240:4400',
'RRA:MIN:0.5:1:3000',
'RRA:MIN:0.5:5:4200',
'RRA:MIN:0.5:24:3800',
'RRA:MIN:0.5:240:4400')
def Item03(rrdname, startStamp, DS):
rrdtool.create(rrdname, '--step', '60', '--start', startStamp, DS[0],
DS[1], DS[2],
'RRA:AVERAGE:0.5:1:3000',
'RRA:AVERAGE:0.5:5:4200',
'RRA:AVERAGE:0.5:24:3800',
'RRA:AVERAGE:0.5:240:4400',
'RRA:MAX:0.5:1:3000',
'RRA:MAX:0.5:5:4200',
'RRA:MAX:0.5:24:3800',
'RRA:MAX:0.5:240:4400',
'RRA:MIN:0.5:1:3000',
'RRA:MIN:0.5:5:4200',
'RRA:MIN:0.5:24:3800',
'RRA:MIN:0.5:240:4400') 基本创建rrd文件的模块写好了,然后组织数据、调用函数传递相应的参数就可以了,下面是我写的一个多线程程序,同时启用16个线程工作(CPU线程数的2倍)。可更改线程数适应不同的硬件环境。#!/usr/bin/env python
#coding=utf-8
from zabbixget import Zabbix
from time import ctime
import threading
import createsub
import time, datetime
def rrd_create(grinfo):
#如果主机存放rrd图形目录不存在,则创建
bashdir = "/opt/rrd/"
path = bashdir + grinfo[0]['hostid'] + "/"
if not os.path.exists(path):
os.makedirs(path)
rrdname = str(path + grinfo[0]['graphid'] + '.rrd')
timeDaysAgo = (datetime.datetime.now() - datetime.timedelta(days = 730))
startStamp = str(int(time.mktime(timeDaysAgo.timetuple())))
for sub in grinfo:
DStmp = str('DS:' + sub['itemid'] + ':GAUGE:120:0:U')
DS.append(DStmp)
if len(DS) == 1: createsub.Item01(rrdname, startStamp, DS)
elif len(DS) == 2: createsub.Item02(rrdname, startStamp, DS)
elif len(DS) == 3: createsub.Item03(rrdname, startStamp, DS)
elif len(DS) == 4: createsub.Item04(rrdname, startStamp, DS)
elif len(DS) == 5: createsub.Item05(rrdname, startStamp, DS)
elif len(DS) == 6: createsub.Item06(rrdname, startStamp, DS)
elif len(DS) == 7: createsub.Item07(rrdname, startStamp, DS)
elif len(DS) == 8: createsub.Item08(rrdname, startStamp, DS)
elif len(DS) == 9: createsub.Item09(rrdname, startStamp, DS)
elif len(DS) == 10: createsub.Item10(rrdname, startStamp, DS)
elif len(DS) == 11: createsub.Item11(rrdname, startStamp, DS)
elif len(DS) == 12: createsub.Item12(rrdname, startStamp, DS)
elif len(DS) == 13: createsub.Item13(rrdname, startStamp, DS)
elif len(DS) == 14: createsub.Item14(rrdname, startStamp, DS)
elif len(DS) == 15: createsub.Item15(rrdname, startStamp, DS)
elif len(DS) == 16: createsub.Item16(rrdname, startStamp, DS)
elif len(DS) == 17: createsub.Item17(rrdname, startStamp, DS)
elif len(DS) == 18: createsub.Item18(rrdname, startStamp, DS)
elif len(DS) == 19: createsub.Item19(rrdname, startStamp, DS)
elif len(DS) == 20: createsub.Item20(rrdname, startStamp, DS)
elif len(DS) == 21: createsub.Item21(rrdname, startStamp, DS)
elif len(DS) == 22: createsub.Item22(rrdname, startStamp, DS)
elif len(DS) == 23: createsub.Item23(rrdname, startStamp, DS)
elif len(DS) == 24: createsub.Item24(rrdname, startStamp, DS)
def rrd_update(rrdfile, data):
def hosts_get():
zb = Zabbix()
hostsName = zb.hostsid_get()
return hostsName
#遍历每台主机每张图的每个项目的最新10的值,后来考虑到api的压力改成每张图的最新值(减少了一个for循环变量items)
def items_get(host):
bashdir = "/opt/rrd/"
graphsName = zb.hostgraph_get(host.keys())
for graph in graphsName:
grapitem = zb.graphitems_get(graph['graphid'])
rrdfile = bashdir + host.values()[0] + "/" + str(graph['graphid']) + '.rrd'
if os.path.isfile(rrdfile):
for item in grapitem:
tmp = {'itemid':item['itemid'],'lastvalue':item['lastvalue']}
data.append(tmp)
rrd_update(rrdfile, data)
print data
grinfo = []
for item in grapitem:
tmp = {'hostid': host.values()[0], 'graphid': graph['graphid'], 'itemid': item['itemid']}
grinfo.append(tmp)
rrd_create(grinfo)
def main():
threads = []
keys = hosts_get()
numkey = len(keys)
for i in range(0, numkey, 16):
nkeys = range(loop*16, (loop+1)*16, 1)
for i in nkeys:
if i &= numkey:
t = threading.Thread(target=items_get, args=(keys[i],))
threads.append(t)
for i in nkeys:
if i &= numkey:
threads[i].start()
for i in nkeys:
if i &= numkey:
threads[i].join()
loop = loop + 1
if __name__ == "__main__":
main() 上面还有更新数据的函数没有写完,用pass站位。过多的解释就不用了,对着相应的注释大家都应该看的懂。
关注Linux运维技术及互联网的IT科技博客
原文地址:, 感谢原作者分享。
您可能感兴趣的代码zabbix入门到精通之Zabbix对linux主机的监控 - 服务器技术综合 - 次元立方网 - 电脑知识与技术互动交流平台
zabbix入门到精通之Zabbix对linux主机的监控
我们大概了解了怎么对台主机进行监控,主要步骤设计到添加主机,并且为主机添加监控项,这里主要为item,然后在item的基础上对item进行绘图并且通过screen的方式把不同的监控图像汇总到一张screen上。通过对quick章节我们认识到item监控项在zabbix中是非常重要的,而item的监控是通过key来定义的,key又分为系统预定义好的key和自定义的key组成,这一节,我们通过对zabbix预定义的内存key来了解一下key到底是怎么组成和怎么使用的。
vm.memory.size[&mode&]
total (default), active,anon,
&buffers, cached, exec, file, free, inactive
&pinned, shared, wired, used, pused, available, pavailable
Numeric (unsigned)
&vm.memory.size[total]
vm.memory.size[total]
vm.memory.size[total]
vm.memory.size[total]
system.swap.in[&device&,&type&]
Type:count,sectors pages
Numeric (unsigned)
system.swap.in[,pages]
system.swap.out[&device&,&type&]
Type:count,sectors pages
Numeric (unsigned)
system.swap.out[,pages]
上图为所有与内存相关的key已经与之相对应的参数,单位,例子等相关信息,下面我将通过一个例子来展示怎么添加一个合适的内存key并且填写与之对应的单位,返回值等信息在zabbix添加item项时。
例1:监控主机的总内存,剩余内存。
&&&&&& 通过图表和截图我们可以很方便的看出来相关的对应关系。截图中的key:vm.memory.size[total] 中的对应图表中的key&vm.memory.size[&mode&]而中括号中的mode这对应图表中的参数,这里为total,当然了大家也可以根据需要填写,比如监控内存以及使用的大小,这可以写成vm.memory.size[used] 。截图中的单位对应图表中的单位B,等等对应关系很容易看出来,这里就不多说了。然后大家按照quick章节中的实例为item绘图然后加入到screen里就可以了。
1.1&Zabbix对linux网卡的监控
Linux对网卡的监控的基本思路和监控其他linux项目没什么区别第一步添加linux主机,第二步为linux主机添加网卡相对应的item,任何在item的基础上绘制graph然后把graph集中添加到一张screen上方便集中展示。下面的图表为监控网卡流量用到的相关key。
net.if.in[if,&mode&]
Bytes,packets errors,dropped
Numeric (unsigned)
net.if.in[eth0,errors]
net.if.in[eth0]
net.if.out[if,&mode&]
Bytes,packets errors,dropped
Numeric (unsigned)
net.if.out[eth0,errors]
net.if.out[eth0]
net.if.total[if,&mode&]
Bytes,packets errors,dropped
Numeric (unsigned)
net.if.total[eth0,errors]
net.if.total[eth0]
这里需要主要添加item的时候数据存储类型store value要选择为Delta(speed per second)
例1:对linux主机eth0网卡进口流量的监控item
例2:对linux主机eth0网卡出口流量的监控item
为linux主机eth0网卡的进出网卡绘图。
1.1&Zabbix对cpu的监控
system.cpu.load[&cpu&,&mode&]
Cpu:all ,percpu
Avg1,avg5,avg15
Numeric (float)
system.cpu.load[,avg5]
system.cpu.num[&type&]
Online,max
Numeric (unsigned)
system.cpu.num
system.cpu.switches
Numeric (float)
system.cpu.switches
system.cpu.util[&cpu&,&type&,&mode&]
Cpu:all,number
Type:idle, nice, user,iowait,interrupt, softirq, steal
Mode:avg1,av5,avg15
Numeric (float)
system.cpu.util[0,user,avg5]
例1:linux主机cpu的负载item
linux主机cpu利用率绘图
1.1&Zabbix对磁盘的监控
首先我们添加主机,并且为主机添加一个item,然后在item上填写相关内容,其中key安装下面的格式来填写。
vfs.fs.size[fs,&mode&]
fs:文件系统
mode:total(默认)
free,used,pfree,pused
Numeric (unsigned)
vfs.fs.size[/tmp,free]
vfs.file.size[file]
Numeric (unsigned)
vfs.file.size[/var/log/syslog]
下图为监控/分区空间剩余大小的item截图。
为item绘图
1.1把监控的图像放入到一张screen中
创建screen:configure&screen&create screen,这里创建了一张名为test,2行2列的screen。
创建后入下图所示:
选择change后添加想要加入的graph,下图为添加内存图形(3.1中创建)到screen中,选中后双击保存按钮就行保存
依次双击change按钮添加上节 创建的4张graph图到名test的 screen中。
1.1&模板的创建
3.6.1创建模版
选择Configure&Templates&Create template
输入创建模板的名字和所在的组,然后保存即可。这时大家会发现多了一个名为test_linux但是里面的数据位空的
3.6.2向模版里导入数据
选择往模版里导入的主机的item,然后选择copy select to后双击go按钮。如下图所示
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
选择要导入的模版,然后双击copy按钮即可,同样方法可以把graph数据也导入模版里。
3.6.3 模版的使用
创建主机时选择模版按钮后点击add按钮选择关联的模版即可,最后选择save按钮进行保存。
3.6.4模版的导入导出
3.6.4.1模版的导出
选择Configure&Templates选择要导出的模版后,选择下方的Export selectd后双击go按钮,导出模版到想要保存的位置。
3.6.4.2模版的导入
选择Configure&Templates-import后双击浏览按钮后选择要导入的模版,已经导入的模版类型后双击,Import即可。 www.it165.net
延伸阅读:
目的:通过挂载的方式,可以类似访问本地磁盘的方式一...
本教程为 李华明 编著的iOS-Cocos2d游戏开发系列教程:教程涵盖关于i......
专题主要学习DirectX的初级编程入门学习,对Directx11的入门及初学者有......
&面向对象的JavaScript&这一说法多少有些冗余,因为JavaScript 语言本......
Windows7系统专题 无论是升级操作系统、资料备份、加强资料的安全及管......Zabbix监控windows的CPU利用率和其他资源
zabbix的WEB端--配置-模板--Template OS Windows--项目--创建项目
名称:UserPerfCountercpu
键值:UserPerfCountercpu
数据类型:数字的(浮点)
数据更新间隔(秒):3
应用集:CPU
将此项目添加到图片(或者筛选)
windows下的配置文件zabbix_agentd.conf添加以下文字
PerfCounter=UserPerfCountercpu,"\Processor(_Total)\%
Processor Time",3
监控其他的资源在CMD里面输入typeperf
-qx&c:\zabbix.txt
也可以参考/database/326.html
重启客户端的zabbix服务,等待1分钟左右刷新
打开C盘下的zabbix.txt文件,里面即是可监控的资源,自己再新增键值,添加windows下的配置文件zabbix_agentd.conf即可!
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。fuquanjun1013 的BLOG
用户名:fuquanjun1013
文章数:268
评论数:40
访问量:76302
注册日期:
阅读量:5863
阅读量:12276
阅读量:315840
阅读量:1029000
51CTO推荐博文
由于需要对公司特定服务进行监控,于是,通过编写脚本获取各个进程占用系统资源的信息,从而使用zabbix采集到这些数据进行特定进程的基础监控。我这主要需要监控的程序如下:nginx redis mysql tomcat sentinel mongodb openfire kafka zookeeper twemproxy mycat memcached php httpd首先,在agent端编写监控脚本,脚本内容如下:[root@monitor&sbin]$&cat&/data/zabbix/sbin/processstatus.sh&
#!/bin/bash
nginxmem(){
ps&aux|grep&"nginx"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
nginxcpu(){
&&&&ps&aux|grep&"nginx"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
nginxnum(){
&&&&ps&aux|grep&"nginx"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
redismemmem(){
&&&&ps&aux|grep&"redismem"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
redismemcpu(){
&&&&ps&aux|grep&"redismem"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
redismemnum(){
&&&&ps&aux|grep&"redismem"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
mysqlmem(){
&&&&ps&aux|grep&"mysql"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
mysqlcpu(){
&&&&ps&aux|grep&"mysql"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
mysqlnum(){
&&&&ps&aux|grep&"mysql"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
tomcatmem(){
&&&&ps&aux|grep&"tomcat"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
tomcatcpu(){
&&&&ps&aux|grep&"tomcat"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
tomcatnum(){
&&&&ps&aux|grep&"tomcat"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
sentinelmem(){
&&&&ps&aux|grep&"sentinel"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
sentinelcpu(){
&&&&ps&aux|grep&"sentinel"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
sentinenum(){
&&&&ps&aux|grep&"sentinel"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
mongodbmem(){
&&&&ps&aux|grep&"mongod"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
mongodbcpu(){
&&&&ps&aux|grep&"mongod"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
mongodbnum(){
&&&&ps&aux|grep&"mongod"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
openfiremem(){
&&&&ps&aux|grep&"openfire"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
openfirecpu(){
&&&&ps&aux|grep&"openfire"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
openfirenum(){
&&&&ps&aux|grep&"openfire"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
kafkamem(){
&&&&ps&aux|grep&"kafka"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
kafkacpu(){
&&&&ps&aux|grep&"kafka"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
kafkanum(){
&&&&ps&aux|grep&"kafka"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
zookeepermem(){
&&&&ps&aux|grep&"zookeeper"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
zookeepercpu(){
&&&&ps&aux|grep&"zookeeper"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
zookeepernum(){
&&&&ps&aux|grep&"zookeeper"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
twemproxymem(){
&&&&ps&aux|grep&"twemproxy"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
twemproxycpu(){
&&&&ps&aux|grep&"twemproxy"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
twemproxynum(){
&&&&ps&aux|grep&"twemproxy"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
mycatmem(){
&&&&ps&aux|grep&"mycat"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
mycatcpu(){
&&&&ps&aux|grep&"mycat"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
mycatnum(){
&&&&ps&aux|grep&"mycat"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
httpdmem(){
&&&&ps&aux|grep&"httpd"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
httpdcpu(){
&&&&ps&aux|grep&"httpd"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
httpdnum(){
&&&&ps&aux|grep&"httpd"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
memcachedmem(){
&&&&ps&aux|grep&"memcached"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
memcachedcpu(){
&&&&ps&aux|grep&"memcached"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
memcachednum(){
&&&&ps&aux|grep&"memcached"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
&&&&ps&aux|grep&"php"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$6};&END{print&sum}'
&&&&ps&aux|grep&"php"|grep&-v&"grep"|grep&-v&"processstatus.sh"|awk&'{sum+=$3};&END{print&sum}'
&&&&ps&aux|grep&"php"|grep&-v&"grep"|grep&-v&"processstatus.sh"|&wc&-l
case&"$1"&in
tomcatmem)
tomcatcpu)
tomcatnum)
sentinelmem)
sentinelmem
sentinelcpu)
sentinelcpu
sentinelnum)
sentinelnum
mongodbmem)
mongodbmem
mongodbcpu)
mongodbcpu
mongodbnum)
mongodbnum
openfiremem)
openfiremem
openfirecpu)
openfirecpu
openfirenum)
openfirenum
zookeepermem)
zookeepermem
zookeepercpu)
zookeepercpu
zookeepernum)
zookeepernum
twemproxymem)
twemproxymem
twemproxycpu)
twemproxycpu
twemproxynum)
twemproxynum
memcachedmem)
memcachedmem
memcachedcpu)
memcachedcpu
memcachednum)
memcachednum
echo&"Usage:&$0&{nginxmem|nginxcpu|nginxnum|redismem|rediscpu|redisnum|mysqlmem|mysqlcpu|mysqlnum|mongodbnum|tomcatmem|tomcatcpu|tomcatnum|sentinelmem|sentinelcpu|sentinelnum|mongodbmem|mongodbcpu|mongodbnum|openfiremem|openfirecpu|openfirenum|kafkamem|kafkacpu|kafkanum|zookeepermem|zookeepercpu|zookeepernum|twemproxymem|twemproxycpu|twemproxynum|mycatmem|mycatcpu|mycatnum|httpdmem|httpdcpu|httpdnum|memcachedmem|memcachedcpu|memcachednum|phpmem|phpcpu|phpnum}"
esac然后修改脚本的权限,使用:chmod +x processstatus.sh在zabbix_agentd.con.d/下面的配置文件中增加如下代码:[9kgame@monitor&zabbix_agentd.conf.d]$&cat&/data/zabbix/etc/zabbix_agentd.conf.d/process_num_cpu_mem.conf&
#monitor&process
UserParameter=process.nginx.memory,/data/zabbix/sbin/processstatus.sh&nginxmem
UserParameter=process.nginx.cpu,/data/zabbix/sbin/processstatus.sh&nginxcpu
UserParameter=process.nginx.number,/data/zabbix/sbin/processstatus.sh&nginxnum
UserParameter=process.redis.memory,/data/zabbix/sbin/processstatus.sh&redismem
UserParameter=process.redis.cpu,/data/zabbix/sbin/processstatus.sh&rediscpu
UserParameter=process.redis.number,/data/zabbix/sbin/processstatus.sh&redisnum
UserParameter=process.mysql.memory,/data/zabbix/sbin/processstatus.sh&mysqlmem
UserParameter=process.mysql.cpu,/data/zabbix/sbin/processstatus.sh&mysqlcpu
UserParameter=process.mysql.number,/data/zabbix/sbin/processstatus.sh&mysqlnum
UserParameter=process.tomcat.memory,/data/zabbix/sbin/processstatus.sh&tomcatmem
UserParameter=process.tomcat.cpu,/data/zabbix/sbin/processstatus.sh&tomcatcpu
UserParameter=process.tomcat.number,/data/zabbix/sbin/processstatus.sh&tomcatnum
UserParameter=process.sentinel.memory,/data/zabbix/sbin/processstatus.sh&sentinelmem
UserParameter=process.sentinel.cpu,/data/zabbix/sbin/processstatus.sh&sentinelcpu
UserParameter=process.sentinel.number,/data/zabbix/sbin/processstatus.sh&sentinelnum
UserParameter=process.mongodb.memory,/data/zabbix/sbin/processstatus.sh&mongodbmem
UserParameter=process.mongodb.cpu,/data/zabbix/sbin/processstatus.sh&mongodbcpu
UserParameter=process.mongodb.number,/data/zabbix/sbin/processstatus.sh&mongodbnum
UserParameter=process.openfire.memory,/data/zabbix/sbin/processstatus.sh&openfiremem
UserParameter=process.openfire.cpu,/data/zabbix/sbin/processstatus.sh&openfirecpu
UserParameter=process.openfire.number,/data/zabbix/sbin/processstatus.sh&openfirenum
UserParameter=process.kafka.memory,/data/zabbix/sbin/processstatus.sh&kafkamem
UserParameter=process.kafka.cpu,/data/zabbix/sbin/processstatus.sh&kafkacpu
UserParameter=process.kafka.number,/data/zabbix/sbin/processstatus.sh&kafkanum
UserParameter=process.zookeeper.memory,/data/zabbix/sbin/processstatus.sh&zookeepermem
UserParameter=process.zookeeper.cpu,/data/zabbix/sbin/processstatus.sh&zookeepercpu
UserParameter=process.zookeeper.number,/data/zabbix/sbin/processstatus.sh&zookeepernum
UserParameter=process.twemproxy.memory,/data/zabbix/sbin/processstatus.sh&twemproxymem
UserParameter=process.twemproxy.cpu,/data/zabbix/sbin/processstatus.sh&twemproxycpu
UserParameter=process.twemproxy.number,/data/zabbix/sbin/processstatus.sh&twemproxynum
UserParameter=process.mycat.memory,/data/zabbix/sbin/processstatus.sh&mycatmem
UserParameter=process.mycat.cpu,/data/zabbix/sbin/processstatus.sh&mycatcpu
UserParameter=process.mycat.number,/data/zabbix/sbin/processstatus.sh&mycatnum
UserParameter=process.httpd.memory,/data/zabbix/sbin/processstatus.sh&httpdmem
UserParameter=process.httpd.cpu,/data/zabbix/sbin/processstatus.sh&httpdcpu
UserParameter=process.httpd.number,/data/zabbix/sbin/processstatus.sh&httpdnum
UserParameter=process.memcached.memory,/data/zabbix/sbin/processstatus.sh&memcachedmem
UserParameter=process.memcached.cpu,/data/zabbix/sbin/processstatus.sh&memcachedcpu
UserParameter=process.memcached.number,/data/zabbix/sbin/processstatus.sh&memcachednum
UserParameter=process.php.memory,/data/zabbix/sbin/processstatus.sh&phpmem
UserParameter=process.php.cpu,/data/zabbix/sbin/processstatus.sh&phpcpu
UserParameter=process.php.number,/data/zabbix/sbin/processstatus.sh&phpnum最后重启zabbix_agentd服务service zabbix_agentd restart然后在zabbix服务端使用zabbix_get看能否取到相应的数据,像下面这样就是成功获取到了数据。[root@localhost&zabbix]184876最后,需要在zabbix中定义模板。模板附件链接在下面。如果模板无法下载可以在附件中下载模板需要注明的是内存取到的值得单位是KB,所以定义item的时候使用自定义倍数乘以1000,单位改成Byte,另外CPU占用率的值是带有小数点的一个数,所以在定义item的时候需要定义值得类型是浮点型,并且该值是占用逻辑单核的CPU占用率,所以需要定义自定义倍数,我实验中的服务器是2颗CPU,每颗CPU是8核16线程,所以自定义倍数是原来的基础上除以32,单位改成%就好。下面是做好之后的显示效果:注意这里MySQL占用cpu为0.0031%,表示占用1个核心的0.0031%,因为有32核心,所以mysql占总的cpu应该为0..0992%&
了这篇文章
附件下载:    
类别:┆阅读(0)┆评论(0)
14:16:32 14:51:26 15:17:10 15:43:37 17:17:46 15:52:31 15:49:55 16:18:44
请输入验证码:}

我要回帖

更多关于 服务主机cpu占用高 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信