`
vtrtbb
  • 浏览: 360556 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

转一个linux apache 日志分析与状态

 
阅读更多

ps.转的一篇文章

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

问题2:在apache日志中找出访问次数最多的几个分钟。

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个字符 -- 00:59
剩下的内容和问题1类似。


问题3:在apache日志中找到访问最多的页面:


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)”


问题4:在apache日志中找出访问次数最多(负载最重)的几个时间段(以分钟为单位),然后在看看这些时间哪几个IP访问的最多?

1,查看apache进程:
ps aux | grep httpd | grep -v grep | wc -l // ps aux是显示所有进程和其状态。

2,查看80端口的tcp连接:
netstat -tan | grep "ESTABLISHED" | grep ":80" | wc -l

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

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

4,当天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

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

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

6,用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


7,查看某一时间段的ip连接数:
grep "2006:0[7-8]" www20110519.log | awk '{print $2}' | sort | uniq -c| sort -nr | wc -l

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

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

9,查看日志中访问次数最多的前10个IP
cat access_80_log |cut -d ' ' -f 1 |sort |uniq -c | sort -nr | awk '{print $0 }' | head -n 10 |less

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

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

11,查看最近访问量最高的文件

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

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

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

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

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

14,列出最最耗时的页面(超过60秒的)的以及对应页面发生次数

cat access_log |awk '($NF > 60 && $7~/\.php/){print $7}'|sort -n|uniq -c|sort -nr|head -100

 

cat `ls -la | grep ^[^d] |awk '{print $9} '` | awk '.....'

分享到:
评论

相关推荐

    Apache日志分析手册

    Apache日志分析手册详细介绍了如何在Linux环境下利用Apache服务器的访问日志来分析和诊断问题。在生产环境中,服务器的运行状况往往可以通过日志文件得到反映,特别是在发现访问量异常、响应缓慢或出现错误信息时。...

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

    本文将详细介绍如何使用Linux命令行工具来分析Apache日志和查看服务器状态。 1. 查找访问次数最多的10个IP 使用`awk`命令可以提取日志中的IP地址,`sort`进行排序,`uniq -c`统计每个IP出现的次数,再用`sort -nr`...

    Linux网络日志分析与流量监控

    ### Linux网络日志分析与流量监控 #### 一、引言 随着信息技术的快速发展,网络安全已成为企业和组织关注的重点。为了确保网络安全稳定运行,对网络日志进行有效的分析和监控至关重要。《UNIX+Linux网络日志分析与...

    最新版linux apache-tomcat-7.0.104.tar.gz

    "linux"表明它是与Linux系统相关的,"apache"指的是Apache软件基金会,Tomcat是其维护的一个项目。"tomcat"则直接指代了这款应用服务器,"7.0.104"再次强调了软件的具体版本。 【压缩包子文件的文件名称列表】:...

    windows日志分析#linux日志分析#web日志分析#windows入侵排查#linux入侵排查

    Web服务器如Apache和Nginx会生成详细的访问日志,记录每个HTTP请求的详细信息,包括客户端IP、请求时间、URL、HTTP状态码等。通过分析这些日志,可以发现潜在的DDoS攻击、恶意爬虫或者SQL注入尝试。一些工具如...

    查看apache日志

    ### 查看Apache日志 #### 知识点一:Apache简介 Apache是一款广泛使用的Web服务器软件,支持多种操作系统,如Windows、Linux等。它通过高度模块化的结构来提供灵活的功能扩展性,支持动态加载模块,这使得Apache...

    linux-Apache

    Linux Apache 知识点详解 ...总结,Linux版的Apache是一个强大的Web服务器,提供了丰富的功能和高度的灵活性。通过理解并熟练掌握上述知识点,你可以有效地管理和维护自己的Apache服务器,为用户提供稳定的服务。

    Apache linux下部署

    ### Apache在Linux下的部署与配置 #### 一、Apache服务的安装 在Linux环境下部署Apache Web服务器是一项基础但重要的任务。本文将详细介绍如何在Linux系统上安装和配置Apache Web服务器。 1. **安装Apache服务** ...

    apache2.2.22for linux

    Apache HTTP Server 2.2.22 for Linux 是一个针对Linux操作系统优化的开源Web服务器软件版本。Apache HTTP Server,简称Apache,是世界上最流行的Web服务器软件之一,它支持多种操作系统平台,包括Linux。这个版本...

    基于Linux的日志分析.pdf

    【基于Linux的日志分析】 日志分析在系统和网络维护中扮演着至关重要的角色,它为故障排查、安全监控提供了关键信息。Linux操作系统中的日志系统尤其强大,它记录了系统运行过程中的各种事件,包括审计、监测以及...

    Linux下搭建Apache

    在Linux系统中搭建Apache HTTP服务器是一项基础且重要的工作,它为用户提供了一个稳定、高效且开源的Web服务环境。Apache是互联网上最广泛使用的Web服务器,它的强大功能和灵活性使其成为许多网站和应用的首选。本...

    apache-linux-x64

    Apache Linux x64是针对64位Linux操作系统的一款Apache Web服务器软件包。Apache HTTP Server(简称Apache)是最流行、最广泛使用的开源Web服务器之一,它以其稳定性和灵活性赢得了全球用户的青睐。在Linux环境下,...

    Web应用安全:apache日志配置.docx

    本文将深入探讨Apache日志配置,帮助读者掌握如何管理和分析这些日志。 一、Apache主配置文件 Apache的主配置文件在Kali Linux系统中通常位于`/etc/apache2/apache2.conf`。尽管这是一个主要的配置文件,但它并不...

    Linux日志分析与视频分享资料

    本文详细介绍了如何利用Linux命令行工具进行Apache日志分析的方法,包括基本的日志查询、排序、统计以及更高级的分析技术。通过这些工具和技术,我们可以更好地监控和管理我们的服务器,确保系统的稳定性和安全性。...

    apache linux

    Apache Linux 是一个基于开源Apache HTTP Server与Linux操作系统相结合的服务器平台,它在互联网服务领域扮演着重要的角色。Apache HTTP Server是世界上最流行的Web服务器软件之一,而Linux作为一款免费且开源的操作...

    linux系统下安装及监控apache

    Apache提供了一个名为`server-status`的模块,可以实时查看服务器状态和性能。首先,需要在`httpd.conf`中启用此模块: ```bash LoadModule status_module modules/mod_status.so ExtendedStatus On ``` 然后,...

    linux的Apache用户认证、域名跳转、Apache访问日志介绍1

    默认情况下,Apache在`/var/log/apache2`或类似目录下生成两个日志文件:`access.log`(访问日志)和`error.log`(错误日志)。 访问日志格式可以通过`LogFormat`指令自定义,例如,常用的`combined`格式: ```...

    Apache2 for Linux

    综上所述,Apache2 for Linux是一个强大且灵活的Web服务器解决方案,其丰富的配置选项和模块支持使其能够适应各种复杂的Web环境。通过理解并掌握这些基本概念和操作,你可以更好地管理和优化你的Web服务器。

    最新版linux apache-tomcat-8.5.56.tar.gz

    Apache Tomcat是一款开源的Java Servlet容器,主要用于部署和运行Java Web应用程序,特别是那些基于Java EE的Web应用。在Linux环境中,Tomcat与Apache HTTP服务器一起使用可以构建强大的动态Web服务。这里我们关注的...

Global site tag (gtag.js) - Google Analytics