apache日志分析(python)

#!/usr/bin/env python

import sys
import datetime
import socket
from file_backwards import *

MONTH = {
	‘Jan‘:1,
	‘Feb‘:2,
	‘Mar‘:3,
	‘Apr‘:4,
	‘May‘:5,
	‘Jue‘:6,
	‘Jul‘:7,
	‘Aug‘:8,
	‘Sep‘:9,
	‘Oct‘:10,
	‘Nov‘:11,
	‘Dec‘:12,
}

def parse_apache_date(datestr):
	day, month, yearandtime = datestr.split(‘/‘)
	year, hour, minute,second= yearandtime.split(‘:‘)
	return datetime.datetime(int(year),MONTH[month],int(day),int(hour),int(minute))

def countDict(d, k):
	if k in d:
		d[k] += 1
	else:
		d[k] = 1

def parse_apache_log(logfile,ten_m):
	result = {}
	with open(logfile) as fd:
		for line in filerev(fd):
			splited_line = line.split()
			datestr = splited_line[3][1:]
			apache_date = parse_apache_date(datestr)
			if apache_date > ten_m:
				countDict(result, apache_date.strftime(‘%s‘))
			else:
				return result

if __name__ == ‘__main__‘:
	now = datetime.datetime.now()
	timedelta = datetime.timedelta(minutes=10)
	ten_m_ago = now - timedelta
	key = ‘http.count‘
	data = parse_apache_log(sys.argv[1], ten_m_ago)
	sock = socket.socket()
	sock.connect((‘127.0.0.1‘, 2003))
	print data
	for k, v in data.items():
		sock.send("%s %d %s\n" % (key, v, k))
时间: 2024-10-31 16:27:27

apache日志分析(python)的相关文章

Linux下apache日志分析与状态查看方法

假设apache日志格式为:118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] “GET /Public/Css/index.css HTTP/1.1″ 304 – “http://www.a.cn/common/index.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.3)” 问题1:在apachelog中找出访问次数最多的10个IP.awk '{print $1}

Linux 下 apache 日志分析与状态查看[转]

假设apache日志格式为: 118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] “GET /Public/Css/index.css HTTP/1.1″ 304 – “http://www.a.cn/common/index.php” “Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.3)” 问题1:在apachelog中找出访问次数最多的10个IP. awk '{print $

Apache日志分析工具awstats配置

awstats软件下载地址: http://www.awstats.org/#DOWNLOAD https://awstats.sourceforge.io/#download 一.准备工作 1.一台Linux系统虚拟机或服务器,这里我使用的是CentOS7.3系统虚拟机 IP地址:192.168.115.120 域名:www. awstats.com 在CentOS7.3中执行下面的内容添加域名解析 echo "192.168.115.120  www. awstats.com" &

apache日志分析

安装dns和http服务 配置dns服务,启动服务 修改apache配置文件,开启服务,关闭防火墙 配置客户机dns地址,访问网站 日志分析系统的软件包挂载,安装awstat,解压到/opt目录 移动文件至/usr/local/awstats 进行配置 更改httpd配置文件权限 配置文件路径 更改awstats配置文件 重启服务,访问locallocal 改为本地域名 用工具刷新服务 写入周期性计划任务,启动,更改路径 再次访问地址 原文地址:https://blog.51cto.com/14

【运维小分享】Apache日志分析命令汇总

很多像我这样刚入门的小菜鸟,不知道日常怎么对自己的网站的日志进行分析,得出谁访问过我网站,访问什么,响应效果如何等等,在这里我对相关基础分析命令作个总结,大家可以参考一下&给修改意见. 在讲分析命令之前,首先要明确日志格式,每个人的格式不一定一样,如果与我的格式不一样则分析命令的列数号要作对应调整 141.10.225.94 - - [09/Dec/2016:15:42:45 +0800] "GET /wp-content/uploads/2016/12/56.jpg HTTP/1.1&

Apache 日志分析

日志格式: 118.78.199.98 – - [09/Jan/2010:00:59:59 +0800] "GET /Public/Css/index.css HTTP/1.1″ 304 – "http://www.a.cn/common/index.php" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; GTB6.3)" 访问次数最多的10个IP: awk '{print $1}' ap

Nginx/Apache日志分析脚本

1,查看apache进程: ps aux | grep httpd | grep -v grep | wc -l 2,查看80端口的tcp连接: netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l 3,通过日志查看当天ip连接数,过滤重复: cat access_log | grep "20/Oct/2008" | awk '{print $2}' | sort | uniq -c | s

Linux Apache日志分析--命令

1.获得访问前10位的ip地址cat access.log|awk '{print $1}'|sort|uniq -c|sort -nr|head -10 2.访问次数最多的文件或页面,取前10cat access.log|awk '{print $11}'|sort|uniq -c|sort -nr|head -10 3.列出传输最大的几个exe文件cat access.log |awk '($7~/\.exe/){print $10 " " $1 " " $4

python简单日志分析

其实Python编程语言(http://www.maiziedu.com/course/python-px/)功能很强大,能对网站进行Apache日志分析,从运营的角度如果一个只做内容的网站只看访问量是不够的,还需要关注用户打开的那些网站地址最多,打开的地址越多表明这个文章就是热点文章,最开始的自动标热功能就是这么来的,所以一般公司都会有详细的后台统计系统,不过对我们一般人来说,如果只是自己搭建个小站,实在没必要去再开发个系统,当然用第三方的统计系统也能解决问题,关键就看你放不放心了,假如我要看