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监控项目,形成图表,就可以实现分析每天的数据是多少;
- 需求
- 解决方法:
- 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 ~]#
- 在客户端上编辑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 ~]#
- 检查自定义的脚本是否被识别
- 到服务端(A机器)验证,执行命令,server无法获取数据
- 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天
- 应用集:可以不选择,因为没有定义应用集
- 在添加该项目后,还需要添加图形,配置——>主机——>图形——>创建图形
- 名称为创建并发链接数——>然后添加监控项 并发链接数——>点击添加
- 在图形中,查看新创建的图形,然后选择预览
- 若是网站访问量很大,那么每隔30秒就可以看到一个数字,时间长了,就可查看到网站访问量的趋势
- 做一个触发器,选择触发器——>创建触发器
- 当并发大于200,做警告级别
- 这样触发器就配置成功
总结:
- 在服务端上获取数值(通过脚本实现),给予服务端访问脚本的权限,在zabbix监控中心添加对应的监控项目(输入键值),即可