zabbix監控nginx

zabbix監控nginxlinux

在zabbix的客戶端wangb02機器上安裝nginx並啓動起來nginx

在aminglinux02上安裝Nginx

編輯yum倉庫:git

[root@wangzb02 ~]# vi /etc/yum.repos.d/nginx.repo
粘貼:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

安裝:
[root@wangzb02 ~]# yum install -y nginx

配置Nginx狀態信息github

[root@wangzb02 ~]# vi  /etc/nginx/conf.d/default.conf  #增長
location /nginx_status 
{
    stub_status on;
    access_log   off;
    allow 127.0.0.1;
    deny all;
}

測試centos

[root@wangzb02 ~]# curl 127.0.0.1/nginx_status
Active connections: 1 
server accepts handled requests
 7 7 7 
Reading: 0 Writing: 1 Waiting: 0

說明:bash

Active Connections:當前活動鏈接數,其中也包括了等待狀態的鏈接
accepts:接收到的鏈接數
handled:已經處理完的鏈接數,該數字通常和accepts一致,若是不一致那麼說明Nginx出錯了
requests:總共處理的請求數,一個鏈接能夠有多個請求,因此該值比accpets要大
Reading:正在讀取請求頭信息的鏈接數
Writing:正在發送響應報文的鏈接數
Waiting:處於閒置狀態,等待客戶端發送請求的鏈接數

編寫監控腳本curl

[root@wangzb02 ~]# 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

[root@wangzb02 ~]# chmod 755 /usr/local/sbin/ngx_status.sh
[root@wangzb02 ~]# /usr/local/sbin/ngx_status.sh active
1
[root@wangzb02 ~]# /usr/local/sbin/ngx_status.sh ping
1
[root@wangzb02 ~]# /usr/local/sbin/ngx_status.sh reading
0
[root@wangzb02 ~]# /usr/local/sbin/ngx_status.sh accepts
15

編輯zabbix_agent.conf性能

[root@wangzb02 ~]# vi /etc/zabbix/zabbix_agentd.conf # 增長
UserParameter=nginx.status[*],/usr/local/sbin/ngx_status.sh $1

重啓服務測試

[root@wangzb02 ~]# systemctl restart zabbix-agent

zabbix_get 測試url

在服務端執行

[root@wangzb01 run]# zabbix_get  -s 192.168.1.35 -k 'nginx.status[accepts]'
8
[root@wangzb01 run]# zabbix_get  -s 192.168.1.35 -k 'nginx.status[ping]'
1
[root@wangzb01 run]# zabbix_get  -s 192.168.1.35 -k 'nginx.status[reading]'
0
[root@wangzb01 run]# zabbix_get  -s 192.168.1.35 -k 'nginx.status[accepts]'
10
[root@wangzb01 run]# zabbix_get  -s 192.168.1.35 -k 'nginx.status[accepts]'
11
[root@wangzb01 run]# zabbix_get  -s 192.168.1.35 -k 'nginx.status[accepts]'
12

導入nginx模板

下載模板

https://github.com/aminglinux/linux2019/blob/master/zabbix_nginx_template/zbx_export_templates.xml

Configuration -> Templates -> 右上角Import

查看導入的模板:

連接模板

Configuration -> Hosts -> wangzb02 -> Templates -> Select -> Add -> Update

相關文章
相關標籤/搜索