zabbix監控nginx連接狀態

zabbix學習筆記:zabbix監控nginx連接狀態


zabbix監控nginx

zabbix可以監控nginx的狀態,關於一個服務的狀態可以查看服務本身的狀態(版本號、是否開啓),還應該關注服務能力(例如以nginx的負載效果:連接數請求數句柄數)。下面我們使用zabbix監控nginx。


nginx的安裝

如果想要查看nginx的服務狀態,在對nginx進行源碼安裝的時候要選中–with-http_stub_status_module模塊。

1.解壓安裝包

[root@server5 mnt]# tar xvf nginx-1.6.2.tar.gz

2.在安裝目錄下進行模塊配置: 
這裏寫圖片描述

3.安裝配置的選項: 
這裏寫圖片描述


手動採集nginx數據

安裝結束後,在nginx的安裝目錄(默認是/usr/local/nginx)下我們需要對nginx的主配置文件進行修改,如果nginx能夠支持狀態信息的顯示可以在nginx的版本中進行查看:

1.查看模塊是否安裝成功: 
這裏寫圖片描述

可以看到已經擁有了–with-http_stub_status_module模塊。

2.修改配置文件/usr/loca/nginx/conf/nginx.conf,在http部分添加指定的server服務: 
這裏寫圖片描述

注意:配置只允許192.168.1.0/24網段的人查看nginx的狀態,其他網段的人不可以查看。

3.修改完成後啓動nginx服務,爲了方便期間,可以把/usr/local/nginx/sbin/nginx文件建立軟鏈接到/usr/bin/目錄下: 
這裏寫圖片描述

4.開啓nginx服務: 
這裏寫圖片描述

5.使用命令採集nginx的狀態信息: 
這裏寫圖片描述

6.上述的信息是包括讀、寫等待以及連接數、請求數等內容,我們需要編寫腳本信息進行單獨採集。腳本內容如下所示:

#get_nginx_status.sh#nginx信息採集腳本#!/bin/bash#設置初始化信息NGINX_SERVER="192.168.1.108"NGINX_URL="http://${NGINX_SERVER}/status"#設置採集信息的方式function get_active {
    curl -s ${NGINX_URL} | grep "Active" | awk -F ":" '{print $2}'}

function get_reading {
    curl -s ${NGINX_URL} | grep "Reading" | awk -F ":" '{print $2}' | awk -F " " '{print $1}'}

function get_writing {
    curl -s ${NGINX_URL} | grep "Writing" | awk -F ":" '{print $3}' | awk -F " " '{print $1}'}

function get_waiting {
    curl -s ${NGINX_URL} | grep "Waiting" | awk -F ":" '{print $4}' | awk -F " " '{print $1}'}

function get_accepts {
    curl -s ${NGINX_URL} | awk NR==3 | awk -F " " '{print $1}'}

function get_handled {
    curl -s ${NGINX_URL} | awk NR==3 | awk -F " " '{print $2}'}

function get_requests {
    curl -s ${NGINX_URL} | awk NR==3 | awk -F " " '{print $3}'}#獲取用戶的輸入參數得到對應的值case $1 in 
    active)
         get_active
         ;;
    reading)
         get_reading
         ;;
    writing)
         get_writing    
         ;;
    waiting)
         get_waiting
         ;;
    accepts)
         get_accepts 
         ;;
    handled)
         get_handled
         ;;
    requests)
         get_requests    
         ;;
    *)         echo "Usage: $0 {active | reading | writing | waiting | accepts | handled | requests}"esac1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465

7.完成腳本並且進行測試後,需要修改/etc/zabbix/zabbix-agentd.conf文件添加對應的UserParameter:

這裏寫圖片描述

8.在客戶端重新啓動zabbix-agent服務: 
這裏寫圖片描述

9.在服務端使用zabbix_get命令進行測試,查看是否能夠順利的獲取數據,如果次操作可以執行,說明採集狀態正常: 
這裏寫圖片描述

我們這裏隨機對四個數據盡心了測試發現是正常的。


添加到zabbix的監控項items

如果數據的採集都沒有問題,那麼就可以在web控制檯進行items的添加。 
這裏寫圖片描述

我們以nginx.active爲例,其他的類似操作: 
這裏寫圖片描述

可以看到所需要的items都已經生成完成,而且這些items都是屬於nginx這個應用的: 
這裏寫圖片描述


生成graphs

我們可以對於nginx的服務狀態進行可視化操作(生成對應的graphs): 
這裏寫圖片描述

創建screen進行多個graphs的顯示: 
這裏寫圖片描述

創建agent1.example.com節點的nginx condition狀態的screens完成: 
這裏寫圖片描述

可以看到nginx的accpets、requests、handled狀態: 
這裏寫圖片描述


小結:

使用zabbix對於服務的監控步驟都很類似: 
1.首先要手動的獲取服務的狀態; 
2.然後編寫腳本自動獲取,然後寫入agent的/etc/zabbix/zabbix-agentd.conf文件 
3.在監控服務端zabbix-server進行相關的採集測試,如果能夠成功則在web界面進行items和graphs的監控。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章