1,为tengine添加信息点
由于tengine不像nginx那样,直接出信息,所以,要添加
模块让tengine可以浏览到信息,代码如下:
server {
listen 80 ;
server_name 127.0.0.1 ;
location /nginx-status {
stub_status on;
allow 127.0.0.1;
deny all;
access_log off;
}
location /check-status {
check_status;
allow 127.0.0.1;
deny all;
access_log off;
}
}
注:我的服务器是用一键脚本生成的配置文件,
所以,我把这个代码做成一个文件放在加载目录下面。
重启tengine
/etc/init.d/nginx reload
curl 127.0.0.1/nginx-status
Active connections: 3
server accepts handled requests request_time
5038 5038 376377 28657710
Reading: 0 Writing: 1 Waiting: 2
出现上面的信息,表示正常了。
2,添加tengine监控脚本
vim /usr/local/zabbix/share/tengine.sh (注意路径,以后会用得上)
#!/bin/bash
HOST="127.0.0.1"
PORT="80"
#Functions to return nginx stats
function active {
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
/usr/bin/curl "http://$HOST:$PORT/nginx-status" 2>/dev/null| awk NR==3 | awk '{print $3}'
}
#Run the requested function
$1
注:网上很多教程把行搞乱了,变成了注释了。
3,配置zabbix_agent的配置文件,加载一个KEYS
vim /usr/local/zabbix/etc/zabbix_agentd.conf
添加 Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/
注意,后面没有任何文件格式。把这个目录下的所有文件加载
文件内容如下:
#nginx_status_key
UserParameter=nginx.accepts,/usr/local/zabbix/share/tengine.sh accepts
UserParameter=nginx.handled,/usr/local/zabbix/share/tengine.sh handled
UserParameter=nginx.requests,/usr/local/zabbix/share/tengine.sh requests
UserParameter=nginx.connections.active,/usr/local/zabbix/share/tengine.sh active
UserParameter=nginx.connections.reading,/usr/local/zabbix/share/tengine.sh reading
UserParameter=nginx.connections.writing,/usr/local/zabbix/share/tengine.sh writing
UserParameter=nginx.connections.waiting,/usr/local/zabbix/share/tengine.sh waiting
注:网上也有教程的代码是乱的。这里/usr/local/zabbix/share/tengine.sh,这个路径和上面的一样。
完成之后,重启一下。
/etc/init.d/zabbix_agentd restart
执行命令
usr/local/zabbix/bin/zabbix_get -s 127.0.0.1 -k nginx.handled
5345
返回这样的结果就正常了。可以继续。
注:这里,指定了-k参数,所以前面的ip得是zabbix_agentd.conf里server指定的ip地址。
4,导入模板。
1)在配置里找到模板,并点导入。如下图
在这里选择文件。
nginx.xml 百度网盘下载:http://pan.baidu.com/s/1hsb3t0g
完成后,可以在这里找到
5,配置对应服务器。
如上图,选择服务器。
接着,选择模板
然后,点“选择"(由于图没截好,下图中没有。但是,实际操作中是有的。另在没有选择Template App Nginx Service这个
模板之前,链接折模板里是没有这一项的),在模板对话框里选中Template App Nginx Service 然后点"添加",再点“更新”
至此,tengine(nginx)就可以在zabbix上看到图表了。
以上信息有些来源于博客,但是图是本人所截。参考博客http://www.linuxidc.com/Linux/2017-05/143537.htm?utm_source=tuicool
发表评论