Zabbix监控的外部检查脚本部署

适合于新手用Zabbix如何监控外部检查脚本部署的操作指南
上次脚本写好了,过几天老同事看了下,然后让我部署到系统上。毕竟我是个新手,记录下吧。
1, 首先我使用的是乐维公司的zabbix监控系统操作的。我们要先考虑zabbix监控的脚本调用路径是cd /usr/local/zabbix/scripts/下,那里放了好多主动监控的脚本。
Nf9zVtQE62f0c59620116.png
2,进入zabbix的配置文件,里面设置键值配好设置。
Vim usr/local/zabbix/etc/zabbix_agentd.conf修改好键值和脚本执行的参数
AZLKpWgy62f0c59c2014a.png
配置完了后,记得要重启agentservice zabbix_agentd restart
3,zabbix监控系统上面创建新的模板。
fSsps5sh62f0c5a2c6898.png
rYqDQPfq62f0c5a76e214.png
按照上面的配置好。
4,然后把模板链接到主机上,等一下就有数据了。
5,核对数据时,这个就要特别注意了,linux系统计算硬件使用的字节转换成其它单位的倍率是1000,而我们系统的转换是1024倍率。也就是说我们看到的磁盘大小是物理磁盘真实大小。我在核对的时候还以为是脚本出错了呢,多注意。
    GWE5GixS62f0c5ad86d13.png
  系统的存储转换倍率是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外部检查的工作原理,还有第一次操作,要注意的事情也是很多的,希望以后可以做个新的大的脚本采集。

技术交流欢迎加入Q群:177428068

0 条评论

请先 登录 后评论
乐维君
乐维君

350 篇文章

作家榜 »

  1. 乐维君 350 文章
  2. YOHOHO 14 文章
  3. 机灵小和尚 13 文章
  4. 我是一只小菜鸡 12 文章
  5. 细雨闲花 11 文章
  6. 御前侍卫张五哥 9 文章
  7. 。。。 8 文章
  8. 小黄人 8 文章