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外部检查的工做原理,还有第一次操做,要注意的事情也是不少的,但愿之后能够作个新的大的脚本采集。










































linux

相关文章
相关标签/搜索