zabbix監控nginxhtml
zabbix能夠監控nginx的狀態,關於一個服務的狀態能夠查看服務自己的狀態(版本號、是否開啓),還應該關注服務能力(例如以nginx的負載效果:鏈接數、請求數和句柄數)。下面咱們使用zabbix監控nginx。nginx
若是想要查看nginx的服務狀態,在對nginx進行源碼安裝的時候要選中–with-http_stub_status_module模塊。web
1.解壓安裝包:bash
[root@server5 mnt]# tar xvf nginx-1.6.2.tar.gzcurl
2.在安裝目錄下進行模塊配置:
測試
3.安裝配置的選項:
url
安裝結束後,在nginx的安裝目錄(默認是/usr/local/nginx)下咱們須要對nginx的主配置文件進行修改,若是nginx可以支持狀態信息的顯示能夠在nginx的版本中進行查看:server
1.查看模塊是否安裝成功:
htm
能夠看到已經擁有了–with-http_stub_status_module模塊。blog
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命令進行測試,查看是否可以順利的獲取數據,若是次操做能夠執行,說明採集狀態正常:
咱們這裏隨機對四個數據盡心了測試發現是正常的。
若是數據的採集都沒有問題,那麼就能夠在web控制檯進行items的添加。
咱們以nginx.active爲例,其餘的相似操做:
能夠看到所須要的items都已經生成完成,並且這些items都是屬於nginx這個應用的:
咱們能夠對於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