锋盈数科-知识库 Logo
首页
软件开发
计算机基础
Hello Halo
新手必读
关于本知识库
登录 →
锋盈数科-知识库 Logo
首页 软件开发 计算机基础 Hello Halo 新手必读 关于本知识库
登录
  1. 首页
  2. zabbix
  3. zabbix监控进程占cpu、内存、磁盘RAID情况

zabbix监控进程占cpu、内存、磁盘RAID情况

0
  • zabbix
  • 发布于 2024-12-16
  • 12 次阅读
黄健
黄健

点击蓝字 关注我们

1、cpu达到90%时报警

名称: cpu user percent gt 90%

表达式:{Template OS Linux:system.cpu.util[,idle].avg(1m)}<10

2、内存达到80%时报警

配置—主机(选择监控主机)—监控项—创建监控项

1、创建监控项

名称:内存使用率

类型:可计算的

键值:vm.memory.size[usedpercent]

公式:

100*(last(“vm.memory.size[total]“)-last(“vm.memory.size[available]“))/last(“vm.memory.size[total]“)

信息类型:数字(无正负)

更新间隔:5s

2、创建触发器

配置—主机(选择监控主机)—触发器—创建触发器

名称: Memory used percent more than 80%

表达式: {192.168.88.16:vm.memory.size[usedpercent].avg(1,60)}>80

3、创建图形

3、内存达到80%时报警

1、增加硬盘使用量的监控项

名称:监控/磁盘空间

键值:vfs.fs.size[/,pfree]

2、增加硬盘使用量的触发器

名称: 空闲硬盘大小 小于20%

表达式:{192.168.88.16:vfs.fs.size[/,pfree].last(0)}<20

4、监控进程占cpu、内存情况

mkdir -p /usr/local/zabbix/scripts

cd /usr/local/zabbix/scripts

vi top.sh

!/bin/sh

top -b -n 1 -d 1 > /tmp/top.txt

chmod +x top.sh

./top.sh

chown zabbix /tmp/top.txt

crontab -e

*/1 * * * * /usr/local/zabbix/scripts/top.sh > /dev/null 2>\&1

vi discovery_process.sh

!/bin/bash

获取占用高的10个进程

system process discovery script

proc_array=(`tail -n +8 /tmp/top.txt \| awk '{a[$NF]+=$10}END{for(k in a)print a[k],k}'\|sort -gr\|head -10\|cut -d” " -f2`)

length=$

printf “{\n”

printf '\t'“\“data\“:[”

for ((i=0;i<$length;i++))

do

printf “\n\t\t{”

printf “\“\“:\“${proc_array[$i]}\“}”

if [ $i -lt $[$length-1] ];then

printf “,”

fi

done

printf “\n\t]\n”

printf “}\n”

chmod +x discovery_process.sh

测试获取的10个进程名

./discovery_process.sh    json格式

vi process_check.sh

!/bin/bash

system process CPU\&MEM use information

mode=$1

name=$2

process=$3

mem_total=$(cat /proc/meminfo \| grep “MemTotal” \| awk '{printf “%.f”,$2/1024}')

cpu_total=$(( $(cat /proc/cpuinfo \| grep “processor” \| wc -l) * 100 ))

function mempre {

mem_pre=`tail -n +7 /tmp/top.txt \| awk '{a[$NF]+=$10}END{for(k in a)print a[k],k}' \| grep “\b${process}\b” \| cut -d” " -f1`

echo “$mem_pre”

}

function memuse {

mem_use=`tail -n +7 /tmp/top.txt \| awk '{a[$NF]+=$10}END{for(k in a)print a[k]/100*'''${mem_total}''',k}' \| grep “\b${process}\b” \| cut -d” " -f1`

echo “$mem_use” \| awk '{printf “%.f”,$1*1024*1024}'

}

function cpuuse {

cpu_use=`tail -n +7 /tmp/top.txt \| awk '{a[$NF]+=$9}END{for(k in a)print a[k],k}' \| grep “\b${process}\b” \| cut -d” " -f1`

echo “$cpu_use”

}

function cpupre {

cpu_pre=`tail -n +7 /tmp/top.txt\|awk '{a[$NF]+=$9}END{for(k in a)print a[k],k}'\|grep “${process}“\|cut -d” " -f1`

if [ “$cpu_pre” = “” ]

then

echo “0.0”

else

echo “$cpu_pre.0”

fi

}

case $name in

mem)

if [ “$mode” = “pre” ];then

mempre

elif [ “$mode” = “avg” ];then

memuse

fi

;;

cpu)

if [ “$mode” = “pre” ];then

cpupre

elif [ “$mode” = “avg” ];then

cpuuse

fi

;;

*)

echo -e “Usage: $0 [mode : pre\|avg] [mem\|cpu] [process]”

esac

chmod +x process_check.sh

zabbix agentd配置收集数据:

cat zabbix_agentd.conf

monitor process

UserParameter=discovery.process,/usr/local/zabbix/scripts/discovery_process.sh

UserParameter=process.check[*],/usr/local/zabbix/scripts/process_check.sh $1 $2 $3

systemctl restart zabbix_agentd

在web界面导入模板:discovery-cpu\&memory.xml

在主机添加整合图形:

内存使用率:

内存使用大小:

cpu使用率:

图形效果图:

内存使用率:

内存使用大小:

cpu使用率:

5、监控磁盘RAID的discover模板

通常,我们对硬盘当前的状态不太好确定,一般通过机房人员巡检来完成,有没有通过软件的方式来检查确定这个问题呢。MegaCli就可以做到,一般通过 MegaCli 的"Media Error Count"和"Other Error Count"这两个数值来确定阵列中磁盘是否有问题。

Medai Error Count 表示磁盘可能错误,可能是磁盘有坏道,这个值不为0值得注意,数值越大,危险系数越高;

Other Error Count 表示磁盘可能存在松动,可能需要重新再插入;

发现脚本:

!/bin/bash

raid_id_discover.sh

wuhf

num=0

RAID_stats(){

DISK=($(sudo /usr/local/MegaCli/MegaCli64 -pdlist -aALL \|grep"Slot Number”\|awk -F”:“'{print $2}'))

printf'{\n\t"data”:[\n'

for key in${DISK[@]};do

if[[“$” -gt “$num”\&\&“$num” -ne “$(($-1))“]];then

printf”\t\t{\“\“:\“$key\“},\n”

let"num++”

elif[[“$(($-1))” -eq “$num”]];then

printf”\t\t{\“\“:\“$key\“}\n”

fi

done

printf'\t]\n}\n'

}

RAID_stats

键值设置:

raid.conf

UserParameter=raid_discover,bash /usr/local/zabbix/libexec/raid_id_discover.sh

UserParameter=raid_degraded,sudo /usr/local/MegaCli/MegaCli64 -AdpAllInfo -aALL -NoLog \|grep"Degraded”\|awk'{print $NF}'

UserParameter=raid_failed_disks,sudo /usr/local/MegaCli/MegaCli64 -AdpAllInfo -aALL -NoLog \|grep"Failed Disks”\|awk'{print $NF}'

UserParameter=raid_MEC[*],sudo /usr/local/MegaCli/MegaCli64 -PDList -aAll -NoLog \|grep -A 8 “Slot Number: $1”\|grep"Media Error Count”\|awk'{print $NF}'

UserParameter=raid_OEC[*],sudo /usr/local/MegaCli/MegaCli64 -PDList -aAll -NoLog \|grep -A 8 “Slot Number: $1”\|grep"Other Error Count”\|awk'{print $NF}'

权限设置:

chmod 755 /usr/local/zabbix/libexec/raid_id_discover.sh

chown zabbix.zabbix /usr/local/zabbix/libexec/raid_id_discover.sh

chown zabbix.zabbix /usr/local/zabbix/etc/zabbix_agentd.conf.d/raid.conf

echo"zabbix ALL=(root) NOPASSWD:ALL”>> /etc/sudoers

sed -i 's/^Defaults.*.requiretty/#Defaults requiretty/' /etc/sudoers

模板导入:

说明:

要理解模板首先要了解MegaCLI命令的详情,这个百度教程有很多;我提供的模板是在zabbix-3.0的环境上运行的,低版本可能不兼容,只要理解了键值的意义自己可以自定义模板;
以上,既然看到这里了,如果觉得不错,随手点个赞、在看、转发三连吧,如果想第一时间收到推送,也可以给我个星标⭐~谢谢你看我的文章,我们,下次再见

原文链接: https://mp.weixin.qq.com/s/Yerr4Rn8KSWTSA3WL2EIKw

标签: #运维 80
相关文章

shell脚本一键部署Zabbix的实现步骤 2024-12-16 09:38

本文主要介绍了shell一键部署Zabbix的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧!

docker快速安装zabbix7.0 2024-12-16 09:38

1、安装docker (1)卸载旧版本 sudo apt-get remove docker docker-engine docker.io containerd runc (2)更新apt包索引并安装包以允许apt在HTTPS上使用存储库 sudo apt-get install -y apt-t

轻松搞定Zabbix监控部署,打造高效运维利器! 2024-12-16 09:38

点击蓝字 关注我们 安装环境: 系统:centos7.5 nginx版本:nginx-1.15.3.tar.gz php版本:php-5.6.36.tar.gz mysql版本:mysql-5.7 zabbix版本:zabbix-4.0.0.tar 1、部署Nginx 1.1、安装依赖包 wget

zabbix监控域名到期时间 2024-12-16 09:38

点击蓝字 关注我们 1、自定义监控项 在zabbix server端这里面创建一个监控项 cd /etc/zabbix/zabbix_agentd.d ``` # vi domain_certificate_check.conf ``` UserParameter=https.remaining

zabbix监控rabbitmq消息队列服务 2024-12-16 09:38

点击蓝字 关注我们 1、脚本文件 cat rabbitmq_queues.sh !/bin/bash source /etc/profile rabbitmqctl list_connections name state \|grep -Ev 'List\|name' >/tmp/rabbitmq_

zabbix监控mysql服务器 2024-12-16 09:38

点击蓝字 关注我们 监控指标: 实例状态 连接数 流量 增删改查 缓冲池大小与利用率 1、编写监控数据采集脚本 cat /etc/my.cnf #创建一个普通用户用于免交互 [mysql] host=192.168.0.14 user=wp password=MyNewPass4! [mysqlad

目录

IT 外包服务商

  • 意见投递
  • zyf6619

软件开发应用

主菜单

  • 首页
  • 软件开发
  • 计算机基础
  • Hello Halo
  • 新手必读
  • 关于本知识库
Copyright © 2024 your company All Rights Reserved. Powered by Halo.