Zabbix 监控 WEB 应用性能

1.介绍
使用 zabbix_sender 发送采集的 WEB 状态值,使用 pycurl 来采集 WEB 状态。
2.实现
Python 脚本如下:

#!/usr/bin/env python
#coding=utf-8
import os
import sys
import fileinput
import pycurl
import logging
hostname = "Zabbix server"
zabbix_server = "127.0.0.1"
zabbix_sender = "/usr/local/zabbix/bin/zabbix_sender"
list = [‘www.test.com‘,‘cdn.test.com‘]
key = [‘HTTP_ResSize‘,‘HTTP_ResTime‘,‘HTTP_ResCode‘,‘HTTP_ResSpeed‘]
log_file = "/tmp/HTTP_Response.log"
logging.basicConfig(filename=log_file,level=logging.INFO,filemode=‘w‘)
run_cmd="%s -z %s -i %s > /tmp/HTTP_Response.temp" % (zabbix_sender,zabbix_server,log_file)
# print run_cmd

class Test():
        def __init__(self):
                self.contents = ‘‘
        def body_callback(self,buf):
                self.contents = self.contents + buf

def Check_Http(URL):
        t = Test()
        #gzip_test = file("gzip_test.txt", ‘w‘)
        c = pycurl.Curl()
        c.setopt(pycurl.WRITEFUNCTION,t.body_callback)
        #请求采用Gzip传输
        #c.setopt(pycurl.ENCODING, ‘gzip‘)
        try:
            c.setopt(pycurl.CONNECTTIMEOUT, 60) #链接超时
            c.setopt(pycurl.URL,URL)
            c.perform() #执行上述访问网址的操作
        except pycurl.error:
            print "URL %s" % URL

        Http_Document_size = c.getinfo(c.SIZE_DOWNLOAD)
        # Http_Download_speed = round((c.getinfo(pycurl.SPEED_DOWNLOAD) /1024),2)
        Http_Download_speed = round((c.getinfo(pycurl.SPEED_DOWNLOAD) ),2)
        Http_Total_time = round((c.getinfo(pycurl.TOTAL_TIME) * 1000),2)
        Http_Response_code = c.getinfo(pycurl.HTTP_CODE)
        logging.info(hostname +‘ ‘ +key[0] + ‘[‘ + k + ‘]‘ + ‘ ‘+str(Http_Document_size))
        logging.info(hostname +‘ ‘ +key[1] + ‘[‘ + k + ‘]‘ + ‘ ‘+str(Http_Total_time))
        logging.info(hostname +‘ ‘ +key[2] + ‘[‘ + k + ‘]‘ + ‘ ‘+str(Http_Response_code))
        logging.info(hostname +‘ ‘ +key[3] + ‘[‘ + k + ‘]‘ + ‘ ‘+str(Http_Download_speed))

def runCmd(command):
    for u in list:
            URL = u
            global k
            if u.startswith(‘https:‘):
                k = u.split(‘/‘)[2]
            else:
                k=u.split(‘/‘)[0]
                Check_Http(URL)

    for line in fileinput.input(log_file,inplace=1):
        print line.replace(‘INFO:root:‘,‘‘),
    return os.system(command)
runCmd(run_cmd)

Check_HTTP_Response.py

如果需要监控多个网站,修改 list 里的网站地址 添加计划任务, 每 5 分钟采集一次
监控key:
响应时间:HTTP_ResTime[www.test.com]
状态码:HTTP_ResCode[www.test.com]
文档大小:HTTP_ResSize[www.test.com]
下载速度:HTTP_ResSpeed[www.test.com]
测试能否使用zabbix_sender正常工作:./zabbix_sender -s "Zabbix server" -z 127.0.0.1 -k HTTP_ResCode[www.test.com] -o 200
zabbix server 添加监控模板、监控项、触发器

时间: 2024-10-25 16:50:26

Zabbix 监控 WEB 应用性能的相关文章

利用Zabbix监控Web性能和可用性

怎么利用Zabbix监控web性能和可用性呢? 我们这边分为几个步骤:打开网站.登陆.登陆验证.退出,一共4个小step,看实例. 检测流程 1. 打开网站:如果http code为200,并且响应的html中包含Zabbix SIA表示打开成功(zabbix页面有这个标示) 2. 登陆后台:post用户名和密码到index.php,如果响应200,那表示post成功.并且通过正则表达式从响应的html中匹配sid,这个sid也就是一个宏变量,退出可以使用到 3. 验证登陆:打开首页,检索htm

zabbix如何监控WEB应用性能

HTTP服务目前最流行的互联网应用之一,如何监控服务的健康状态对系统运维来说至关重要.   Zabbix本身提供了对WEB应用程序的监控,比如监控WEB程序的Download Speed,Response Time和Response Code等性能指标,但是配置起来比较繁琐和复杂.下面通过 python pycurl模块来获取HTTP响应时间,下载速度,状态吗等性能指标.然后通过zabbix trapper的方式来监控WEB应用的性能.   Zabbix trapper监控是客户端收集监控数据,

zabbix监控web页面,以及告警配置

背景: 今天研发线上的配置配错了,导致公司网站访问不了,结果又甩锅给我们运维,华丽地再次背锅.但是没有做web网页的监控也的确是我们的锅,没办法,含泪接下-- 为了不再次背锅,故把公司的线上网站全部做了监控.这里来说说在zabbix上做web页面监控的具体步骤. 注: 我这里的zabbix是3.2.1版本,中文配置.虽然和其他版本的页面可能不同,但是配置步骤应该是一样的. 这里的例子为监控百度首页. 配置web页面检测: 在zabbix上选择一台能上外网的主机,配置web检测场景. "配置&qu

使用zabbix监控web

Web监控 创建web监控需要先定义一个web方案(scenarios) web方案包括一个或多个HTTP请求或"步骤(step)" 步骤(step)的执行过程按照预先定义的顺序进行执行 通过web监控可实获取如下信息 整个web方案中所有的步骤的平均下载速度 失败的步骤号 失败的报错信息 在web方案的具体步骤中,可以按需使用如下信息 该步骤的下载速度 回应时间 回应状态码 Zabbix可以检测获取到的HTML页面中是否包含预设的字符 串,也可以实现登录和页面点击 创建web监控 示

zabbix 监控web

http://www.ttlsa.com/zabbix/zabbix-web-monitor-real-life-scenario/ http://www.ttlsa.com/zabbix/zabbix-monitor-web-api/ 创建web场景 configuration->Host->你的主机->web->右上角Create scenario 我的账号admin 密码zabbix web监控阶段1:打开首页 http://192.168.80.62/index.php w

Zabbix监控web项目

在模板里web项添加web监控项目,也可在主机里添加web监控项 post添加用户密码,vaiaibles变量显示 在模板添加触发器,如下 key意思如下 web.test.in[guang-zhou,,bps] 整个阶段中的下载速度,单位字节/秒类型: Numeric(float) web.test.in[guang-zhou,www.baidu.com,bps] 检索指定阶段的下载速度,字节每秒类型: Numeric(float) web.test.fail[guang-zhou]整个检测阶

zabbix监控WEB页面及告警 实战

网站对一个公司来说非常重要,里边包含了公司的业务,介绍和订单等相关信息,网站的宕掉了对公司的影响非常重大,所以要很好的对网站的页面进行监控,zabbix提供了对web页面的监控,具体步骤如下. 一,配置web页面的检测: 1,选择一台能上外网的被监控主机,依次执行:配置---主机---zabbix server---web监测. 2,单击web场景---创建web场景. 3,在场景选项卡中添加名称,应用集.然后调到步骤选项卡来添加监控页面. 4,在步骤选项卡中单击添加按钮,依次添加名称,URL超

zabbix 监控 tomcat/jvm性能

http://www.ttlsa.com/web/install-tomcat7-on-linux/ http://www.ttlsa.com/zabbix/zabbix-use-jmx-monitor-tomcat/ 配置tomcat jmx vim /usr/local/tomcat7/bin/catalina.sh # ----- Execute The Requested Command --------- 在次行下面加上 export CATALINA_OPTS="$CATALINA_

zabbix监控WEB端项目(接口访问)

今天记录一下公司要求的监控部分项目使用接口的访问情况(主要是接口是否正常工作) 这个需求之前有做过代码监控实现,但是过程比较繁琐,需要用到requests模块然后调用外部EXCEL,EXCEL中记录接口请求相关数据 但是这个需求中只需要监控接口是否正常使用就行,所以只需要检验接口访问范围状态码是否是200就可以,那么zabbix完全可以做到 1.首先创建一个web监控:监控内容中添加接口请求地址(目前需求不需要添加参数) 2.增加校验状态码是否是200 3.添加触发器,这里选择触发器监控项的时候