zabbix3.0自动发现磁盘并监控磁盘IO
Zabbix 版本:3.0
操作系统:Ubuntu16.04
操作环境,在被监控的主机上安装zabbix agent。安装方式为源码包安装。
简要安装步骤:
参考:https://www.zabbix.com/documentation/3.0/manual/installation/install#installation_from_sources
wget https://sourceforge.net/projects/zabbix/files/ZABBIX%20Latest%20Stable/3.0.24/zabbix-3.0.24.tar.gz/download
mv download zabbix-3.0.tar.gz
tar zxf zabbix-3.0.tar.gz
mkdir zabbix
cd zabbix
./configure --enable-agent --prefix=$HOME/zabbix make install
需要的预备知识:
我的监控方案参考很多网上的资源,具体链接就不在这里写了。
磁盘性能的数据来源主要是/proc/diskstats,其他方案用的大多数是iostat命令,但是这个命名需要安装一个包(syststat)。生产环境不能连互联网,也不想用源码包安装了,iostat取的好像也是/proc/diskstats的数据。
先了解一下这和目录下数据的含义:
A B C 1 2 3 4 5
sdb
agent安装完之后开始改配置文件。
先改一下配置文件:etc/zabbix_agentd.conf
UnsafeUserParameters=
# 把这个值改为1,因为自动发现的脚本中有一些特殊字符,被认为是不安全的因素,1表示允许这些字符存在(我的理解)如果不该,后期在Server端就会报错,原因就在这里。
然后在etc/zabbix_agentd.conf末尾加两行
# 第一行是自动发现脚本的路径
UserParameter=disk.discovery,/home/zabbix/etc/zabbix_agentd.conf.d/disk_discovery.sh
# 第二行是检测磁盘IO的脚本路径
UserParameter=disk.status[*],/home/zabbix/etc/zabbix_agentd.conf.d/disk_status.sh $ $
当然这两行可以单独写在另一个配置文件中,注意路径:
# Include=/usr/local/etc/zabbix_agentd.userparams.conf
# 在etc/zabbix_agentd.conf 中指明路径。
自动发现脚本的文件内容:
#!/bin/bash
diskarray=(`cat /proc/diskstats |grep -E "\bsd[abcdefg]\b|\bxvd[abcdefg]\b"|grep -i "\b$1\b"|awk '{print $3}'|sort|uniq >/dev/null`)
length=${#diskarray[@]}
printf "{\n"
printf '\t'"\"data\":["
for ((i=;i<$length;i++))
do
printf '\n\t\t{'
printf "\"{#DISK_NAME}\":\"${diskarray[$i]}\"}"
if [ $i -lt $[$length-] ];then
printf ','
fi
done
printf "\n\t]\n"
printf "}\n"
检测磁盘状态的脚本内容
#/bin/sh device=$
DISK=$ case $DISK in read.ops)
/bin/cat /proc/diskstats | grep "\b$device\b" | head - | awk '{print $4}' #//磁盘读的次数
;;
read.merged)
/bin/cat /proc/diskstats | grep "\b$device\b" | head - | awk '{print $5}' #//合并读完成次数
;;
read.sectors)
/bin/cat /proc/diskstats | grep "\b$device\b" | head - | awk '{print $6}' #//读扇区的次数(一个扇区的等于512B)
;;
read.ms)
/bin/cat /proc/diskstats | grep "\b$device\b" | head - | awk '{print $7}' #//磁盘读的毫秒数
;;
write.ops)
/bin/cat /proc/diskstats | grep "\b$device\b" | head - | awk '{print $8}' #//磁盘写的次数
;;
write.merged)
/bin/cat /proc/diskstats | grep "\b$device\b" | head - | awk '{print $9}' #//合并写完成次数
;;
write.sectors)
/bin/cat /proc/diskstats | grep "\b$device\b" | head - | awk '{print $10}' #//写扇区的次数(一个扇区的等于512B)
;;
write.ms)
/bin/cat /proc/diskstats | grep "\b$device\b" | head - | awk '{print $11}' #//磁盘写的毫秒数
;;
io.active)
/bin/cat /proc/diskstats | grep "\b$device\b" | head - | awk '{print $12}' #//I/O的当前进度,
;;
io.ms)
/bin/cat /proc/diskstats | grep "\b$device\b" | head - | awk '{print $13}' #//花费在IO操作上的毫秒数
;; esac
然后启动agent就可以了。启动路径在/sbin/zabbix-agentd
到此agent端的配置完成,开始在server端配置。
1.创建一个模板(可选),建议配置一个,名字根据需求写
配置--模板--创建模板
2.创建自动发现

3. 在自动发现规则里选创建监控原型(注意这里,之前有一个文章直接在监控项里创建的,误导了我一上午)

具体的监控项原型

效果图:

详细的步骤各解释后期补充
参考链接:https://idc.wanyunshuju.com/zabbix/563.html
zabbix3.0自动发现磁盘并监控磁盘IO的更多相关文章
- zabbix 添加自动发现端口并监控
最近在部署zabbix监控 有些服务器上开启的服务端口非常多 如果一个个添加监控会很繁琐,于是想到了自动发现规则 自动发现服务器上的服务端口并进行监控. 在zabbix客户端服务器上进行操作 1 ...
- zabbix—自动发现端口并监控
自动批量检查agent开放的端口 PS:如果服务器上的应用都是固定的,不会随机产生的都可以使用自动发现端口来监控: 如果服务器会随机出现端口且每次启动程序都会改变,可以采用第二种方法,来监控指定的端 ...
- zabbix3.0.4利用iostat工具监控centos主机磁盘IO
该监控基于iostat,然后iostat 命令用来监视系统输入/输出设备负载 1.安装IOSTAT工具 # yum install sysstat -y 测试iostat 查看所有硬盘io # ios ...
- zabbix3.4.8配置自动发现主机并监控
一. 自动发现功能简介 Zabbix服务器端通过网络或者主机名等方式进行客户端的扫描发现,从进行加入到监控的主机队列中,适用于批量加入多主机监控的场景. 二. 自动发现功能实施 ...
- zabbix3.x自动发现主机
在服务器比较多的情况下,配置加入群组,添加模板是非常费时费力的,所以利用自动发现主机.自动添加群组和模板是非常好的办法. 两步走 1.配置发现规则 2.配置发现动作 1.前提在服务器是上部署了agen ...
- Zabbix实现自动发现端口并监控
1.新建客户端需要的脚本 # vim discovertcpport.sh #!/bin/bash portarray=(`sudo netstat -tnlp|egrep -i "$1&q ...
- zabbix 自动发现端口服务监控教程
目录 创建数据表(收集haproxy服务的信息) 针对生成的数据表做监控 在haproxy服务机器上配置 在zabbix上添加监控 前言: 1.线上业务使用了几十上百台haproxy服务,需要针对这些 ...
- Zabbix3.0 自动邮件报障
Zabbix3.0以后,自带的邮件报警支持SSL验证了, 但是仍然没有发送复数个邮箱以及CC,BCC的功能, 因此,我们还是得用别的方法来实现邮件报障. 实现方法有很多种,我用的是PHPmailer. ...
- zabbix4.0自动发现主机
一.自动发现主机的需求 由于机房设备拆分,迁移服务器后,原来的监控失效.再重新搭建监控平台后,批量主机手动添加真的是很麻烦. 所以就用到了zabbix的自动发现功能 二.配置自动发现服务 配置--&g ...
随机推荐
- [Luogu2600]合并神犇(dp,贪心)
[Luogu2600]合并神犇 题目背景 loidc来到了NOI的赛场上,他在那里看到了好多神犇. 题目描述 神犇们现在正排成一排在刷题.每个神犇都有一个能力值p[i].loidc认为坐在附近的金牌爷 ...
- Codeforces Round #595 (Div. 3) 题解
前言 大家都在洛谷上去找原题吧,洛谷还是不错的qwq A 因为没有重复的数,我们只要将数据排序,比较两两之间有没有\(a_j - a_i == 1 (j > i)\) 的,有则输出 \(2\) ...
- React / Vue 跨端渲染原理与实现探讨
跨端渲染是渲染层并不局限在浏览器 DOM 和移动端的原生 UI 控件,连静态文件乃至虚拟现实等环境,都可以是你的渲染层.这并不只是个美好的愿景,在今天,除了 React 社区到 .docx / .pd ...
- deque的简单使用
depue 是python提供的一个数据结构,线程安全,功能比list强大 from collections import deque user_list = ['admin', 'root'] us ...
- ht-5 treemap特性
(1)TreeMap类通过使用红黑树实现Map接口 (2)TreeMap提供按排序顺序存储键值对的有效手段,同时允许快速检索 (3)不同于散列映射,树映射保证它的元素按键的自然顺序升序排列 (4)Tr ...
- FMDB复习
// colum/列/字段// row/行/记录// 主键的作用是唯一标识一条记录// sql语句注意:不区分大小写,以分号结束(不要分号也行?) // 如果增加字段,可能要指定数据类型,S ...
- Reporting Services 配置工具
使用 Reporting Services 配置管理器可配置 Reporting Services 安装.如果使用“仅文件”选项安装报表服务器,则必须使用此工具来配置服务器,才能使用该服务器.如果使用 ...
- 状压DP常用操作
1. 判断一个数字x二进制下第i位是不是等于1. 方法:if ( ( ( 1 << ( i - 1 ) ) & x ) > 0) 将1左移i-1位,相当于制造了一个只有第i位 ...
- vue双向数据绑定对于数组和新增对象属性不能监听的解决办法
出现数组不能按照索引进行跟新的原因是处于性能考虑的,但是整体数组的增加删除是可以监听到的:对于对象新增属性不能监听是因为没有在生成vue实例时候放进watcher收集依赖. 首先我们先来了解vue数据 ...
- 1207D Number Of Permutations
题目大意 给你n个二元组 问你有几种排列是的按两个关键字中的任意一个都不是不降排列的 分析 不妨容斥 我们先加上总的方案数$n!$ 之后我们按第一个关键字排序 因为值相同的情况下不影响答案 所以让总方 ...