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}‘ apache_log |sort |uniq -c|sort -nr|head -n 10

awk 首先将每条日志中的IP抓出来,如日志格式被自定义过,可以 -F 定义分隔符和 print指定列;

sort进行初次排序,为的使相同的记录排列到一起;

upiq -c 合并重复的行,并记录重复次数。

head进行前十名筛选;

sort -nr按照数字进行倒叙排序。

参考命令:

显示10条最常用的命令

sed -e "s/| //n/g" ~/.bash_history | cut -d ‘ ‘ -f 1 | sort | uniq -c | sort -nr | head

访问次数最多的几个分钟:

awk ‘{print $4}‘ access_log |cut -c 14-18|sort|uniq -c|sort -nr|head

awk 用空格分出来的第四列是[09/Jan/2010:00:59:59;

cut -c 提取14到18个字符

剩下的内容和问题1类似。

访问最多的页面:

awk ‘{print $11}‘ apache_log |sed ‘s/^.*cn/(.*/)/"//1/g‘|sort |uniq -c|sort -rn|head

类似问题1和2,唯一特殊是用sed的替换功能将”http://www.a.cn/common/index.php”替换成括号内的内

容:”http://www.a.cn(/common/index.php)”

访问次数最多(负载最重)的几个时间段(以分钟为单位),然后在看看这些时间哪几个IP访问的最多?

查看apache进程:

ps aux | grep httpd | grep -v grep | wc -l

查看80端口的tcp连接:

netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l

通过日志查看当天ip连接数,过滤重复:

cat access_log | grep "19/May/2011" | awk ‘{print $2}‘ | sort | uniq -c | sort -nr

当天ip连接数最高的ip都在干些什么(原来是蜘蛛):

cat access_log | grep "19/May/2011:00" | grep "61.135.166.230" | awk ‘{print $8}‘ | sort | uniq -c | sort -nr | head -n 10

当天访问页面排前10的url:

cat access_log | grep "19/May/2010:00" | awk ‘{print $8}‘ | sort | uniq -c | sort -nr | head -n 10

用tcpdump嗅探80端口的访问看看谁最高:

tcpdump -i eth0 -tnn dst port 80 -c 1000 | awk -F"." ‘{print $1"."$2"."$3"."$4}‘ | sort | uniq -c | sort -nr

查看该ip在干嘛:

cat access_log | grep 220.181.38.183| awk ‘{print $1"/t"$8}‘ | sort | uniq -c | sort -nr | less

查看某一时间段的ip连接数:

grep "2006:0[7-8]" www20110519.log | awk ‘{print $2}‘ | sort | uniq -c| sort -nr | wc -l

当前WEB服务器中联接次数最多的20条ip地址:

netstat -ntu |awk ‘{print $5}‘ |sort | uniq -c| sort -n -r | head -n 20

查看日志中访问次数最多的前10个IP:

cat access_log |cut -d ‘ ‘ -f 1 |sort |uniq -c | sort -nr | awk ‘{print $0 }‘ | head -n 10 |less

查看日志中出现100次以上的IP:

cat access_log |cut -d ‘ ‘ -f 1 |sort |uniq -c | awk ‘{if ($1 > 100) print $0}‘|sort -nr |less

查看最近访问量最高的文件:

cat access_log |tail -10000|awk ‘{print $7}‘|sort|uniq -c|sort -nr|less

查看日志中访问超过100次的页面:

cat access_log | cut -d ‘ ‘ -f 7 | sort |uniq -c | awk ‘{if ($1 > 100) print $0}‘ | less

列出传输时间超过 30 秒的文件:

cat access_log|awk ‘($NF > 30){print $7}‘|sort -n|uniq -c|sort -nr|head -20

最最耗时的页面(超过60秒的)的以及对应页面发生次数:
时间: 2024-10-13 12:20:17

Apache 日志分析的相关文章

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&

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

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

linux分析apache日志获取最多访问的前10个IP

apache日志分析可以获得很多有用的信息,现在来试试最基本的,获取最多访问的前10个IP地址及访问次数. 既然是统计,那么awk是必不可少的,好用而高效. 命令如下: awk '{a[$1] += 1;} END {for (i in a) printf("%d %s\n", a[i], i);}' 日志文件 | sort -n | tail 首先用awk统计出来一个列表,然后用sort进行排序,最后用tail取最后的10个. 以上参数可以略作修改显示更多的数据,比如将tail加上-