zabbix入门到精通之初识用户参数User parameters

有时候当我们监控的项目在zabbix预定义的key中没有定义时,这时候我们可以通过编写zabbix的用户参数的方法来监控我们要求的项目item。形象一点说zabbix代理端配置文件中的User parameters就相当于通过脚本获取要监控的值,然后把相关的脚本或者命令写入到配置文件中的User parameter中然后zabbix server读取配置文件中的返回值通过处理前端的方式返回给用户。
用户参数的语法
UserParameter=<key>,<command>
 
其中UserParameter为关键字,key为用户自定义key名字可以随便起,<command>为我们要运行的命令或者脚本。
一个简单的例子:
UserParameter=ping,echo 1
代理程序程序将会永远的返回1当我们在服务器端添加item的key为 ping时候。
稍微复杂的例子
UserParameter=mysql.ping,mysqladmin -urootping|grep -c alive
当我们执行mysqladmin -uroot ping命令的时候如果mysq存活要返回
mysqld is alive,我们通过grep–c来计算mysqld is alive的个数,如果mysql存活着个数为1,如果不存活很明显mysqld is alive的个数为0,通过这种方法我们可以来判断mysql的存活状态。
对于zabbix代理程序程如果mysql存活状态序将当返回1,如果mysql不存活状态将返回0,当我们在服务器端添加item的key为mysql.ping时候。
 
1.2   让key接受参数
通过让key也接受参数的方法使item添加时更具备了灵活性,例如系统预定义key :vm.memory.size[<mode>],其中的mode模式就是用户要接受的参数,当我们填写为free时则返回的为内存的剩余大小,如果我们填入的为userd时这返回的是内存已经使用的大小。
相关语法
UserParameter=key[*],command
Parameter
描述
Key
Key的值在主机系统中必须是唯一的,其中*代表命令中接受的参数
命令
 
例1:
UserParameter=ping[*],echo $1
ping[0] - will always return '0'
ping[aaa] - will always return 'aaa'
 

计算机名
Ip
角色
Zabbixserver.solutionware.com.cn
192.168.200.148
服务器端
vm1-solutionware.com.cn
192.168.200.151
监控端
 
 
在代理端vm1-solutionware.com.cn的zabbix_agentd.conf配置文件中添加
UserParameter=http_request[*],/usr/bin/curl -o /dev/null -s -w %{http_code} $1
 
添加完成后重启代理端服务。
Service zabbix_agentd    restart
选择被监控主机然后添加item,如下图所示:

添加完成后双击save保存即可。