zabbix自定义监控项及触发动作
zabbix自定义监控项:
- 在上一篇文章中,我们通过添加模板,zabbix自动为我们创建了很多监控项,但是往往模板中的监控项并不能满足我们业务需要,我们时常需要自己根据业务需要创建一系列的监控项,也成为自定义监控项。
- 监控项:zabbix进行监控的一个指标,zabbix中称为item,它的值由独立的key进行识别。
1. 监控redis服务:
1.1利用zabbix自带的功能创建监控项:
- 点击《配置》,然后选择《主机》,在下面双击《监控项》,注意:这里的创建监控项根据主机定义:
2. 选择创建监控项:
3. 下面可以填写你要监控的信息了填完后记得选择添加:
1.2. 自定义脚本创建监控项:
1.2.1. 修改zabbix-agent配置文件:
[root@localhost ~]# vim /etc/zabbix_agentd.conf
# 指定监控项及获取值的方式:UserParameter=redis.status,bash /data/sh/redis_status.sh# redis.status: 键(监控项)
# bash /data/sh/redis_status.sh 值(获取监控项的方式)
1.2.2. 创建脚本:
[root@localhost ~]# mkdir -p /data/sh/
[root@localhost ~]# vim /data/sh/redis_status.sh
#!/bin/bash
#killall 这个命令没有的话需要安装psmisc-22.20-16.el7.x86_64
killall -0 redis-server &>/dev/nullif [ $? -eq 0 ];thenecho 1
elseecho 0
fi
#授权,因为普通用户无法使用killall这个命令所有需要授权
[root@localhost ~]# chmod u+s /usr/bin/killall
[root@localhost ~]# chmod +x /data/sh/redis_status.sh
[root@localhost ~]# systemctl restart zabbix-agent.service
1.2.3. 测试脚本:
- 一定要先测试,脚本有没有问题,没有问题才能继续。而且,测试需要在客户端及服务端都进行测试。
###客户端测试:
#当redis进程存在时:
[root@localhost ~]# ps -ef | grep redis
redis 2543 1 0 01:26 ? 00:00:02 /usr/bin/redis-server 127.0.0.1:6379
root 2910 1687 0 01:49 pts/0 00:00:00 grep --color=auto redis
[root@localhost ~]# /data/sh/redis_status.sh
1
#停止redis服务测试:
[root@localhost ~]# systemctl stop redis.service
[root@localhost ~]# ps -ef | grep redis
root 2954 1687 0 01:51 pts/0 00:00:00 grep --color=auto redis
[root@localhost ~]# /data/sh/redis_status.sh
0
###服务端测试:
# 当redis进程存在时测试:
[root@localhost ~]# zabbix_get -s 192.168.2.20 -k "redis.status"
1
#当redis进程不存在时测试:
[root@localhost ~]# zabbix_get -s 192.168.2.20 -k "redis.status"
0
1.2.4. web界面添加监控项:
1.2.5. 查看redis.status图形:
乱码解决方法:
# 上传字体(simkai.ttf),然后替换字体,再次刷新网页即可:
[root@localhost ~]# mv -b simkai.ttf /usr/share/zabbix/assets/fonts/DejaVuSans.ttf
2. 监控nginx服务:
2.1. 修改zabbix-agent配置文件:
[root@localhost ~]# vim /etc/zabbix_agentd.conf
# 指定监控项及获取值的方式UserParameter=nginx.status[*],bash /data/sh/nginx_status.sh $1
2.2. 创建脚本:
[root@localhost ~]# vim /data/sh/nginx_status.sh
#!/bin/bash
function active {curl 192.168.2.20/status 2>/dev/null |awk 'NR==1{print $NF}'}
function accepts {curl 192.168.2.20/status 2>/dev/null | awk 'NR==3{print $1}'}
function handled {curl 192.168.2.20/status 2>/dev/null | awk 'NR==3{print $2}'}
function requests {curl 192.168.2.20/status 2>/dev/null | awk 'NR==3{print $3}'
}
function reading {curl 192.168.2.20/status 2>/dev/null | awk 'NR==4{print $2}'
}
function writing {curl 192.168.2.20/status 2>/dev/null | awk 'NR==4{print $4}'
}
function waiting {curl 192.168.2.20/status 2>/dev/null | awk 'NR==4{print $NF}'
}
$1
[root@localhost ~]# chmod +x /data/sh/nginx_status.sh
[root@localhost ~]# systemctl restart zabbix-agent.service
2.3. 测试脚本:
[root@localhost ~]# zabbix_get -s 192.168.2.20 -k nginx.status[waiting]
0
2.4. web界面添加监控项:
3.触发器:
- 触发器是对监控项采集的数据进行评估的逻辑表达式,如果接收的数据超过了可接受的状态,则触发器会被触发。
3.1. 创建触发器:
在前面课程中,我们创建了对redis服务进行监控的监控项。现在对该监控项设置一个触发器,如果监控项的值为0,则触发一系列动作。
点击配置–>主机–>触发器–>点击创建触发器
创建触发器名字及级别:
设置触发器表达式:
确认之后,可以在主机-触发器中看到刚才创建的触发器。
3.2. 验证触发器:
- 关闭nginx服务,可以在问题中看到事件。
[root@localhost ~]# systemctl stop nginx.service
- 点击检测–仪表板中问题项:
4. 动作:
- 触发器可以在当接受到某个值超过预设的值时,直观的显示出问题,但是也只是仅仅显示在web界面,监控人员还是需要时刻盯着屏幕,才能及时看到问题。这样工作效率还是没有明显提升,我们需要当这个触发器被触发时,有一个动作帮我们报警或者直接帮我们恢复故障
4.1. 自动邮件报警:
4.1.1 为监控负责人绑定媒介:
- 点击管理–>报警媒介类型–>点击Email:
- 点击配置–>用户–>点击发送使用的用户:
4.1.2. 添加动作:
- 点击配置–>动作–>创建动作
- 选择报警媒介填写内容–>点击添加–点击更新:
4.1.3. 测试:
- 把nginx服务关闭掉:
[root@localhost ~]# systemctl stop nginx
可以看的出来这里已经收到短信了
4.1.4. 自动重启服务:
- 在配置动作中,我们可以设置相应的报警媒介给工作人员报警,也可以尝试先让zabbix为我们重启相应的服务,如果多次重启都失败了,则继续报警,让负责人来处理相关问题。
- 点击动作–>操作–>选择远程命令:
zabbix自定义监控项及触发动作相关推荐
- 70 Zabbix自定义监控项
一.背景 zabbix本身提供了很多可选的监控项,可以满足绝大部分的监控需求.有时候由于业务需求,需要自定义监控项. 下面以创建监听TCP连接数自定义监控项为例,分享如何创建zabbix自定义监控项. ...
- zabbix自定义监控项-统计AP在线、离线数量(AC:H3C WX5540H)
1.3.6.1.4.1 - IANA-registered Private Enterprises 有些私有oid提供并不完全准确 # (community)替换成需要填写的可读团体名,由于不清楚 ...
- zabbix自定义监控项
1.创建自定义监控脚本,将脚本放入zabbix客户端环境/etc/zabbix/scripts下,如果没有这个文件目录,自行创建,可以先在本地执行一下脚本,确定脚本已经调通 2.执行成功后在zabbi ...
- zabbix 自定义监控项 获取nginx监控状态
本篇是基于zabbix 源码安装的 [root@localhost conf]# curl "http://192.168.0.73:8080/nginx_status" Acti ...
- Zabbix-Sender 增加自定义监控项-- Ping 到目的地链路监控--bat脚本循环运行
前言: 普通情况监控使用 UserParameter 即可,默认120s/次 上报到zabbix server(最小值60s/次). Zabbix-sender 模式配置: zabbix-sender ...
- zabbix-agent自定义监控项
用户定义参数可以用来帮助用户实现通过Zabbix agent执行非Zabbix原生的 agent check. 一条用户自定义参数配置应当使用以下语法: UserParameter=<key&g ...
- zabbix监控系列——自定义一个监控项并触发告警
一.自定义一个监控项思路 模板虽好,但是不能解决所有的监控,有些需要的监控项在模板中并没有,需要我们自己定义一个监控项,如何定义一个监控项呢?大概的流程是这样的几步 1.在插件配置文件中定义一个key ...
- @zabbix监控自定义监控项
文章目录 一.自定义监控项-SSH 1.创建自定义的监控模板(模板.应用集.监控项等都可以根据规划自行创建) 2.创建自定义监控项 3.在server端测试键值 4.在web页面查看监测结果 5.关闭 ...
- 使用 Docker 安装 Zabbix,并配置自定义监控项
使用 Docker 安装 Zabbix,并配置自定义监控项 一.Zabbix 简介 1.监控功能 2.Zabbix 工作原理 3.Zabbix 组件 4.Zabbix 进程 二.使用 Zabbix 配 ...
最新文章
- M - 非常可乐 HDU - 1495
- Java程序运行的内存分配
- 课后练习----实现窗口的切换
- 产品经理如何专业吐槽产品?友谊小船从此不再翻
- oracle11g db files,oracle11g整个DB迁移
- mysql 绕过权限检查_跳过权限检查,强制修改mysql密码
- 一位资深程序员大牛给予Java的学习路线建议
- 对于algorithm102的总结
- Redis(RedisTemplate)使用hash哈希
- 2022高教社杯数学建模思路 - 案例:Apriori-关联规则挖掘算法
- Arcgis操作系列一:shp矢量数据的面积计算
- DoS和DDoS攻击
- java知识点ppt背景图片,Java 给PowerPoint文档设置背景颜色和背景图片
- 【小程序】扫码预览时不显示图片
- ABeam Insight | 女性科技系列(3):国内外女性科技(FemTech)企业介绍
- 【数据湖Hudi-8-Hudi集成Flink-入门】
- VLAN的概念与配置
- 手机 长按删除 html5,移动端长按删除
- Photoshop鼠绘教程:逼真鲜活金鱼的绘制
- Android 点击按钮切换图片