站長資訊網
        最全最豐富的資訊網站

        Zabbix監控Nginx性能的實現方式

        nginx和php-fpm一樣內建了一個狀態頁,對于想了解nginx的狀態以及監控nginx非常有用,為了后續的zabbix監控,我們需要先啟用nginx狀態頁

        1. 啟用nginx status配置
        在默認主機里面加上location或者你希望能訪問到的主機里面。

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

        示例:

        upstream lvs_server{
         server 10.27.13.215:8555; #hd_lvs_voice01
         server 10.26.114.166:8555; #hd_lvs_voice02
         server 10.27.62.9:8555; #hd_lvs_voice03
         server 10.30.196.175:8555; #hd_lvs_voice04
         #server 10.30.196.157:8555; #hd_lvs_voice05
         }

        server {
         listen 8555;
         access_log /var/log/nginx/voice_lvs.access.log main;
         error_log /var/log/nginx/voice_lvs.error.log;

        location / {
         proxy_pass http://lvs_server;
         }

        location /index {
         proxy_set_header Host $http_host;
         proxy_set_header X-Real-Ip $remote_addr;
         proxy_set_header X-Forwarded-For $remote_addr;
         proxy_set_header Content-Type application/octet-stream;
         proxy_pass http://lvs_server;

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

        }
         

        2. 重載nginx

        # nginx -t
        # service nginx reload

        3. 打開status頁面

        # curl 127.0.0.1:8555/ngx_status
        Active connections: 2
        server accepts handled requests
        3091 3091 3254
        Reading: 0 Writing: 1 Waiting: 1

        # curl 127.0.0.1:8555/ngx_status
        Active connections: 2
        server accepts handled requests
        3092 3092 3255
        Reading: 0 Writing: 1 Waiting: 1

        4. nginx status詳解

        active connections – 活躍的連接數量
        server accepts handled requests — 總共處理了11989個連接 , 成功創建11989次握手, 總共處理了11991個請求
        reading — 讀取客戶端的連接數.
        writing — 響應數據到客戶端的數量
        waiting — 開啟 keep-alive 的情況下,這個值等于 active – (reading+writing), 意思就是 Nginx 已經處理完正在等候下一次請求指令的駐留連接.

        以上為nginx性能計數,我們除了監控以上數據,還需要監控nginx進程狀態,并且配置觸發器
        zabbix客戶端配置

        編寫客戶端腳本nginx_status.sh

        # 檢測nginx性能

        mkdir -p /usr/local/zabbix-agent/scripts
        vim /usr/local/zabbix-agent/scripts/nginx_status.sh

        #!/bin/bash
        HOST=”127.0.0.1″
        PORT=”8555″
        # 檢測nginx進程是否存在
        function ping {
         /sbin/pidof nginx | wc -l
        }

        # 檢測nginx性能

        function active {
         /usr/bin/curl “http://$HOST:$PORT/ngx_status/” 2>/dev/null| grep ‘Active’ | awk ‘{print $NF}’
        }
        function reading {
         /usr/bin/curl “http://$HOST:$PORT/ngx_status/” 2>/dev/null| grep ‘Reading’ | awk ‘{print $2}’
        }
        function writing {
         /usr/bin/curl “http://$HOST:$PORT/ngx_status/” 2>/dev/null| grep ‘Writing’ | awk ‘{print $4}’
        }
        function waiting {
         /usr/bin/curl “http://$HOST:$PORT/ngx_status/” 2>/dev/null| grep ‘Waiting’ | awk ‘{print $6}’
        }
        function accepts {
         /usr/bin/curl “http://$HOST:$PORT/ngx_status/” 2>/dev/null| awk NR==3 | awk ‘{print $1}’
        }
        function handled {
         /usr/bin/curl “http://$HOST:$PORT/ngx_status/” 2>/dev/null| awk NR==3 | awk ‘{print $2}’
        }
        function requests {
         /usr/bin/curl “http://$HOST:$PORT/ngx_status/” 2>/dev/null| awk NR==3 | awk ‘{print $3}’
        }
        # 執行function
        $1

        添加腳本執行權限

        # chmod +x /usr/local/zabbix-agent/scripts/nginx_status.sh

        zabbix客戶端配置
        將自定義的UserParameter加入配置文件,然后重啟agentd,如下:

        # vim /etc/zabbix/zabbix_agentd.conf

        UserParameter=nginx.status[*],/usr/local/zabbix-agent/scripts/nginx_status.sh $1

        重啟zabbix-agent
        /etc/init.d/zabbix-agent restart

        zabbix_get獲取數據

        此步驟可以跳過,但是最好是測試一下,因為通過此命令我們可以檢測配置是否正確

        # zabbix_get -s ip -p 10050 -k ‘nginx.status[accepts]’
        3101
        # zabbix_get -s ip -p 10050 -k ‘nginx.status[ping]’
        1

        zabbix web端配置

        導入Template App NGINX模板

        Link NGINX模板
        到了最后一個階段,登陸zabbix管理端,link模板到nginx服務器:configuration->hosts->點擊nginx所在服務器->點擊template->Link new templates輸入”Template App NGINX”->Add->最后點擊update

        監控效果

        Zabbix監控Nginx性能的實現方式

        監控模板:zbx3_export_templates.xml

        <?xml version=”1.0″ encoding=”UTF-8″?>
        <zabbix_export>
            <version>3.0</version>
            <date>2017-07-17T09:37:18Z</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</name>
                        </application>
                    </applications>
                    <items>
                        <item>
                            <name>nginx status server 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>1</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>accepts</description>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>nginx</name>
                                </application>
                            </applications>
                            <valuemap/>
                            <logtimefmt/>
                        </item>
                        <item>
                            <name>nginx status connections 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>active</description>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>nginx</name>
                                </application>
                            </applications>
                            <valuemap/>
                            <logtimefmt/>
                        </item>
                        <item>
                            <name>nginx status server 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>1</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>handled</description>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>nginx</name>
                                </application>
                            </applications>
                            <valuemap/>
                            <logtimefmt/>
                        </item>
                        <item>
                            <name>nginx status PING</name>
                            <type>0</type>
                            <snmp_community/>
                            <multiplier>0</multiplier>
                            <snmp_oid/>
                            <key>nginx.status[ping]</key>
                            <delay>60</delay>
                            <history>30</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>is live</description>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>nginx</name>
                                </application>
                            </applications>
                            <valuemap>
                                <name>Service state</name>
                            </valuemap>
                            <logtimefmt/>
                        </item>
                        <item>
                            <name>nginx status connections 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>reading</description>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>nginx</name>
                                </application>
                            </applications>
                            <valuemap/>
                            <logtimefmt/>
                        </item>
                        <item>
                            <name>nginx status server 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>1</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>requests</description>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>nginx</name>
                                </application>
                            </applications>
                            <valuemap/>
                            <logtimefmt/>
                        </item>
                        <item>
                            <name>nginx status connections 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>waiting</description>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>nginx</name>
                                </application>
                            </applications>
                            <valuemap/>
                            <logtimefmt/>
                        </item>
                        <item>
                            <name>nginx status connections 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>writing</description>
                            <inventory_link>0</inventory_link>
                            <applications>
                                <application>
                                    <name>nginx</name>
                                </application>
                            </applications>
                            <valuemap/>
                            <logtimefmt/>
                        </item>
                    </items>
                    <discovery_rules/>
                    <macros/>
                    <templates/>
                    <screens/>
                </template>
            </templates>
            <triggers>
                <trigger>
                    <expression>{Template nginx status:nginx.status[ping].last(0)}=0 and {Template nginx status:nginx.status[ping].last(1)}=0</expression>
                    <name>nginx is down!</name>
                    <url/>
                    <status>0</status>
                    <priority>4</priority>
                    <description/>
                    <type>0</type>
                    <dependencies/>
                </trigger>
            </triggers>
            <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>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_item>
                            <sortorder>4</sortorder>
                            <drawtype>0</drawtype>
                            <color>FC6EA3</color>
                            <yaxisside>0</yaxisside>
                            <calc_fnc>2</calc_fnc>
                            <type>0</type>
                            <item>
                                <host>Template nginx status</host>
                                <key>nginx.status[accepts]</key>
                            </item>
                        </graph_item>
                        <graph_item>
                            <sortorder>5</sortorder>
                            <drawtype>0</drawtype>
                            <color>6C59DC</color>
                            <yaxisside>0</yaxisside>
                            <calc_fnc>2</calc_fnc>
                            <type>0</type>
                            <item>
                                <host>Template nginx status</host>
                                <key>nginx.status[handled]</key>
                            </item>
                        </graph_item>
                        <graph_item>
                            <sortorder>6</sortorder>
                            <drawtype>0</drawtype>
                            <color>AC8C14</color>
                            <yaxisside>0</yaxisside>
                            <calc_fnc>2</calc_fnc>
                            <type>0</type>
                            <item>
                                <host>Template nginx status</host>
                                <key>nginx.status[requests]</key>
                            </item>
                        </graph_item>
                    </graph_items>
                </graph>
            </graphs>
            <value_maps>
                <value_map>
                    <name>Service state</name>
                    <mappings>
                        <mapping>
                            <value>0</value>
                            <newvalue>Down</newvalue>
                        </mapping>
                        <mapping>
                            <value>1</value>
                            <newvalue>Up</newvalue>
                        </mapping>
                    </mappings>
                </value_map>
            </value_maps>
        </zabbix_export>

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 精品国偷自产在线视频| 精品国产免费人成网站| 国产精品丝袜久久久久久不卡| 久久精品亚洲中文字幕无码麻豆| 国产精品亚洲综合专区片高清久久久| 国内精品久久久久影院日本| 亚洲精品专区在线观看| 精品福利一区二区三区精品国产第一国产综合精品 | 精品调教CHINESEGAY| 亚洲国产成人精品女人久久久| 国产精品视频全国免费观看| 欧美日韩精品一区二区| 国产精品久久久久影院嫩草 | 午夜精品乱人伦小说区| 欧美精品一区二区三区免费观看| 国产精品成人国产乱一区| 精品久久香蕉国产线看观看亚洲 | 欧美精品一区二区三区视频| 国产成人精品视频播放| 国内精品人妻无码久久久影院| 亚洲精品和日本精品| 日本熟妇亚洲欧美精品区| 久久久久无码国产精品不卡 | 97精品伊人久久久大香线蕉| 精品久久久久久久| 精品九九久久国内精品| 国产精品亚洲欧美一区麻豆| 99精品视频在线观看re| 97久久久久人妻精品专区| 成人区人妻精品一区二区不卡视频| 久久久国产精品亚洲一区| 亚洲AV永久无码精品成人| 亚洲精品在线观看视频| 亚洲精品岛国片在线观看| 九九久久精品无码专区| 国产成人高清精品一区二区三区| 久久精品人人做人人爽电影| 欧美777精品久久久久网| 久久精品国产一区| 久久精品国产99国产精偷| 欧美精品1区2区|