Ansible+zabbix利用自动发现监控Linux服务器磁盘I/O
背景
公司集群服务器一共有6台.
系统版本: Linux CentOS 7.4
zabbix版本: zabbix 3.4
监控方案
利用iostat命令监控磁盘的IO情况.下面简单介绍一下iostat命令的常用参数
1 | -c #仅显示CPU统计信息.与-d选项互斥. |
iostat显示结果的详细属性值说明:
1 | rrqm/s: 每秒进行 merge 的读操作数目.即 delta(rmerge)/s |
zabbix监控的shell脚本
- 磁盘发现脚本
1 | vim disk_discovery.sh |
2.监控磁盘IO脚本
1 | vim disk_status.sh |
我的生产环境中,由于读写IO较大,.所以rKBps和wKBps的读写量非常多大,修改上面的rkBps和wKBp.
1 | rKBps) iostat -dxkt 1 2|grep "\b$Device\b" |tail -1|awk '{ r=$6/1024} END {print r}' |
这样修改后,后续的Zabbix的相关监控项单位也要改成MB/s.因为我们已将将原来的kBps单位换算成了MBps
3.zabbix客户端配置文件
1 | vim userparameter_disk.conf |
利用Aansible将脚本下发到远程服务器
将以上3个脚本文件,放到ansible的files目录下.
ansible的playbook编排如下:
1 | --- |
可能需要检查一下zabbix的客户端配置文件是否有下面这个配置,一般默认安装后都会有下面这个配置
1 | [root@server-6 zabbix]$grep "Include" /etc/zabbix/zabbix_agentd.conf | grep -v "\#" |
zabbix web控制台配置
参考这篇文档:zabbix监控磁盘IO