动态分析服务器运行状态,使用Apachetop来分析A

2019-11-08 19:56 来源:未知

推荐阅读:

  -h          this help

                  'filter': {

监控实时访问日志

# rpm -ivh
# yum install apachetop

在error log中发现如下错误:

其它的linux 需要通过rpm或者源码编译来使用

# apachetop -h
ApacheTop v0.12.6 - Usage:
File options:
  -f logfile  open logfile (assumed common/combined) [/var/log/httpd/access_log]
              (repeat option for more than one source)

这样算下来一台机器差不多有 215个item.

#apt-get install apachetop

URL/host/referrer munging options:
  -q          保持请求字符串 [no]
  -l          所有的url小写 [no]
  -s num      保持url路径段数量 [all]
  -p          在referrer前面保留协议 [no]
  -r          保留每一个的主机/ip [no]

小结

Apache页面压缩配置问题导致JSON数据传输时间延长  http://www.linuxidc.com/Linux/2013-08/88637.htm

复制代码 代码如下:

执行时间超过request_terminate_timeout 设置。导致502产生。

Nginx Apache实现网页动静分离 http://www.linuxidc.com/Linux/2013-08/88570.htm

Stats options:
  必须提供两个参数 . default: [-T 30]
  -H hits     保持状态只到多少点击数
  -T secs     保持状态只到多少秒

              'params': {

用法
-f 后跟apache的实时日志 可能是acess.log 也可能是httpd.log
-q  可以显示出请求的URL
-H 后跟数字,表示请求多少次的数据
-t  后时间秒,表示请求多少秒内的,默认是30秒

ONE-TOUCH COMMANDS
d          : 切换urls/referrers/hosts显示模式开关
n          : 切换hits & bytes或返回代码开关
h or ?     : 帮助信息
p          : (un)暂停显示 (冻结更新)
q          : 退出 ApacheTop
up/down    : 移动星标 up/down
right/left : 进入/退出逐条显示模式
子菜单:
s:  排序: [the appropriate menu will appear for your display]
       r) requests  R) reqs/sec  b) bytes  B) bytes/sec
       2) 2xx   3) 3xx   4) 4xx   5) 5xx

              'method': 'template.get',

美高梅网投平台 1

复制代码 代码如下:

[04-May-2014 14:04:35.318614] WARNING: pid 6270, fpm_stdio_child_said(), line 166: [pool www] child 6294 said into stderr: "NOTICE: sapi_cgi_log_message(), line 663: PHP message: PHP Fatal error:  Allowed memory size of 134217728 bytes exhausted (tried to allocate 512 bytes) in /apps/svr/zabbix/wwwroot/api/classes/CItem.php on line 1088"

last hit: 08:33:24        atop runtime:  0 days, 00:05:20            08:33:29
All:          84 reqs (  0.3/sec)        40.2K (  130.5B/sec)    489.5B/req
2xx:      84 ( 100%) 3xx:      0 ( 0.0%) 4xx:    0 ( 0.0%) 5xx:    0 ( 0.0%)
R ( 30s):      7 reqs (  0.2/sec)      4759.0B (  158.6B/sec)    679.9B/req
2xx:      7 ( 100%) 3xx:      0 ( 0.0%) 4xx:    0 ( 0.0%) 5xx:    0 ( 0.0%)

您可能感兴趣的文章:

  • python分析apache访问日志脚本分享
  • Linux下apache日志分析与状态查看方法
  • apache日志文件详解和实用分析命令
  • apache使用日志分割模块rotatelogs分割日志详解
  • 在Linux系统上查看Apache服务器的错误日志
  • 限制 Apache日志文件大小的方法
  • Apache访问日志的配置与使用

    main()

上述就显示了2xx,3xx,4xx,5xx状态嘛的请求绿.还有默认30秒的请求数据

  -d secs     刷新延迟时间 [5]

    print data

 REQS REQ/S    KB KB/S URL
    7  0.24  4.6  0.2*/co/b_api/a_api.php

  1. apachetop使用实例

'{"params": {"templates": [{"templateid": "10117"}, {"templateid": "10132"}, {"templateid": "10133"}, {"templateid": "10134"},

Debian下安装Apachetop非常简单,一条命令即可。

我们经常会需要知道服务器的实时监测服务器的运行状况,比如哪些 URL 的访问量最大,服务器每秒的请求数,哪个搜索引擎正在抓取我们网站?面对这些问题,我们虽然可以去分析查看统计访问日志文件,但是却不能让我们实时统计,不能给我们直观的统计数据。现在好了,apachetop这个工具就可以实时的跟踪log的变化,能查看访问者正在查看哪些文件,和访问者IP等信息。

                "templateid":idx,           

这样我们可以获取到页面使用率最高,百分比最高的页面,做进一步的优化。

apachetop也可以实时监测nginx日志,不过nginx访问日志格式必须是通用或联合日志格式,否则有些信息统计不到。

    hostname = "linuxidc_Template_OS_Linux_Hadoop_Datanode_Pro"

apachetop还有一个过滤机制.这也是这个命令最大的特色.

t:  固定显示 ON/OFF:
       u) urls  r) referrers  h) hosts

def authenticate(url, username, password):

比如 你在监控的页面, 按  "f" "a" "u"  这个表示 filter->add->url 然后输入 ".php"  (双引号里的内容)  ,则apachetop会把显示的URL限制为以 .php 结尾的URL.

  1. apapchetop使用

        message = output['error']['data']

#apachetop -f /var/log/apache2/access.log

  1. apachetop安装

error log:

f:  使用过滤器:
       a) add/edit menu c) clear all  s) show active (not done yet)
       a:  ADD FILTER SUBMENU
               u) to urls  r) to referrers  h) to hosts

memory_limit = 1280M

当执行之后,还有命令可以切换显示状态:

线上是200台左右的集群,模块采用了link的方式来添加,即一个模板下link大量的模块,然后主机添加到这个模板里。

美高梅网投平台 2

[04-May-2014 14:04:32.115327] DEBUG: pid 6270, fpm_got_signal(), line 72: received SIGCHLD

复制代码 代码如下:

    username = 'admin'

    values = {'jsonrpc': '2.0',

                  'user': username,

                  'output': "extend",

CentOS 6.3下Zabbix安装部署 http://www.linuxidc.com/Linux/2013-05/83786.htm

更改为

[04-May-2014 14:04:32.115874] DEBUG: pid 6270, fpm_event_loop(), line 409: event module triggered 1 events

    print output

import urllib2

              },

    values = {'jsonrpc': '2.0',

    return idvalue['result']

即在做link模板时,需要把相关的数据放在php的内存中,而默认的设置是128M,如果在item和host比较多的时候,很容易就会超过这个限制。

[04-May-2014 14:04:32.115371] NOTICE: pid 6270, fpm_children_bury(), line 227: child 6294 stopped for tracing

Zabbix分布式监控系统实践 http://www.linuxidc.com/Linux/2013-06/85758.htm

[04-May-2014 14:04:32.115189] WARNING: pid 6270, fpm_request_check_timed_out(), line 271: [pool www] child 6294, script '/apps/svr/zabbix/wwwroot/api_jsonrpc.php' (request: "POST /api_jsonrpc.php") executing too slow (1.269946 sec), logging

    output = requestJason(url,values)

    data_get = response.read()

import sys

[04-May-2014 14:04:32.115385] NOTICE: pid 6270, fpm_php_trace(), line 142: about to trace 6294

    values = {'jsonrpc': '2.0',

    #id_list = [{"templateid":'10843'},{"templateid":"10554"},{"templateid":"10467"},{"templateid":"10560"},{"templateid":"10566"},{"templateid":"10105"}]

              }

    output = json.loads(data_get)

    url = 'xxxx'

                "templates":id_list

    print id_list

[04-May-2014 14:04:35.318665] DEBUG: pid 6270, fpm_event_loop(), line 409: event module triggered 1 events

回过头来看这个问题:

直接通过脚本来调用api测试:

    except:

CentOS 6.3下Zabbix监控apache server-status http://www.linuxidc.com/Linux/2013-05/84740.htm

php-fpm.conf:

ZABBIX 的详细介绍:请点这里
ZABBIX 的下载地址:请点这里

              }

因此要合理的设置php的相关参数,在debug的时候调低日志级别并开启slow log来方便定位问题。

    idx = getTemplate(hostname,url,auth)

              },

zabbix不同于一般的线上应用,在调用api做更新时,是一个batch的行为,对内存和执行时间有一定的要求。

              }

为了增加NM的监控,也采用了link的方式来连接模板,在页面上link时发现一直返回一个空白页。

    return output

if __name__ == '__main__':

    data = json.dumps(values)

              },

    req = urllib2.Request(url, data, {'Content-Type': 'application/json-rpc'})

#!/usr/bin/env python

 

              'id': '2'

CentOS 6.3下Zabbix监控MySQL数据库参数 http://www.linuxidc.com/Linux/2013-05/84800.htm

    temlist = ['linuxidc_Template_LB_Tengine_8090','linuxidc_Template_Redis_6379','linuxidc_Template_Redis_6380','linuxidc_Template_Redis_6381','linuxidc_Template_Redis_6382','linuxidc_Template_Redis_6383']

《安装部署分布式监控系统Zabbix 2.06》 http://www.linuxidc.com/Linux/2013-07/86942.htm

curl  -vvv -i -X POST -H 'Content-Type:application/json' -d

def getTemplate(hostname,url,auth):

在通过页面link模板时,其实也是调用了zabbix template相关的api(具体调用了template.update方法)

    print json.dumps(message) 

安装部署分布式监控系统Zabbix 2.06 http://www.linuxidc.com/Linux/2013-07/86942.htm

[04-May-2014 14:50:21.318071] WARNING: pid 4131, fpm_request_check_timed_out(), line 281: [pool www] child 4147, script '/apps/svr/zabbix/wwwroot/api_jsonrpc.php' (request: "POST /api_jsonrpc.php") execution timed out (10.030883 sec), terminating

              'auth': auth,

def changeTemplate(idx,id_list,url,auth):

    auth = authenticate(url, username, password)

def requestJason(url,values):

              'auth': auth,

    try:

返回500错误(即后端php处理时遇到错误导致),调整php的配置,把日志改成debug格式:

    id_list = []

测试脚本

更改 request_terminate_timeout = 1800(默认是10s),max_execution_time = 0(默认30s),重新测试。ok.

美高梅网投平台 3

本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-05/101583.htm

              'id': '2'

为了快速上线,改变了下方法,使用了host.update的api,直接把host link到NM的模板。

        message = output['result']

{"templateid": "10135"}, {"templateid": "10136"}], "templateid": "10464"}, "jsonrpc": "2.0", "method": "template.update", "auth": "421a04b400e859834357b5681a586a5f", "id": "2"}'

    return  output['result'][0]['hostid']

                  'password': password

[04-May-2014 14:04:32.115835] NOTICE: pid 6270, fpm_php_trace(), line 170: finished trace of 6294

                      'host': hostname

def main():

    password = 'xxxx'

import json

    output = requestJason(url,values)

    print output

              'method': 'template.update',

urllib2.HTTPError: HTTP Error 500: Internal Server Error

log_level = debug

重新测试,返回了502 Bad Gateway错误,即后端执行超时导致。

        idtemp = getTemplate(tem,url,auth)

    idvalue = requestJason(url,values)

编辑推荐:

              'method': 'user.login',

                  }

              'params': {

因为最近线上的Hadoop集群从mrv1升级到mrv2了,监控模板也跟着变动了。。

脚本结果:

    changeTemplate(idx,id_list,url,auth)

        quit()

        id_list.append({"templateid":idtemp})

              'id': '0'

美高梅网投平台 4

美高梅网投平台,              'params': {

    response = urllib2.urlopen(req, data)

    print output['result'][0]['hostid']

    for tem in temlist:

因为api其实是发送了一个jason格式的post请求,手动使用curl来验证:

TAG标签:
版权声明:本文由美高梅网投平台发布于美高梅简介,转载请注明出处:动态分析服务器运行状态,使用Apachetop来分析A