zabbix监控配置(六)——自定义监控项【nginx、php-fpm、mariadb】

zabbix是一个分布式监控系统,无论是在监控还是在告警上面都是很灵活的。有时候我们想让被监控端执行一个zabbix没有预定义的检测,zabbix的用户自定义参数功能提供了这个方法。今天介绍一下如何通过自定义key值进行监控告警,为了试验的方便和快速理解。我们先了解一下zabbix-agent的客户端配置文件
zabbix-agent配置文件:

EnableRemoteCommands = 1
#是否允许在本地执行远程命令,建议设置为允许.0表示不允许
LogRemoteCommands = 1
#启用已执行shell命令的日志记录作为警告,0表示关闭
Server=x.x.x.x,127.0.0.1
#被动模式下指定服务端ip地址.允许接收传入的主机ip
ListenPort=10050
#客户端端口,服务端将通过此端口获取数据
StartAgents = 5
#被动模式下开启的线程数量。
ServerActive=x.x.x.x:10051
#主动模式下:向服务端提交数据。指定服务端端口和ip
Hostname=xxxx
#主动模式下制定的主机名,必须与服务器端控制台配置的主机名一致
RefreshActiveChecks=60
#被监控的主机多久(秒)重新请求二级代理或服务端刷新一监控列表
BufferSend=6
#多少秒后,将BUFFER中的数据提交到二级代理或服务端。
BufferSize=100
#此参数作用设置保存采集数据在内存中的容量大小
Timeout=20
#当agent采集一个数据时,多长少算超时。建议保持默认
AllowRoot=0
#是否以root的身份执行命令,0表示关闭
UnsafeUserParameters=1
#是否允许启用不安全的用户自定义key,1启用,0不启用
UserParameter=<key>,<shell command>
#自定义监控项,由自定义key和shell命令组成,也可以是脚本的路径
Include=/etc/zabbix/zabbix_agentd.d/*.conf
#zabbix_agent的子配置文件,建议在此路径下新建配置文件

所谓的自定义key就是在zabbix agent端的配置文件上由用户通过UserParameter指令定义的key
一、监控nginx状态
1、配置好nginx的状态页信息

[root@centos7 nginx]# vim ./nginx.conf
   server {
   
   
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;
        location /nginx_status {
   
   
                stub_status;
        	}
        }

测试
[root@centos7 nginx]# curl -s http://192.168.147.131/nginx_status
Active connections: 1 
server accepts handled requests
 20 20 20 
Reading: 0 Writing: 1 Waiting: 0 

2、在/etc/zabbix/zabbix_agentd.d目录下编辑 userparameter_nginx.conf配置文件,通过UserParameter定义自定义key,格式为UserParameter=,。也可以在主配置文件中直接使用UserParameter指令自定义key。(为了方便后期管理,不建议这样操作)
这里的自定义key名称是nginx.status[],是带有参数的。其中“$1”表示nginx.status[]这个自定义key要向脚本传递的参数

[root@centos7 zabbix_agentd.d]# pwd
/etc/zabbix/zabbix_agentd.d
[root@centos7 zabbix_agentd.d]# cat userparameter_nginx.conf 
UserParameter=nginx.status[*],/data/scripts/nginx_status.sh $1

3、在指定目录下(这里是/data/scripts/)编写监控nginx状态的脚本文件。
脚本解析:在脚本中定义的不同的函数,然后通过自定义key传递不同的参数来调用。

[root@centos7 scripts]# vim nginx_status.sh 
#!/bin/bash
#
host='192.168.147.131'
port='80'

ping () {
   
   
	if  killall -s 0 nginx &> /dev/null;then
		 #echo "nginx is alive"
		echo 1
	else
		#echo "nginx is dead"
		echo 0	
	fi
}
active () {
   
   
	#curl -s http://${host}:${port}/nginx_status | awk '/^Active/{print $0}'
	curl -s http://${host}:${port}/nginx_status | awk '/^Active/{print $3}'

}
accept () {
   
   
	curl -s http://${host}:${port}/nginx_status | awk 'NR==3  {print $1}'
}
handled () {
   
   
        curl -s http://${host}:
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值