19.12 添加自定义监控项目

2018-02-07 11:44:50 浏览数 (1)

添加自定义监控项目

  • 需求:监控某台web的80端口连接数,并出图
  • 两步:1)zabbix监控中心创建监控项目;2)针对该监控项目以图形展现
  • 对于第一步,需要到客户端定义脚本
  • vim /usr/local/sbin/estab.sh //内容如下
代码语言:javascript复制
#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED
  • chmod 755 /usr/local/sbin/estab.sh
  • 客户端上编辑配置文件 vim /etc/zabbix/zabbix_agentd.conf//增加
代码语言:javascript复制
UnsafeUserParameters=1  //表示使用自定义脚本
UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh 
//自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数,如果没有参数则可以省略,脚本为/usr/local/sbin/estab.sh
  • 重启zabbix-agent服务 systemctl restart zabbix-agent
  • 首先到服务端验证,执行命令
  • zabbix_get -s 192.168.133.132 -p 10050 -k 'my.estab.count‘
  • 然后在zabbix监控中心(浏览器)配置增加监控项目
  • 键值写my.estab.count
  • 添加该项目后,到“监测中” “最新数据”查看刚添加的项目是否有数据出现
  • 有了数据就可以添加图形了
  • “配置”“主机” “图形” “创建图形”

添加自定义监控项目

  • zabbix的监控项目是在模板里面体现,但是有时候就会有些个性化的需求:某一个业务的数据,比如:运营人员想知道网站会员注册量,会员活跃度;实际上,这些数据,都可以通过数据库里面的表的数字来体现,但是zabbix模板是不可能提供那么详细的监控项目;遇到这种情况,就需要通过编程工具,写成脚本,把数字展现出来,然后通过zabbix监控项目,形成图表,就可以实现分析每天的数据是多少;
  • 需求
    • 监控某台web的80端口连接数,并出图
  • 解决方法:
    • 1)zabbix监控中心创建监控项目;
    • 2)针对该监控项目以图形展现;
  • 首先需要在客户端(B机器)定义脚本
代码语言:javascript复制
[root@hf-02 ~]# vim /usr/local/sbin/estab.sh

#!/bin/bash
##获取80端口并发连接数
netstat -ant |grep ':80 ' |grep -c ESTABLISHED

保存退出 
  • netstat -ant 显示网络连接的状态
  • 配置一个能够让zabbix用户执行的权限
  • chmod 755 /usr/local/sbin/estab.sh
代码语言:javascript复制
B机器
[root@hf-02 ~]# chmod 755 /usr/local/sbin/estab.sh
[root@hf-02 ~]# 
  1. 在客户端上编辑zabbix配置文件
代码语言:javascript复制
B机器
[root@hf-02 ~]# vim /etc/zabbix/zabbix_agentd.conf

搜索 /UnsafeUserParameters

将# UnsafeUserParameters=0
改为UnsafeUserParameters=1  
#目的是使用自定义脚本

搜索 /UserParameter
将# UserParameter=
改为UserParameter=my.estab.count[*],/usr/local/sbin/estab.sh 
#表示自定义监控项的key为my.estab.count,后面的[*]里面写脚本的参数,如果没有参数则可以省略,如果有参数写入到 [ ] 里面,用逗号分隔,脚本为/usr/local/sbin/estab.sh

保存退出
  • my.estab.count 这个是zabbix监控项里的 键值
  • 客户端(B机器),重启 zabbix-agent 服务
代码语言:javascript复制
B机器
[root@hf-02 ~]# systemctl restart zabbix-agent
[root@hf-02 ~]# 
  1. 检查自定义的脚本是否被识别
  2. 到服务端(A机器)验证,执行命令,server无法获取数据
  3. zabbix_get -s 192.168.202.131 -p 10050 -k 'my.estab.count'
    • -s 指定客户端的IP地址
    • -p 指定端口,不加-p,默认就是10050端口
    • -k 表示 键值
代码语言:javascript复制
A机器
[root@hf-01 ~]# zabbix_get -s 192.168.202.131 -p 10050 -k 'my.estab.count'
0
[root@hf-01 ~]#
  • 若是之前在客户端(B机器)写的脚本权限不设置成 755 ,这里的server获取数据时,就会提示 权限不够
  • 在获取数据的时候,一定要保证数据的通常,防火墙和selinux都需要去设置,否则就会有可能无法获取数据
  • 在zabbix监控中心(浏览器)配置增加监控项目,在 配置 ——> 主机 ——>创建监控项
  • 名称 写为:并发链接数
  • 类型 :选择zabbix客户端
  • 键值 写:my.estab.count——>键值可自定义,是不固定的
  • 单位 :保持默认
  • 历史数据保留时长(单位天):默认保持90天
  • 应用集:可以不选择,因为没有定义应用集
  1. 在添加该项目后,还需要添加图形,配置——>主机——>图形——>创建图形
  • 名称为创建并发链接数——>然后添加监控项 并发链接数——>点击添加
  1. 在图形中,查看新创建的图形,然后选择预览
  2. 若是网站访问量很大,那么每隔30秒就可以看到一个数字,时间长了,就可查看到网站访问量的趋势
  1. 做一个触发器,选择触发器——>创建触发器
  2. 当并发大于200,做警告级别
  1. 这样触发器就配置成功

总结:

  • 在服务端上获取数值(通过脚本实现),给予服务端访问脚本的权限,在zabbix监控中心添加对应的监控项目(输入键值),即可

0 人点赞