Zabbix监控的外部检查脚本部署-新手操作指南

上次脚本写好了,过几天老同事看了下,然后让我部署到系统上。毕竟我是个新手,记录下吧。
1, 首先我使用的是乐维公司的zabbix监控系统操作的。我们要先考虑zabbix监控的脚本调用路径是cd /usr/local/zabbix/scripts/下,那里放了好多主动监控的脚本。
Zabbix监控的外部检查脚本部署-新手操作指南
2,进入zabbix的配置文件,里面设置键值配好设置。
Vim usr/local/zabbix/etc/zabbix_agentd.conf修改好键值和脚本执行的参数
Zabbix监控的外部检查脚本部署-新手操作指南
配置完了后,记得要重启agent,service zabbix_agentd restart
3,在zabbix监控系统上面创建新的模板。
Zabbix监控的外部检查脚本部署-新手操作指南
Zabbix监控的外部检查脚本部署-新手操作指南
按照上面的配置好。
4,然后把模板链接到主机上,等一下就有数据了。
5,核对数据时,这个就要特别注意了,linux系统计算硬件使用的字节转换成其它单位的倍率是1000,而我们系统的转换是1024倍率。也就是说我们看到的磁盘大小是物理磁盘真实大小。我在核对的时候还以为是脚本出错了呢,多注意。
Zabbix监控的外部检查脚本部署-新手操作指南
系统的存储转换倍率是1000
还有注意的问题是:脚本里面匹配的磁盘是/dev/vba,有些磁盘确是/dev/sda的。这个其实很多系统基本一致的,所有在监控系统之前要检查下系统的磁盘类型,来修改下脚本。想要做通用版的脚本,可以用if,then条件语句多加几个磁盘的类型判断上去。
老同事毕竟有经验,提出了优化脚本,然后改成了这样:
#!/bin/bash
#磁盘总空间大小,字节单位
disk_total() {
d_t=$(fdisk -l | grep -oP '(?<=/dev/sd\S\W).' | awk '{print $3}'|awk 'BEGIN{sum=0}{sum+=$1}END{print sum}')
echo -e "${d_t}"
}
#磁盘总使用大小,单位1k
disk_used() {
d_uk=$(df | awk '{print $3}' | grep [0-9] | awk 'BEGIN{sum=0}{sum+=$1}END{print sum}')
d_u=$((1000
d_uk))
echo -e "${d_u}"
}
#剩余总空间计算
disk_free() {
d_t=$(fdisk -l | grep -oP '(?<=/dev/sd\S\W).' | awk '{print $3}'|awk 'BEGIN{sum=0}{sum+=$1}END{print sum}')
d_u=$(df | awk '{print $3}' | grep [0-9] | awk 'BEGIN{sum=0}{sum+=$1}END{print sum}')
d_f=$[${d_t}-d_u
1000]
echo -e "${d_f}"
}
case "$1" in
dt)
disk_total
;;
df)
disk_free
;;
du)
disk_used
;;
*)
echo "Usage: $0 {dt=disk_total}{df=disk_free}{du=disk_used}"
;;
esac
我认为脚本可以再优化,例如做全局变量,脚本开头再优化匹配规则,但我目前还要做其它项目的事情,所以满足了客户需求就可以了。
虽然这是一个小脚本采集数据,但重要的是明白了zabbix外部检查的工作原理,还有第一次操作,要注意的事情也是很多的,希望以后可以做个新的大的脚本采集。

猜你喜欢

转载自blog.51cto.com/14483703/2546133
今日推荐