zabbix-----2-----监控nginx的状态
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了zabbix-----2-----监控nginx的状态相关的知识,希望对你有一定的参考价值。
第一步:
在监控的电脑上安装nginx及状态模块:
yum install nginx.x86_64 nginx-all-modules.noarch
编辑nginx的配置文件:
vim /etc/nginx/nginx.conf
#关闭了ipv6 server { listen 80 default_server; # listen [::]:80 default_server;
#插入状态吗的location配置
location /nginx_status { stub_status on; access_log off; allow 192.168.56.0/24; allow 127.0.0.1; deny all; }
启动nginx服务
[[email protected] ~]# nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful [[email protected] ~]# netstat -lntup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1544/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2142/master tcp6 0 0 :::22 :::* LISTEN 1544/sshd tcp6 0 0 ::1:25 :::* LISTEN 2142/master [[email protected] ~]# nginx [[email protected] ~]# !net netstat -lntup Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 2850/nginx: master tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1544/sshd tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2142/master tcp6 0 0 :::22 :::* LISTEN 1544/sshd tcp6 0 0 ::1:25 :::* LISTEN 2142/master
下面要自定义一个conf文件,然后定义一个模板,然后倒入
[[email protected] zabbix_agentd.d]# vim nginx_status.conf UserParameter=nginx_status[*],/etc/zabbix/zabbix_agentd.d/nginx_monitor.sh $1 #上传脚本到指定的目录下 如果默认放在这个配置文件下面会当成配置文件,所以这里会修改agent的配置文件: [[email protected] zabbix_agentd.d]# vim /etc/zabbix/zabbix_agentd.conf Include=/etc/zabbix/zabbix_agentd.d/*.conf #这里给配置文件添加*.conf 来指定以*.conf为配置文件 [[email protected] zabbix_agentd.d]# cat nginx_monitor.sh #!/bin/bash NGINX_COMMAND=$1 NGINX_PORT=80 CACHEFILE="/tmp/nginx_status.txt" CMD="/usr/bin/curl http://127.0.0.1:"$NGINX_PORT"/nginx_status/" if [ ! -f $CACHEFILE ];then $CMD >$CACHEFILE 2>/dev/null fi # Check and run the script TIMEFLM=`stat -c %Y $CACHEFILE` TIMENOW=`date +%s` if [ `expr $TIMENOW - $TIMEFLM` -gt 60 ]; then rm -f $CACHEFILE fi if [ ! -f $CACHEFILE ];then $CMD >$CACHEFILE 2>/dev/null fi nginx_active(){ grep ‘Active‘ $CACHEFILE| awk ‘{print $NF}‘ exit 0; } nginx_reading(){ grep ‘Reading‘ $CACHEFILE| awk ‘{print $2}‘ exit 0; } nginx_writing(){ grep ‘Writing‘ $CACHEFILE | awk ‘{print $4}‘ exit 0; } nginx_waiting(){ grep ‘Waiting‘ $CACHEFILE| awk ‘{print $6}‘ exit 0; } nginx_accepts(){ awk NR==3 $CACHEFILE| awk ‘{print $1}‘ exit 0; } nginx_handled(){ awk NR==3 $CACHEFILE| awk ‘{print $2}‘ exit 0; } nginx_requests(){ awk NR==3 $CACHEFILE| awk ‘{print $3}‘ exit 0; } case $NGINX_COMMAND in active) nginx_active; ;; reading) nginx_reading; ;; writing) nginx_writing; ;; waiting) nginx_waiting; ;; accepts) nginx_accepts; ;; handled) nginx_handled; ;; requests) nginx_requests; ;; *) echo ‘Invalid credentials‘; exit 2; esac #给脚本授权 [[email protected] zabbix_agentd.d]# chmod +x nginx_monitor.sh #上传xml模板文件文件 [email protected] zabbix_agentd.d]# cat zbx_nginx_templates.xml <?xml version="1.0" encoding="UTF-8"?> <zabbix_export> <version>3.0</version> <date>2016-11-09T14:50:50Z</date> <groups> <group> <name>Templates</name> </group> </groups> <templates> <template> <template>Template Nginx Status</template> <name>Template Nginx Status</name> <description>Nginx监控模板</description> <groups> <group> <name>Templates</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>60</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>60</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>60</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>60</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>60</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>60</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>60</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/> <macros/> <templates/> <screens/> </template> </templates> <graphs> <graph> <name>Nginx Clients 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>Template Nginx Status</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>Template Nginx Status</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>Template Nginx Status</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>Template Nginx Status</host> <key>nginx_status[writing]</key> </item> </graph_item> </graph_items> </graph> </graphs> </zabbix_export> [[email protected] zabbix_agentd.d]#
导入模板
下面我们新创建一个主机
验证
本文出自 “圈中一鸟” 博客,谢绝转载!
以上是关于zabbix-----2-----监控nginx的状态的主要内容,如果未能解决你的问题,请参考以下文章