Centos7下通过zabbix监控nginx status

来源:互联网 发布:淘宝直播秒杀是真的吗 编辑:程序博客网 时间:2024/06/06 08:58

操作环境

Centos 7.2

zabbix 3.2

nginx 1.10


操作步骤

1.安装配置zabbix-server以及agent参照《Centos 7下搭建Zabbix监控软件》

2.在nginx server中启动nginx status,在nginx.conf配置文件中添加以下内容

 location /nginx_status        {                stub_status on;                access_log off;                allow 127.0.0.1;                deny all;        }

添加完成后,重启nginx

#systemctl restart nginx

下面来通过curl获取nginx status,并了解其参数值

[root@ovirt-host-227 ~]# curl http://127.0.0.1/nginx_statusActive connections: 1 server accepts handled requests 10942 10942 10942 Reading: 0 Writing: 1 Waiting: 0 

active connections – 活跃的连接数量
server accepts handled requests — 总共处理了10942个连接 , 成功创建10942次握手, 总共处理了10942个请求
reading — 读取客户端的连接数.
writing — 响应数据到客户端的数量
waiting — 开启 keep-alive 的情况下,这个值等于 active – (reading+writing), 意思就是 Nginx 已经处理完正在等候下一次请求指令的驻留连接.

3.在zabbix-agent上编辑nginx_status.sh脚本,用于zabbix_agent获取数据

#!/bin/bashHOST="127.0.0.1"PORT="80"function ping {    /sbin/pidof nginx | wc -l}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}'}$1

编辑完成后,给它授权

#chmod a+x nginx_status.sh

运行该脚本进行测试,如获取requets数值

[root@ovirt-host-227 zabbix_agentd.d]# ./nginx_status.sh requests11032

脚本完成后,下面添加UserParameter参数至zabbix-agent配置文件中,添加以下内容

###############NGINX STATUS MONITOR#################UserParameter=nginx.status[*],/etc/zabbix/zabbix_agentd.d/nginx_status.sh $1

添加完成后,重启zabbix-agent

#systemctl restart zabbix-agent

下面我们在zabbix-server端,通过zabbix_get来获取zabbix-agent也就是nginx server中的nginx status,如requests数值

[root@centos7-zabbix-193 ~]# zabbix_get -s 10.10.200.227 -p 10050 -k nginx.status[requests]11076

可以正确获取数值。

4.在zabbix web console端创建template “NGINX STATUS MONITOR”




创建item

根据zabbix-agent中的nginx_status.sh的参数,总共要创建active、reading、writing、waiting、accepts、handled、requests这7项item,下面以创建accepts为例,其他创建

方法都是相同的



所有项目创建完成后如下:



item创建完成后,我们来创建graph,根据参数的不同,创建了两个graphs






以上就完成的NGINX STATUS MONTIOR Template的创建,下面将该Template添加至zabbix-agent中



添加完成后,我们查看该zabbix-agent的graphs中,已经显示了nginx的两个图形



下面查看这两个图中的内容




以上就完成后nginx status监控的所有步骤,下面的为通过上面操作步骤所创建nginx status monitorTTemplate所导出的xml模板,可以直接导入至zabbix-server中进行使用

<?xml version="1.0" encoding="UTF-8"?><zabbix_export>    <version>3.2</version>    <date>2016-12-02T02:20:36Z</date>    <groups>        <group>            <name>Linux servers</name>        </group>    </groups>    <templates>        <template>            <template>NGINX STATUS MONITOR</template>            <name>NGINX STATUS MONITOR</name>            <description/>            <groups>                <group>                    <name>Linux servers</name>                </group>            </groups>            <applications>                <application>                    <name>nginx status</name>                </application>            </applications>            <items>                <item>                    <name>nginx status accepts</name>                    <type>0</type>                    <snmp_community/>                    <multiplier>0</multiplier>                    <snmp_oid/>                    <key>nginx.status[accepts]</key>                    <delay>30</delay>                    <history>90</history>                    <trends>365</trends>                    <status>0</status>                    <value_type>3</value_type>                    <allowed_hosts/>                    <units/>                    <delta>0</delta>                    <snmpv3_contextname/>                    <snmpv3_securityname/>                    <snmpv3_securitylevel>0</snmpv3_securitylevel>                    <snmpv3_authprotocol>0</snmpv3_authprotocol>                    <snmpv3_authpassphrase/>                    <snmpv3_privprotocol>0</snmpv3_privprotocol>                    <snmpv3_privpassphrase/>                    <formula>1</formula>                    <delay_flex/>                    <params/>                    <ipmi_sensor/>                    <data_type>0</data_type>                    <authtype>0</authtype>                    <username/>                    <password/>                    <publickey/>                    <privatekey/>                    <port/>                    <description/>                    <inventory_link>0</inventory_link>                    <applications>                        <application>                            <name>nginx status</name>                        </application>                    </applications>                    <valuemap/>                    <logtimefmt/>                </item>                <item>                    <name>nginx status active</name>                    <type>0</type>                    <snmp_community/>                    <multiplier>0</multiplier>                    <snmp_oid/>                    <key>nginx.status[active]</key>                    <delay>30</delay>                    <history>90</history>                    <trends>365</trends>                    <status>0</status>                    <value_type>3</value_type>                    <allowed_hosts/>                    <units/>                    <delta>0</delta>                    <snmpv3_contextname/>                    <snmpv3_securityname/>                    <snmpv3_securitylevel>0</snmpv3_securitylevel>                    <snmpv3_authprotocol>0</snmpv3_authprotocol>                    <snmpv3_authpassphrase/>                    <snmpv3_privprotocol>0</snmpv3_privprotocol>                    <snmpv3_privpassphrase/>                    <formula>1</formula>                    <delay_flex/>                    <params/>                    <ipmi_sensor/>                    <data_type>0</data_type>                    <authtype>0</authtype>                    <username/>                    <password/>                    <publickey/>                    <privatekey/>                    <port/>                    <description/>                    <inventory_link>0</inventory_link>                    <applications>                        <application>                            <name>nginx status</name>                        </application>                    </applications>                    <valuemap/>                    <logtimefmt/>                </item>                <item>                    <name>nginx status handled</name>                    <type>0</type>                    <snmp_community/>                    <multiplier>0</multiplier>                    <snmp_oid/>                    <key>nginx.status[handled]</key>                    <delay>30</delay>                    <history>90</history>                    <trends>365</trends>                    <status>0</status>                    <value_type>3</value_type>                    <allowed_hosts/>                    <units/>                    <delta>0</delta>                    <snmpv3_contextname/>                    <snmpv3_securityname/>                    <snmpv3_securitylevel>0</snmpv3_securitylevel>                    <snmpv3_authprotocol>0</snmpv3_authprotocol>                    <snmpv3_authpassphrase/>                    <snmpv3_privprotocol>0</snmpv3_privprotocol>                    <snmpv3_privpassphrase/>                    <formula>1</formula>                    <delay_flex/>                    <params/>                    <ipmi_sensor/>                    <data_type>0</data_type>                    <authtype>0</authtype>                    <username/>                    <password/>                    <publickey/>                    <privatekey/>                    <port/>                    <description/>                    <inventory_link>0</inventory_link>                    <applications>                        <application>                            <name>nginx status</name>                        </application>                    </applications>                    <valuemap/>                    <logtimefmt/>                </item>                <item>                    <name>nginx status reading</name>                    <type>0</type>                    <snmp_community/>                    <multiplier>0</multiplier>                    <snmp_oid/>                    <key>nginx.status[reading]</key>                    <delay>30</delay>                    <history>90</history>                    <trends>365</trends>                    <status>0</status>                    <value_type>3</value_type>                    <allowed_hosts/>                    <units/>                    <delta>0</delta>                    <snmpv3_contextname/>                    <snmpv3_securityname/>                    <snmpv3_securitylevel>0</snmpv3_securitylevel>                    <snmpv3_authprotocol>0</snmpv3_authprotocol>                    <snmpv3_authpassphrase/>                    <snmpv3_privprotocol>0</snmpv3_privprotocol>                    <snmpv3_privpassphrase/>                    <formula>1</formula>                    <delay_flex/>                    <params/>                    <ipmi_sensor/>                    <data_type>0</data_type>                    <authtype>0</authtype>                    <username/>                    <password/>                    <publickey/>                    <privatekey/>                    <port/>                    <description/>                    <inventory_link>0</inventory_link>                    <applications>                        <application>                            <name>nginx status</name>                        </application>                    </applications>                    <valuemap/>                    <logtimefmt/>                </item>                <item>                    <name>nginx status requests</name>                    <type>0</type>                    <snmp_community/>                    <multiplier>0</multiplier>                    <snmp_oid/>                    <key>nginx.status[requests]</key>                    <delay>30</delay>                    <history>90</history>                    <trends>365</trends>                    <status>0</status>                    <value_type>3</value_type>                    <allowed_hosts/>                    <units/>                    <delta>0</delta>                    <snmpv3_contextname/>                    <snmpv3_securityname/>                    <snmpv3_securitylevel>0</snmpv3_securitylevel>                    <snmpv3_authprotocol>0</snmpv3_authprotocol>                    <snmpv3_authpassphrase/>                    <snmpv3_privprotocol>0</snmpv3_privprotocol>                    <snmpv3_privpassphrase/>                    <formula>1</formula>                    <delay_flex/>                    <params/>                    <ipmi_sensor/>                    <data_type>0</data_type>                    <authtype>0</authtype>                    <username/>                    <password/>                    <publickey/>                    <privatekey/>                    <port/>                    <description/>                    <inventory_link>0</inventory_link>                    <applications>                        <application>                            <name>nginx status</name>                        </application>                    </applications>                    <valuemap/>                    <logtimefmt/>                </item>                <item>                    <name>nginx status waiting</name>                    <type>0</type>                    <snmp_community/>                    <multiplier>0</multiplier>                    <snmp_oid/>                    <key>nginx.status[waiting]</key>                    <delay>30</delay>                    <history>90</history>                    <trends>365</trends>                    <status>0</status>                    <value_type>3</value_type>                    <allowed_hosts/>                    <units/>                    <delta>0</delta>                    <snmpv3_contextname/>                    <snmpv3_securityname/>                    <snmpv3_securitylevel>0</snmpv3_securitylevel>                    <snmpv3_authprotocol>0</snmpv3_authprotocol>                    <snmpv3_authpassphrase/>                    <snmpv3_privprotocol>0</snmpv3_privprotocol>                    <snmpv3_privpassphrase/>                    <formula>1</formula>                    <delay_flex/>                    <params/>                    <ipmi_sensor/>                    <data_type>0</data_type>                    <authtype>0</authtype>                    <username/>                    <password/>                    <publickey/>                    <privatekey/>                    <port/>                    <description/>                    <inventory_link>0</inventory_link>                    <applications>                        <application>                            <name>nginx status</name>                        </application>                    </applications>                    <valuemap/>                    <logtimefmt/>                </item>                <item>                    <name>nginx status writing</name>                    <type>0</type>                    <snmp_community/>                    <multiplier>0</multiplier>                    <snmp_oid/>                    <key>nginx.status[writing]</key>                    <delay>30</delay>                    <history>90</history>                    <trends>365</trends>                    <status>0</status>                    <value_type>3</value_type>                    <allowed_hosts/>                    <units/>                    <delta>0</delta>                    <snmpv3_contextname/>                    <snmpv3_securityname/>                    <snmpv3_securitylevel>0</snmpv3_securitylevel>                    <snmpv3_authprotocol>0</snmpv3_authprotocol>                    <snmpv3_authpassphrase/>                    <snmpv3_privprotocol>0</snmpv3_privprotocol>                    <snmpv3_privpassphrase/>                    <formula>1</formula>                    <delay_flex/>                    <params/>                    <ipmi_sensor/>                    <data_type>0</data_type>                    <authtype>0</authtype>                    <username/>                    <password/>                    <publickey/>                    <privatekey/>                    <port/>                    <description/>                    <inventory_link>0</inventory_link>                    <applications>                        <application>                            <name>nginx status</name>                        </application>                    </applications>                    <valuemap/>                    <logtimefmt/>                </item>            </items>            <discovery_rules/>            <httptests/>            <macros/>            <templates/>            <screens/>        </template>    </templates>    <graphs>        <graph>            <name>nginx status</name>            <width>900</width>            <height>200</height>            <yaxismin>0.0000</yaxismin>            <yaxismax>100.0000</yaxismax>            <show_work_period>1</show_work_period>            <show_triggers>1</show_triggers>            <type>0</type>            <show_legend>1</show_legend>            <show_3d>0</show_3d>            <percent_left>0.0000</percent_left>            <percent_right>0.0000</percent_right>            <ymin_type_1>0</ymin_type_1>            <ymax_type_1>0</ymax_type_1>            <ymin_item_1>0</ymin_item_1>            <ymax_item_1>0</ymax_item_1>            <graph_items>                <graph_item>                    <sortorder>0</sortorder>                    <drawtype>0</drawtype>                    <color>1A7C11</color>                    <yaxisside>0</yaxisside>                    <calc_fnc>2</calc_fnc>                    <type>0</type>                    <item>                        <host>NGINX STATUS MONITOR</host>                        <key>nginx.status[active]</key>                    </item>                </graph_item>                <graph_item>                    <sortorder>1</sortorder>                    <drawtype>0</drawtype>                    <color>F63100</color>                    <yaxisside>0</yaxisside>                    <calc_fnc>2</calc_fnc>                    <type>0</type>                    <item>                        <host>NGINX STATUS MONITOR</host>                        <key>nginx.status[reading]</key>                    </item>                </graph_item>                <graph_item>                    <sortorder>2</sortorder>                    <drawtype>0</drawtype>                    <color>2774A4</color>                    <yaxisside>0</yaxisside>                    <calc_fnc>2</calc_fnc>                    <type>0</type>                    <item>                        <host>NGINX STATUS MONITOR</host>                        <key>nginx.status[waiting]</key>                    </item>                </graph_item>                <graph_item>                    <sortorder>3</sortorder>                    <drawtype>0</drawtype>                    <color>A54F10</color>                    <yaxisside>0</yaxisside>                    <calc_fnc>2</calc_fnc>                    <type>0</type>                    <item>                        <host>NGINX STATUS MONITOR</host>                        <key>nginx.status[writing]</key>                    </item>                </graph_item>            </graph_items>        </graph>        <graph>            <name>nginx status requests</name>            <width>900</width>            <height>200</height>            <yaxismin>0.0000</yaxismin>            <yaxismax>100.0000</yaxismax>            <show_work_period>1</show_work_period>            <show_triggers>1</show_triggers>            <type>0</type>            <show_legend>1</show_legend>            <show_3d>0</show_3d>            <percent_left>0.0000</percent_left>            <percent_right>0.0000</percent_right>            <ymin_type_1>0</ymin_type_1>            <ymax_type_1>0</ymax_type_1>            <ymin_item_1>0</ymin_item_1>            <ymax_item_1>0</ymax_item_1>            <graph_items>                <graph_item>                    <sortorder>0</sortorder>                    <drawtype>0</drawtype>                    <color>1A7C11</color>                    <yaxisside>0</yaxisside>                    <calc_fnc>2</calc_fnc>                    <type>0</type>                    <item>                        <host>NGINX STATUS MONITOR</host>                        <key>nginx.status[accepts]</key>                    </item>                </graph_item>                <graph_item>                    <sortorder>1</sortorder>                    <drawtype>0</drawtype>                    <color>F63100</color>                    <yaxisside>0</yaxisside>                    <calc_fnc>2</calc_fnc>                    <type>0</type>                    <item>                        <host>NGINX STATUS MONITOR</host>                        <key>nginx.status[handled]</key>                    </item>                </graph_item>                <graph_item>                    <sortorder>2</sortorder>                    <drawtype>0</drawtype>                    <color>2774A4</color>                    <yaxisside>0</yaxisside>                    <calc_fnc>2</calc_fnc>                    <type>0</type>                    <item>                        <host>NGINX STATUS MONITOR</host>                        <key>nginx.status[requests]</key>                    </item>                </graph_item>            </graph_items>        </graph>    </graphs></zabbix_export>







0 0
原创粉丝点击