經過zabbix 3.2監控nginx活動狀態

第一:安裝nginxlinux

    1.經過yum源安裝(也能夠經過編譯安裝,這裏介紹yum源安裝)nginx

rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
yum install nginx

  默認安裝目錄爲/etc/nginx,能夠經過rpm -qc nginx 或 rpm -ql nginx 查看。web

第二:查看、啓用、驗證nginx狀態數據庫

  1.查看nginx狀態模塊是否安裝vim

    命令:/sbin/nginx -V
windows

    查看結果中是否包括:--with-http_stub_status_module 這個內容,包括就說明狀態模塊已安裝;centos

  2.啓用狀態模塊安全

    命令:vim /etc/nginx/nginx.conf
bash

    找到server{}內容,在該內容最後添加以下內容
app

    location = /nginx-status {

        stub_status on;

        access_log off;

        allow 127.0.0.1;

        allow zabbix-server-ip;

        deny all;

    }

    說明:(1)/nginx-status爲虛擬路徑,在進行http訪問查看nginx狀態時,須要輸入的路徑;

              (2)allow和deny用於安全訪問目的,能夠根據本身的安全需求進行自定義;

  3.驗證nginx狀態是否能夠訪問(驗證前重啓下nginx)

    命令:curl http://ip:port/nginx-status  #這是linux下的訪問命令#

              http://ip:port/nginx-status #這是windows下的訪問URL#

    能夠正常顯示結果,則表示以上配置正確;不然,檢查配置;

第三:編寫腳步,增長配置文件,重啓zabbix

  1.編輯腳步

    腳步保存路徑(這裏是個人,您的能夠自定義):/etc/zabbix/zabbix_agentd.d/scripts/

    腳步內容以下:

    #!/bin/bash

    #script to fetch nginx statuses for tribily monitoring systems  

    # Author: 54808898@qq.com  

    # License: none  

    # Set Variables  

    #BKUP_DATE='/bin/date +%Y%m%d`\'

    #LOG="/var/log/zabbix/webstatus.log"

    HOST=127.0.0.1

    PORT="81"

    # 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

    保存後,給該腳步添加可執行權限:chmod a+x 腳步名稱

  2.增長配置文件

    配置文件增長位置(這裏我增長的位置,您的能夠自定義,可是必定要讓zabbix_agentd.conf包含該文件):/etc/zabbix/zabbix_agentd.d/

    內容以下:

    UserParameter=nginx.accepts,/etc/zabbix/zabbix_agentd.d/scripts/nginx_monitor.sh accepts

    UserParameter=nginx.handled,/etc/zabbix/zabbix_agentd.d/scripts/nginx_monitor.sh handled

    UserParameter=nginx.requests,/etc/zabbix/zabbix_agentd.d/scripts/nginx_monitor.sh requests

    UserParameter=nginx.active,/etc/zabbix/zabbix_agentd.d/scripts/nginx_monitor.sh active

    UserParameter=nginx.reading,/etc/zabbix/zabbix_agentd.d/scripts/nginx_monitor.sh reading

    UserParameter=nginx.writing,/etc/zabbix/zabbix_agentd.d/scripts/nginx_monitor.sh writing

    UserParameter=nginx.waiting,/etc/zabbix/zabbix_agentd.d/scripts/nginx_monitor.sh waiting

    上述中包含方法,編輯/etc/zabbix/zabbix_agentd.conf,默認狀況下,會有該語句:Include=/etc/zabbix/zabbix_agentd.d/*.conf,您能夠根據本身的配置文件所在的目錄修改此語句或增長新的語句。

  3.重啓zabbix agent

    因爲我採用的是yum源安裝,重啓方法很簡單:systemctl restart zabbix-agent

第四:驗證zabbix get能夠獲取nginx狀態數據

  1.安裝zabbix get

    安裝命令:rpm -ivh http://repo.zabbix.com/zabbix/3.2/rhel/7/x86_64/zabbix-get-3.2.1-1.el7.x86_64.rpm

  2.測試方法:

    命令:zabbix_get -s nginx服務ip -p 10050 -k "nginx.connections.active"

    說明:若是不通,請檢查防火牆是否開放了10050端口

第五:配置zabbix模版

    1. Configuration -> Templates -> Create template

    Template name : Template App Nginx Service

    Groups In groups : Templates

    Add

    2. 建立應用分組

    ## 如今又回到了模板頁,跟我一塊兒點 Template App Nginx Service 模板後面的 Applications -> Create application

    Name : Nginx status

    Add

    3. 建立監控項

    ## 如今的位置是 Template App Nginx Service 模板中的 Applications 頁面,跟我一塊兒點擊剛建立的 Nginx status 後面的 Items -> Create item

    Name : nginx active     ## 監控項名稱

    Type : Zabbix agent    ## 監控類型,默認被動模式

    Key : nginx.active       ## 因爲是自定義 Key ,因此要本身寫上去。若是使用自帶的 Key ,點擊 Select 選擇就能夠了

    Type of information : Numeric( unsiqned )     ## 數據在進行類型轉化以後存入數據庫

                                        Numeric( unsiqned ) : 64 位無符號整數
                                        Numeric( float ) : 浮點數類型
                                        Character :  字符串類型數據,限制爲 255B
                                        Log : 日誌文件,必須使用的 Key 爲 log[]
                                        Text : 文本,不限制大小

    Data type : Decimal     ## 數據類型用於存儲 Items 中 Key 所獲取的數值值,存儲在不一樣的表中,如:history 、history_str 等表

                        Boolean : 在數據存儲時將本來的值替換爲 0 或 1,TRUE 存儲爲 1 ,FALSE 存儲爲 0 ,全部的值都區分大小寫( 任何非零都爲 TRUE ,0 爲 FALSE )
                        Octal : 八進制數的數值格式
                        Decimal : 十進制數的數值格式
                        Hexadecimal : 十六進制數的數值格式

                        ## Zabbix 自動執行數據類型的格式轉換

    Units : 留空                                ## 單位符號,Zabbix 會自動處理接收到的數據,而且把數據轉換爲須要顯示的格式

    Use custom multiplier : 不勾選     ## 若是開啓,所接收到的數據會被乘以整數或浮點數。該選項用於單位換算,KB 、MBps 換爲 B 、Bps 等

    Update interval( in sec ) : 30      ## 間隔多長時間經過 Items 收集數據,單位 秒

          Flexible intervals :                 ## 用於設置不一樣時間段收集數據的間隔不一樣,若是設置,則此時間段按這個間隔,其他的按上面參數的間隔

            New flexible interval Interval( in sec ) : 50 Period 1-7,00:00-24:00 Add :     ## 經過這裏來添加一個新的時間段

    History storage period( in days ) : 90     ## 歷史數據保留時間

    Trend storage period( in days ) : 365     ## 趨勢數據保留時間

    Store value : As is     ## 數據存儲時的類型

                        As is : 無預處理

                        Delta( speed per second ) : 顯示每秒速率的值( 例如網卡流量 )

                        Delta( simple change ) : 顯示本次數值與上次數值的差值

    Show value : As is                  ## 無預處理( 數據顯示時的類型,值映射:將接收到的值映射爲一個狀態,不改變原值,只改變顯示結果,例如將 1 映射爲 Nginx service states )

    New application : 留空             ## 建立一個新的應用分組

    Applications : Nginx status     ## 選擇一個已有的應用分組

    Populates host inventory field : None     ## 將此 Item 分配給某個資產管理組

    Description : 留空                                ## 對 Item 的描述信息

    Enabled : 勾選                                    ## 開啓此 Item

    Add

    #根據以上方法分別定義 active | accepts | handled | requests | reading | writing | waiting 監控項

第六:將模版應用與被監控主機

    應用完成後,就能夠查看nginx狀態數據了

相關文章
相關標籤/搜索