[技术干货] Zabbix监控的外部检查脚本部署-新手操作指南

[复制链接]
乐维 发表于 2020-11-2 11:09:13 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

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





上一篇:sudo导致zabbix断图问题及解决办法
下一篇:Zabbix监控Linux系统所有磁盘的总空间大小脚本
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝0

帖子256

发布主题

乐维社区

微信公众号

版权所有 © 2016-2019 九一乐维丨粤ICP备17007026号