環(huán)境:zabbix4.0
系統(tǒng):centos7.2
1 特定監(jiān)控某些進(jìn)程,需要寫腳本監(jiān)控
processstatus.sh 獲取cpu利用率,內(nèi)存利用率,內(nèi)存占用腳本
#!/bin/bash
#date:2019.07.11
#memnum: memory Usage amount
#mem: memory Utilization rate
#cpu: cpu Utilization rate
#nginx
nginxmemnum(){
ps aux|grep "nginx"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
nginxmem(){
ps aux|grep "nginx"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
nginxcpu(){
ps aux|grep "nginx"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#redis
redismemnum(){
ps aux|grep "redismem"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
redismem(){
ps aux|grep "redismem"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
rediscpu(){
ps aux|grep "redismem"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#mysql
mysqlmemnum(){
ps aux|grep "mysql"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
mysqlmem(){
ps aux|grep "mysql"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
mysqlcpu(){
ps aux|grep "mysql"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#tomcat
tomcatmemnum(){
ps aux|grep "tomcat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
tomcatmem(){
ps aux|grep "tomcat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
tomcatcpu(){
ps aux|grep "tomcat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#mongodb
mongodbmemnum(){
ps aux|grep "mongod"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
mongodbmem(){
ps aux|grep "mongod"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
mongodbcpu(){
ps aux|grep "mongod"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#httpd
httpdmemnum(){
ps aux|grep "httpd"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
httpdmem(){
ps aux|grep "httpd"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
httpdcpu(){
ps aux|grep "httpd"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#elasticsearch
elasticsearchmemnum(){
ps aux|grep "elasticsearch"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
elasticsearchmem(){
ps aux|grep "elasticsearch"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
elasticsearchcpu(){
ps aux|grep "elasticsearch"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#logstash
logstashmemnum(){
ps aux|grep "logstash"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
logstashmem(){
ps aux|grep "logstash"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
logstashcpu(){
ps aux|grep "logstash"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#confluence
confluencememnum(){
ps aux|grep "confluence"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
confluencemem(){
ps aux|grep "confluence"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
confluencecpu(){
ps aux|grep "confluence"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#jira
jiramemnum(){
ps aux|grep "jira"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
jiramem(){
ps aux|grep "jira"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
jiracpu(){
ps aux|grep "jira"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#crowd
crowdmemnum(){
ps aux|grep "crowd"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
crowdmem(){
ps aux|grep "crowd"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
crowdcpu(){
ps aux|grep "crowd"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#fisheye
fisheyememnum(){
ps aux|grep "fisheye"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
fisheyemem(){
ps aux|grep "fisheye"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
fisheyecpu(){
ps aux|grep "fisheye"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#frp
frpmemnum(){
ps aux|grep "frp"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
frpmem(){
ps aux|grep "frp"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
frpcpu(){
ps aux|grep "frp"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#postgres
postgresmemnum(){
ps aux|grep "postgres"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
postgresmem(){
ps aux|grep "postgres"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
postgrescpu(){
ps aux|grep "postgres"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#zabbix_agentd
zabbix_agentdmemnum(){
ps aux|grep "zabbix_agentd"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
zabbix_agentdmem(){
ps aux|grep "zabbix_agentd"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
zabbix_agentdcpu(){
ps aux|grep "zabbix_agentd"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
#filebeat
filebeatmemnum(){
ps aux|grep "filebeat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$6}; END{print sum}'
}
filebeatmem(){
ps aux|grep "filebeat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$4}; END{print sum}'
}
filebeatcpu(){
ps aux|grep "filebeat"|grep -v "grep"|grep -v "processstatus.sh"|awk '{sum+=$3}; END{print sum}'
}
case "$1" in
nginxmem)
nginxmem
;;
nginxcpu)
nginxcpu
;;
nginxmemnum)
nginxmemnum
;;
redismem)
redismem
;;
rediscpu)
rediscpu
;;
redismemnum)
redismemnum
;;
mysqlmem)
mysqlmem
;;
mysqlcpu)
mysqlcpu
;;
mysqlmemnum)
mysqlmemnum
;;
tomcatmem)
tomcatmem
;;
tomcatcpu)
tomcatcpu
;;
tomcatmemnum)
tomcatmemnum
;;
mongodbmem)
mongodbmem
;;
mongodbcpu)
mongodbcpu
;;
mongodbmemnum)
mongodbmemnum
;;
httpdmem)
httpdmem
;;
httpdcpu)
httpdcpu
;;
httpdmemnum)
httpdmemnum
;;
elasticsearchdmem)
elasticsearchdmem
;;
cpu)
elasticsearchcpu
;;
elasticsearchmemnum)
elasticsearchmemnum
;;
logstashmem)
logstashmem
;;
logstashcpu)
logstashcpu
;;
logstashnum)
logstashnum
;;
confluencemem)
confluencemem
;;
confluencecpu)
confluencecpu
;;
confluencememnum)
confluencememnum
;;
jiramem)
jiramem
;;
jiracpu)
jiracpu
;;
jiramemnum)
jiramemnum
;;
crowdmem)
crowdmem
;;
crowdcpu)
crowdcpu
;;
crowdmemnum)
crowdmemnum
;;
fisheyemem)
fisheyemem
;;
fisheyecpu)
fisheyecpu
;;
fisheyememnum)
fisheyememnum
;;
frpmem)
frpmem
;;
frpcpu)
frpcpu
;;
frpmemnum)
frpmemnum
;;
postgresmem)
postgresmem
;;
postgrescpu)
postgrescpu
;;
postgresmemnum)
postgresmemnum
;;
zabbix_agentdmem)
zabbix_agentdmem
;;
zabbix_agentdcpu)
zabbix_agentdcpu
;;
zabbix_agentdmemnum)
zabbix_agentdmemnum
;;
filebeatmem)
filebeatmem
;;
filebeatcpu)
filebeatcpu
;;
filebeatmemnum)
filebeatmemnum
;;
*)
echo "Usage: $0 {nginxmem|nginxcpu|nginxmemnum|redismem|rediscpu|redismemnum|mysqlmem|mysqlcpu|mysqlmemnum|tomcatmem|tomcatcpu|tomcatmemnum|mongodbmem|mongodbcpu|mongodbmemnum|httpdmem|httpdcpu|httpdmemnum|elasticsearchmem|elasticsearchcpu|elasticsearchmemnum|logstashmem|confluencecpu|confluencememnum|jiramem|jiracpu|jiramemnum|crowdmem|crowdcpu|crowdmemnum|fisheyemem|fisheyecpu|fisheyememnum|frpmem|frpcpu|frpmemnum|postgresmem|postgrescpu|postgresmemnum|zabbix_agentdmem|zabbix_agentdcpu|zabbix_agentdmemnum|filebeatmem|filebeatcpu|filebeatmemnum}"
esac
process.sh zabbix自定義監(jiān)控腳本
#monitor process
UserParameter=process.nginx.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh nginxmem
UserParameter=process.nginx.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh nginxcpu
UserParameter=process.nginx.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh nginxmemnum
UserParameter=process.redis.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh redismem
UserParameter=process.redis.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh rediscpu
UserParameter=process.redis.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh redismemnum
UserParameter=process.mysql.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh mysqlmem
UserParameter=process.mysql.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh mysqlcpu
UserParameter=process.mysql.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh mysqlmemnum
UserParameter=process.tomcat.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh tomcatmem
UserParameter=process.tomcat.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh tomcatcpu
UserParameter=process.tomcat.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh tomcatmemnum
UserParameter=process.mongodb.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh mongodbmem
UserParameter=process.mongodb.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh mongodbcpu
UserParameter=process.mongodb.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh mongodbmemnum
UserParameter=process.httpd.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh httpdmem
UserParameter=process.httpd.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh httpdcpu
UserParameter=process.httpd.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh httpdmemnum
UserParameter=process.elasticsearch.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh elasticsearchmem
UserParameter=process.elasticsearch.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh elasticsearchcpu
UserParameter=process.elasticsearch.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh elasticsearchmemnum
UserParameter=process.logstash.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh logstashmem
UserParameter=process.logstash.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh logstashcpu
UserParameter=process.logstash.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh logstashmemnum
UserParameter=process.confluence.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh confluencemem
UserParameter=process.confluence.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh confluencecpu
UserParameter=process.confluence.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh confluencememnum
UserParameter=process.jira.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh jiramem
UserParameter=process.jira.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh jiracpu
UserParameter=process.jira.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh jiramemnum
UserParameter=process.crowd.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh crowdmem
UserParameter=process.crowd.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh crowdcpu
UserParameter=process.crowd.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh crowdmemnum
UserParameter=process.fisheye.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh fisheyemem
UserParameter=process.fisheye.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh fisheyecpu
UserParameter=process.fisheye.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh fisheyememnum
UserParameter=process.frp.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh frpmem
UserParameter=process.frp.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh frpcpu
UserParameter=process.frp.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh frpmemnum
UserParameter=process.postgres.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh postgresmem
UserParameter=process.postgres.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh postgrescpu
UserParameter=process.postgres.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh postgresmemnum
UserParameter=process.filebeat.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh filebeatmem
UserParameter=process.filebeat.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh filebeatcpu
UserParameter=process.filebeat.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh filebeatmemnum
UserParameter=process.zabbix_agentd.memory,/etc/zabbix/zabbix_agentd.d/processstatus.sh zabbix_agentdmem
UserParameter=process.zabbix_agentd.cpu,/etc/zabbix/zabbix_agentd.d/processstatus.sh zabbix_agentdcpu
UserParameter=process.zabbix_agentd.memnumber,/etc/zabbix/zabbix_agentd.d/processstatus.sh zabbix_agentdmemnum
腳本路徑,注意權(quán)限:
/etc/zabbix/zabbix_agentd.d
[root@confluence-jira zabbix_agentd.d]# ll
total 32
-rw-r--r-- 1 zabbix zabbix 4529 Jul 11 15:49 process_num_cpu_mem.conf
-rwxr-xr-x 1 zabbix zabbix 7808 Jul 11 15:46 processstatus.sh
2 zabbix控制臺(tái)添加模板
模板下載:https://down.51cto.com/data/2463398
將模板導(dǎo)入后可根據(jù)具體需求進(jìn)行修改
cpu利用率
需要注明的是CPU占用率的值是帶有小數(shù)點(diǎn)的一個(gè)數(shù),所以在定義item的時(shí)候需要定義值得類型是浮點(diǎn)型,并且該值是占用邏輯單核的CPU占用率,所以需要定義自定義倍數(shù),我實(shí)驗(yàn)中的服務(wù)器是4顆CPU(邏輯cpu),每顆CPU是4核8線程,所以自定義倍數(shù)是原來的基礎(chǔ)上除以16(4x4),即乘以0.0625,單位改成%就好。
查看cpu邏輯cpu數(shù)
[root@confluence-jira ~]# cat /proc/cpuinfo |grep "processor"|wc -l
4
查cpu核數(shù)
[root@confluence-jira ~]# cat /proc/cpuinfo |grep "cores"|uniq
cpu cores : 4
想對(duì)cpu,核了解更多請(qǐng)參考:https://www.hhcycj.com/post/item/261.html


圖形展示如下:

內(nèi)存利用率

圖形展示如下:

內(nèi)存占用
需要注明的是內(nèi)存取到的值得單位是KB,所以定義item的時(shí)候使用自定義倍數(shù)乘以1000,單位改成Byte


圖形展示如下:

3 zabbix獲取cpu參數(shù)釋義
zabbix默認(rèn)模板自帶有cpu jumps,cpu load,cpu utilization
CPU jum
context switches per second 進(jìn)程線程切換
interrupts per second 每秒的中斷次數(shù)
就是Process(Thread)的切換,如果切換過多,會(huì)讓CPU忙于切換,也會(huì)導(dǎo)致影響吞吐量,值越高說明等待共享資源的線程數(shù)越多,每秒大量的上下文切換通常表明多個(gè)線程正在競爭共享資源

CPU load
某一段時(shí)間內(nèi),CPU正在處理以及等待CPU處理的進(jìn)程數(shù)的之和,load高說明CPU利用率低

CPU Utilization
是CPU的利用率(某一時(shí)間段內(nèi)cpu資源占用情況),通常界定80%。
