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的監控。

本文出自 “Null” 博客,請務必保留此出處http://kongshuai.blog.51cto.com/10178307/1737193

http://www.07net01.com/2016/01/1171292.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM