通过ZABBIX实现对中间件、WEB站点等的监控……
3 篇帖子 分页: 1 / 1
帖子xiaoone » 2016年 3月 15日 17:21 星期二
nginx简介:
Nginx是一个高性能的HTTP和反向代理服务器。内存少,并发能力强等特性让他一跃成为世界上第二流行的web服务器,被广大互联网公司使用。

本公司使用nginx的场景:
和nginx关联的server数量:100+,openresty,tengine也都尝试过,综合对比、评估效果来看,还是nginx更适合我们的架构。还有一个更重要的原因就是nginx简单易用,网上学习资料多。

nginx监控的基础指标:
    1、nginx是否存活

    2、nginx活跃连接数

    3、nginx读取到客户端的连接数量

    4、nginx响应客户端的连接数量

    5、nginx驻留连接

    6、nginx每分钟收到的连接数

    7、nginx每分钟成功处理的连接数

zabbix结合监控脚本实时监控nginx:
代码: 全选
#!/bin/bash 
# Script to fetch nginx statuses for tribily monitoring systems

# Set Variables 
HOST="127.0.0.1"
PORT="80"

# Functions to return nginx stats

function alive {
alive=\`/usr/bin/curl -s "http://\$HOST:\$PORT/nginx_status" 2> /dev/null| grep 'Active' | awk '{print $NF}'`

if [ -z ${alive} ];
then
echo 0
else
echo 1
fi
}

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}' 
}

# Run the requested function 
$1

为了让配置文件更容易维护,创建nginx.conf文件
代码: 全选
#monitor nginx

UserParameter=nginx.alive,/usr/local/zabbix-2.4.5/script/check_status alive
UserParameter=nginx.accepts,/usr/local/zabbix-2.4.5/script/check_status accepts
UserParameter=nginx.handled,/usr/local/zabbix-2.4.5/script/check_status handled
UserParameter=nginx.requests,/usr/local/zabbix-2.4.5/script/check_status requests
UserParameter=nginx.connections.active,/usr/local/zabbix-2.4.5/script/check_status active
UserParameter=nginx.connections.reading,/usr/local/zabbix-2.4.5/script/check_status reading
UserParameter=nginx.connections.writing,/usr/local/zabbix-2.4.5/script/check_status writing
UserParameter=nginx.connections.waiting,/usr/local/zabbix-2.4.5/script/check_status waiting

zabbix_agentd.conf文件中include nginx.conf文件,增加一个扩展。

Include=/usr/local/zabbix-2.4.5/shell/nginx.conf

如果有的同学对自定义脚本监控不太熟悉,可以看看运维生存时间上总结的内容:https://www.ttlsa.com/zabbix/zabbix-user-parameters/

本来想附两张监控截图的,然而并不会插入图片= =凑合看吧。

出现问题第一时间发送报警消息。
报警Trigger触发规则,nginx是否存活:

Trigger 严重程度:Disaster

触发条件{Nginx Status:nginx.alive.last(0)}=0
前面脚本传值,如果nginx挂了,会返回0,触发告警。其他的监控指标的报警阀值也都可以进行自定义,熟悉zabbix的同学应该都能够搞定。小白就不在这里献丑了。

接收告警消息可以选择邮件和短信、网上教程也比较多,教程帖子:
http://www.iyunv.com/thread-22904-1-1.html
http://www.iyunv.com/thread-40998-1-1.html

如果觉得自己搞这些比较麻烦的话,也可以试试 OneAlert 一键集成zabbix,短信、电话、微信、APP啥都能搞定,还免费,用着不错。
http://www.onealert.com/activity/zabbix.html

初学zabbix,希望能和大家共同进步,把自己学到用到的share给大家。
帖子xiaoone » 2016年 3月 15日 17:21 星期二
欢迎大家一起交流,一起学习。
帖子Aceslup » 2016年 10月 21日 08:37 星期五
虽然也是网上一大把,但依旧感谢分享。
3 篇帖子 分页: 1 / 1

登录

在线用户

正在浏览此版面的用户:没有注册用户 和 6 位游客