球球看世界

zabbix监控nginx(tengine)

andy.zhang 2017年09月07日 Linux 498 评论关闭

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)在配置里找到模板,并点导入。如下图

1.png

在这里选择文件。

2.png

nginx.xml 百度网盘下载:http://pan.baidu.com/s/1hsb3t0g

完成后,可以在这里找到

3.png

5,配置对应服务器。

4.png

如上图,选择服务器。

接着,选择模板

然后,点“选择"(由于图没截好,下图中没有。但是,实际操作中是有的。另在没有选择Template App Nginx Service这个

模板之前,链接折模板里是没有这一项的),在模板对话框里选中Template App Nginx Service 然后点"添加",再点“更新”


至此,tengine(nginx)就可以在zabbix上看到图表了。



以上信息有些来源于博客,但是图是本人所截。参考博客http://www.linuxidc.com/Linux/2017-05/143537.htm?utm_source=tuicool


发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

球球看世界

我的微信号:zxq138888888 (左侧二维码扫一扫)欢迎添加!

Tomcat使用war包发布代码--填坑