标签:练习 参数 传递参数 span highlight 不能 ... F12 命令
- 有的时候zabbix提供的监控项目,不能满足我们生产环境下的监控需求,此时我们就要按照zabbix的规范自定义监控项目,达到监控的目的
- zabbix_get:模拟zabbix_server和agent获取数据
- item: Items是从agnet主机里面获取的所有数据。通常情况下我叫itme为监控项,item由key+参数组成
- Key:我们可以理解为key是item的唯一标识,在agent端有很多监控项,zabbix-server根据key区分不同的监控项
- trigger:触发器是建立在item数据上的,具有阈值触发事件的功能
基本格式: :.()}
server:agent名称,加入主机时配置的
key:就是上面说的key
function:对阈值进行操作的函数,以下函数
operate:表达式
constant:常量
例如:{docker02:proc.mysql.last()}<>1
- 不用担心trigger表达式不好写,在定义好item后,在zabbix点点就自动生成了
zabbix_get -s 192.168.56.131 -p 10050 -k "proc.item[/usr/sbin/mysqld,mysql]" 【option】 # -s:指定agent地址 # -p:agent端口 # -k:指定item的key # [/usr/sbin/mysqld,mysql]:向脚本传递了两个参数,用逗号分隔
- zabbix_server通过发送key给zabbix_agent,然后agent端口根据key,把所要监控的item的最新数据返回给server端
- 自定义脚本格式
key[*],[command|sh] # <key[参数]>,<命令或者脚本> # [*]:固定格式,表示server端是否传过来参数,在命令或者脚本中用$1,23...引用,shell脚本中的引用$$1,2,3..引用, # 如果server端不传参数,[*]可以不写
2.1 修改agent端配置文件,自定义key
sudo vim /etc/zabbix/zabbix_agentd.conf
UnsafeUserParameters=1 # 默认为0,表示不允许自定义key # 监控mysql进程是否存在,[*]因为不需要server端传递参数,所以没写 UserParameter=proc.mysql,ps -ef|grep /usr/sbin/mysqld|grep -v grep|wc -l
2.2 web页面配置,加入自定义监控项
- 【配置】->【主机】,点击所要监控的主机
- 点击【监控项】
- 点击右上角【创建监控项】
- 创建监控项
- 这里的key值对应我们在agent端自定义的key
sudo service zabbix-agent restart
- 查看item返回的数据:【检测中】->【最新数据】
从图中可以看到,mysql监控项返回的数值是1,说明mysql的进程数为1,代表mysql运行正常,如果想要可以邮件报警,可以给这个自定义的item添加触发器,参考“监控进程和端口号”一章
- 执行自定义脚本监控,agent通过server端发来的参数,执行脚本返回一个结果给server
sudo vim /etc/zabbix/zabbix_agentd.conf
UserParameter=proc.item[*],/home/tuna/shelles/zabbix/user_defined.sh $1 $2 # server端要向agent端发送两个参数
vim user_defined.sh #!/bin/bash PROC=$1 # 接收用于匹配进程的字段 USER=$2 # 接收进程的开启者 ps -ef|grep "$PROC"|grep -v grep|awk ‘{if($1=="‘$USER‘"){print $2}}‘|wc -l
zabbix_get -s 192.168.56.131 -p 10050 -k "proc.item[/usr/sbin/mysqld,mysql]"
# [/usr/sbin/mysqld,mysql]:模拟server端向agent端发送了两个参数,分别是/usr/sbin/mysqld用于匹配进程,mysql:进程的所有者
标签:练习 参数 传递参数 span highlight 不能 ... F12 命令
原文地址:http://www.cnblogs.com/xiaolinstudy/p/7271861.html