自定义监控,调用脚本。
一、监控nginx服务器
1、环境准备:
主机192.168.80.138,nginx支持状态查询
tar -xvf nginx-1.17.3.tar.gz
cd nginx-1.17.3
./configure --with-http_stub_status_module
make && make install
2、修改nginx配置文件
vim /usr/local/nginx/conf/nginx.conf
server {
...
location /status {
stub_status on; #开启状态页面,通过192.168.80.138/status访问
}
...
}
3、编写脚本:
# 通过curl -s获取状态页面上的信息,这里只获取部分信息
vim /usr/local/bin/nginx_status.sh
#!/bin/bash
case $1 in
"active")
curl -s http://192.168.80.138/status | awk 'NR==1{print $3}';; #第一行,第三列
"accepts")
curl -s http://192.168.80.138/status | awk 'NR==3{print $1}';; #第三行,第一列
"waiting")
curl -s http://192.168.80.138/status | awk 'NR==4{print $6}';; #第一行,第三列
esac
4、创建自定义监控项:
# 首先要在配置文件开启自定义监控,并且指定监控文件的目录
vim /usr/local/etc/zabbix_agentd.conf.d/nginx.status
UserParameter=nginx.status[*],/usr/local/bin/nginx_status.sh $1
# [*]表示获取的参数,然后把获取到的参数传递给$1
# 调用方式:nginx.status[active]
5、测试:
killall -9 zabbix_agentd
zabbix_agentd
zabbix_get -s 127.0.0.1 -k nginx.status[active]
6、配置监控服务器:(通过web页面)
配置-->模板-->创建模板
nginx_status模板-->应用集-->创建应用集
nginx_status模板-->监控项-->创建监控项
# 一个监控项对应一条命令
# nginx.status[active],nginx.status[accepts],nginx.status[waiting]
键值对应了自定义监控文件中的命令
这里只创建了一个nginx.status[active]
配置-->主机-->nginx_client1-->模板
检测中-->最新数据
写总结的第五十八天!!!