zabbix管理七之监控nginx性能

说明:

使用zabbix监控nginx,首先nginx需要配置ngx_status

在编译安装nginx时需要使用--with-http_stub_status_module参数

在nginx的配置文件nginx.conf里添加如下:

        location /nginx_status {
             stub_status on;
             access_log off;
             allow 127.0.0.1;
             allow 27.115.xxx.xxx;
             allow 211.95.xxx.xxx;
             deny all;
        }

注意:

自定义key(键值)参考:http://www.ttlsa.com/zabbix/zabbix-user-parameters/

方法一:使用shell实现:

zabbix客户端:

cd /root/scripts

vim ngx_status.sh
#!/bin/bash
# Description:zabbix监控nginx性能以及进程状态
# Note:此脚本需要配置在被监控端
 
HOST="192.168.1.92"
PORT="80"
 
# 检测nginx性能
function active {
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep ‘Active‘ | awk ‘{print $NF}‘
}
function reading {
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep ‘Reading‘ | awk ‘{print $2}‘
}
function writing {
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep ‘Writing‘ | awk ‘{print $4}‘
}
function waiting {
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| grep ‘Waiting‘ | awk ‘{print $6}‘
}
function accepts {
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk ‘{print $1}‘
}
function handled {
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk ‘{print $2}‘
}
function requests {
    /usr/bin/curl "http://$HOST:$PORT/nginx_status/" 2>/dev/null| awk NR==3 | awk ‘{print $3}‘
}
# 执行function
$1

chmod +x /root/scripts/ngx_status.sh
##将自定义的UserParameter加入配置文件,然后重启agentd
vim /opt/zabbix/etc/zabbix_agentd.conf
添加:
UserParameter=nginx.status[*],/root/scripts/ngx_status.sh $1

/etc/init.d/zabbix_agentd restart
##服务端:
##zabbix_get测试:
[[email protected] ~]# /opt/zabbix/bin/zabbix_get  -s 192.168.1.92 -k nginx[requests]
43232

方法二:使用python实现:

zabbix客户端:

cd /root/scripts

vim ngx_status.py
#!/usr/bin/env python
#encoding:utf-8

import sys
import requests

r = requests.get(‘http://192.168.1.92/nginx_status‘)
statusList = r.text.split()

def connections():
    connections = statusList[2]
    print connections

def accepts():
    accepts = statusList[7]
    print accepts

def handled():
    handled = statusList[8]
    print handled

def requests():
    requests = statusList[9]
    print requests

def Reading():
    Reading = statusList[11]
    print Reading

def Writing():
    Writing = statusList[13]
    print Writing

def Waiting():
    Waiting = statusList[15]
    print Waiting

fun_name = eval(sys.argv[1])        #将字符串类型转换为函数类型
fun_name()

chmod +x /root/scripts/ngx_status.sh
##将自定义的UserParameter加入配置文件,然后重启agentd
vim /opt/zabbix/etc/zabbix_agentd.conf
添加:
UserParameter=nginx.status[*],/root/scripts/ngx_status.sh $1

/etc/init.d/zabbix_agentd restart
#服务端:
##zabbix_get测试:
[[email protected] ~]# /opt/zabbix/bin/zabbix_get  -s 192.168.1.92 -k nginx[requests]
43232

最后在zabbix的web界面操作:

创建模板--->创建分组--->创建监控项--->创建触发器--->创建图形

注:

附件有一个模板

时间: 2024-10-06 19:25:45

zabbix管理七之监控nginx性能的相关文章

zabbix 通过status模块监控nginx

1.编辑nginx的配置文件,在server下添加如下内容: location /status {stub_status on;access_log off;allow 127.0.0.1;deny all;} 保存退出并重启nginx 2.创建监控nginx的脚本目录 mkdir /usr/local/zabbix/libexec 3.vim /usr/local/zabbix/libexec/nginx.sh && chmod +x /usr/local/zabbix/libexec/

Zabbix监控nginx性能的另外一种方式

nginx和php-fpm一样内建了一个状态页,对于想了解nginx的状态以及监控nginx非常有用,为了后续的zabbix监控,我们需要先启用nginx状态页 1. 启用nginx status配置在默认主机里面加上location或者你希望能访问到的主机里面. server { location /ngx_status { stub_status on; access_log off; allow 127.0.0.1; deny all; } } 2. 重载nginx # nginx -t

zabbix监控nginx性能状态

nginx在生产环境中的应用越来越广泛,所以需要对nginx的性能状态做一些监控,来发现出来出现的问题.nginx处理流程图具体如下: 注释:Accepts(接受).Handled(已处理).Requests(请求数)是一直在增加的计数器.Active(活跃).Waiting(等待).Reading(读).Writing(写)随着请求量而增减 名称 描述 指标类型 Accepts(接受) NGINX 所接受的客户端连接数 资源: 功能 Handled(已处理) 成功的客户端连接数 资源: 功能

zabbix如何监控nginx性能

环境:zabbix server :centos 6  ip 192.168.234.134 zabbix client (nginx) :centos 7  ip:192.168.234.133 前提: 在zabbix agentd客户端上,查看nginx是否加载了--with-http_stub_status_module.因为zabbix监控nginx是根据nginx的Stub Status模块,抓取Status模块所提供的数据.假如以前没开启,现在想启用StubStatus 模块,在编译

zabbix 监控 nginx性能

http://www.ttlsa.com/nginx/nginx-status-detail/ http://www.ttlsa.com/zabbix/zabbix-monitor-nginx-performance/ 首先需要配置ngx_status vim /etc/nginx/vhost/web.conf server { listen       80; server_name 192.168.80.62; index index.php index.html index.htm def

按照zabbix客户端及自定义监控nginx连接状态

一.下载客户端按照包,这里用rpm包安装 [[email protected] ~]# rpm -ivh http://repo.zabbix.com/zabbix/3.0/rhel/7/x86_64/zabbix-agent-3.0.4-1.el7.x86_64.rpm 修改客户端配置文件 Server=127.0.0.1 ServerActive=127.0.0.1 改为zabbix server实际的IP地址(比如zabbix server的IP地址为10.0.0.100) Server=

zabbix管理四之监控cpu的负载

监控cpu的负载 分析: 安装完zabbix后,在Template OS Linux这个模板下面默认有监控cpu负载的触发器,但是这个默认的触发器是以cpu负载的个数为触发值的,由于agent客户机每台的cpu核数是不一样的,所以,以负载的个数为触发值不是很好,下面我设置的触发值是cpu负载占cpu核数的百分比 步骤: 1.(agent端) mkdir -p /etc/zabbix/itemscripts         (创建一个脚本目录,所有的zabbix agent的脚本都放在这里,方便管

zabbix通过自定义脚本监控nginx,php-fpm和mysql占用内存数和进程的个数

首先,在zabbix脚本目录下添加一个脚本,写入如下代码 #!/bin/bash #license:GPL #mail:[email protected] #date:2015.04.16 top -bn1>/usr/local/zabbix-2.4.4/scripts/process.log LOG=/usr/local/zabbix-2.4.4/scripts/process.log php_fpm(){ grep "php-fpm" $LOG |awk '{sum+=$6}

zabbix管理五之监控进出流量

监控进出流量