zabbix監控Nginx

監控流程

在zabbix_agent機器上安裝nginx服務

配置nginx狀態信息

在zabbix_agent機器測試

在zabbix_agent機器上編寫腳本

編寫zabbix_agent.conf

重啓服務

zabbix_get 測試,在zabbix_server端執行

下載nginx模板

使用sz命令將,目錄中的模板下載到pc上。而後在zabbixweb UI 上使用import導入就好了

將須要監控的nginx主機連接到該模板上

  • 在zabbix_agent機器上安裝nginx服務
  1. 配置nginx的yum源
    編輯yum倉庫:
    	vi /etc/yum.repos.d/nginx.repo
    	粘貼:
    	[nginx]
    	name=nginx repo
    	baseurl=http://nginx.org/packages/centos/7/$basearch/
    	gpgcheck=0
    	enabled=1

     

  2. 安裝:yum install -y nginx
  • 配置nginx狀態信息
    vi  /etc/nginx/conf.d/default.conf  #增長
    	location /nginx_status 
    	{
        stub_status on;
        access_log   off;
        allow 127.0.0.1;
        deny all;
    }

    5-70.png

  • 在zabbix_agent機器測試

curl http://127.0.0.1/nginx_status
5-71.pnglinux

說明nginx

  • Active Connections 當前活動鏈接數,其中也包括了等待狀態的鏈接
  • accepts 接收到的鏈接數
  • handled 已經處理完的鏈接數,該數字通常和accepts一致,若是不一致那麼說明Nginx出錯了
  • requests 總共處理的請求數,一個鏈接能夠有多個請求,因此該值比accpets要大
  • Reading 正在讀取請求頭信息的鏈接數
  • Writing 正在發送響應報文的鏈接數
  • Waiting 處於閒置狀態,等待客戶端發送請求的鏈接數
  • 在zabbix_agent機器上編寫腳本
vi /usr/local/sbin/ngx_status.sh  #內容以下
#!/bin/bash
url="http://127.0.0.1/nginx_status"
curl=/usr/bin/curl

# 檢測nginx進程是否存在
function ping {
    /sbin/pidof nginx | wc -l 
}
# 檢測nginx性能
function active {
    $curl $url 2>/dev/null| grep 'Active' | awk '{print $NF}'
}
function reading {
    $curl $url 2>/dev/null| grep 'Reading' | awk '{print $2}'
}
function writing {
    $curl $url 2>/dev/null| grep 'Writing' | awk '{print $4}'
}
function waiting {
    $curl $url 2>/dev/null| grep 'Waiting' | awk '{print $6}'
}
function accepts {
    $curl $url 2>/dev/null| awk NR==3 | awk '{print $1}'
}
function handled {
    $curl $url 2>/dev/null| awk NR==3 | awk '{print $2}'
}
function requests {
    $curl $url 2>/dev/null| awk NR==3 | awk '{print $3}'
}
$1

chmod 755 /usr/local/sbin/ngx_status.sh
  • 編寫zabbix_agent.conf

vi /etc/zabbix/zabbix_agentd.conf # 增長
UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1
5-72.png
若是有多個腳本就定義多行。git

  • 重啓服務

systemctl restart zabbix-agentgithub

  • zabbix_get 測試,在zabbix_server端執行

在服務端執行
zabbix_get -s 192.168.19.128 -k 'nginx.status[accepts]'web

  • 下載nginx模板
下載模板
git clone https://github.com/aminglinux/linux2019.git
  • 使用sz命令將,目錄中的模板下載到pc上。而後在zabbixweb UI 上使用import導入就好了。
  • 將須要監控的nginx主機連接到該模板上。
Configuration -> Hosts -> aminglinux02 -> Templates -> Select -> Add -> Update
相關文章
相關標籤/搜索