在线日志分析

通过日志分析的命令和脚本,筛选日志中有价值的内容,可以分析得出系统产生问题的原因。

一、日志分析常用命令

1、查看文件的内容
cat -n

2、分页显示文件
more
enter 显示文件下一行、空格键显示下一页、f键显示下一屏、b键显示上一屏

less 支持/查找

3、显示文件尾
tail -n -f

4、显示文件头
head -n

5、内容排序
sort -n数字排序 -r逆序 -t分隔符 -k 第几列
eg:
192.168.142.56 - - [09/Mar/2016:16:42:59 +0800] "POST /jdy-servlet/users HTTP/1.1" 200 11
按照响应时间排序: sort -n -t‘ ‘ -k10 fileName

6、字符统计
wc 可以统计指定文件中的字符数、字数、行数、并输出统计结果

7、查看重复出现的行
uniq
sort file | uniq -c 排序后去重

8、字符串查找
grep
grep -c qq file -c 显示查找到的行数
grep -c ‘G.*T‘ file 正则式

9、文件查找
find
find ./ -name ‘*.txt‘

find . -print 递归显示所有的文件

whereis startuo.sh 定位到文件系统中可执行文件的位置

10、表达式求值
expr
加减乘除 + - \* / %
字符串操作:
索引位置: expr index ‘www.baidu.com‘ com
字符串长度: expr length ‘www.baidu.com‘

11、归档文件
tar -c 生成新的包 -f 命名 -z 压缩 -x解压
-zcv -zxf

12、URL访问工具
curl
支持HTTP、HTTPS、FTP、FTPS、 Telnet等协议;
提交表单、传递cookie信息、构造refer等操作

实例:
1、查看请求访问量
192.168.143.39 - - [09/Mar/2016:08:20:54 +0800] "POST /jdy-servlet/users HTTP/1.1" 200 596
ip访问量前三: cat access_log.txt | cut -f1 -d‘ ‘ | sort -n | uniq -c | sort -r -n -k1 -t‘ ‘ | head -n3
页面访问量前三: cat access_log.txt | cut -d‘ ‘ -f7 | sort | uniq -c | sort -n -r -k1 -t‘ ‘ | head -n3

2、查看最耗时的页面
cat access_log.txt | sort -n -r -t‘ ‘ -k10 | head -n20

3、统计404请求占比
export total_line=`wc -l access_log.txt |cut -f 1 -d ‘ ‘` && export not_found_line=`awk ‘{if($9=="404")print $6}‘ access_log.txt|wc -l` && echo $not_found_line / $total_line

二、日志分析脚本
1、sed:
流编辑器是在编辑数据之前,预先指定数据的编辑规则,然后按照规则将数据输出到标准输出;
在流编辑器的搜欧规则与输入的行匹配完毕以后,编辑器读取下一行,重复之前的规则;
处理完搜所有的数据后,流编辑器停止;
sed是面向行的,并且sed不会修改文件本身;

s 文本替换
将日志中的jdy替换成google输出
sed ‘s/jdy/google/‘ access_log.txt | head -10

-n 输出指定的行
筛选文件中指定的行输出
sed -n ‘2,6p‘ access_log.txt

d 文本删除
根据正则表达式删除文件中指定的行
sed ‘/jdy/d‘ access_log.txt

= 显示文件行号
显示文件行号
sed ‘=‘ access_log.txt

i 行首插入内容
在行首插入文本 head
sed -e ‘i\head‘ access_log.txt | head -10

a 行末追加文本
在每一行的尾末追加ecd
sed -e ‘a\end‘ access_log.txt | head -10

c 将匹配到的行进行替换
sed -e ‘/jdy/c\hello‘ access_log.txt | head -10

将jdy替换为google,然后打印第一行到第七行,并且输出行号
sed -n ‘s/jdy/google/;1,7p;1,6=‘ access_log.txt

2、awk
awk提供了类似于编程的开放环境,能够自定义文本处理的规则

打印文件指定的列:
awk ‘{print $1}‘ access_log.txt | head -10

筛选指定的行,并打印其中的一部分列:
awk ‘/jdy/{print $5, $6}‘ access_log.txt | head -10

查找length大于40的行,并且打印改行的第三列:
awk ‘length($0)>40{print $3}‘ access_log.txt | head -10

输出第六行的请求方法和第十行的响应时间:
awk ‘{line = sprintf( "method:%s\", response:%s", $6, $10); print line}‘ access_log.txt |head -1

计算加总
$ cat count.txt | awk ‘{sum+=$1} END {print "Sum = ", sum}‘
Sum = 15.9
计算平均值
$ cat count.txt | awk ‘{sum+=$1} END {print "Average = ", sum/NR}‘

3、shell
(完善中…………)

时间: 2024-10-25 11:37:03

在线日志分析的相关文章

读书笔记-在线日志分析的常用命令

摘自<大型分布式网站架构设计与实践> 4.1在线日志分析 1.基础命令 操作 命令 说明 查看文件的内容 cat -n access.log -n显示行号 分页显示文件 more access.log Enter下一行,空格下一页,F下一屏,B上一屏 分页显示文件 less access.log 输入 /字符串 可查找并高亮 显示文件尾 tail -n2 -f access.log -n2显示最后2行,-f继续监听不退出 内容排序 sort -k 2 -t ' ' -n access.log

在线日志分析项目解读

1,日志的采集 从flume agent 上的数据一般分到两条线上一条是kafka 集群 ,后期可以用流式处理(spark streaming 或storm 等等)一条是到hdfs,后期可以用hive处理, 业界叫lambda架构 architecture (一般公司的推荐系统,就是用这种架构) flume-ng agent 采集收集日志后,聚合在一个节点上(也可以不聚合) 为什么要聚合?为什么不直接写到kafka集群? 假如公司规模比较大,有无数个flume节点,这么多都连kafka,会增加复

日志分析方法概述(转)

原文:日志分析方法概述 日志在计算机系统中是一个非常广泛的概念,任何程序都有可能输出日志:操作系统内核.各种应用服务器等等.日志的内容.规模和用途也各不相同,很难一概而论. 本文讨论的日志处理方法中的日志,仅指Web日志.其实并没有精确的定义,可能包括但不限于各种前端Web服务器――apache.lighttpd.tomcat等产生的用户访问日志,以及各种Web应用程序自己输出的日志. 在Web日志中,每条日志通常代表着用户的一次访问行为,例如下面就是一条典型的apache日志: 211.87.

日志分析方法概述

最近几年日志分析这方面的人才需求越来越多,主要伴随数据挖掘的快速发展而迅速增长的.碰巧又在工作中又接触到一些日志记录方面的工作,就顺便了解一下日志系统的整个流程.下面这篇文章转自百度同学的一篇文章,针对大规模日志分析,联系到hadoop,hive的解决方案,阐述的比较全面. 另外就是阿里已经开发出类似的系统odps-通过sql语言进行数据的分析处理,详情见:http://102.alibaba.com/competition/addDiscovery/faq.htm --------------

centos7搭建ELK开源实时日志分析系统

Elasticsearch 是个开源分布式搜索引擎它的特点有分布式零配置自动发现索引自动分片索引副本机制 restful 风格接口多数据源自动搜索负载等. Logstash 是一个完全开源的工具他可以对你的日志进行收集.分析并将其存储供以后使用如搜索. kibana 也是一个开源和免费的工具他 Kibana 可以为 Logstash 和 ElasticSearch 提供的日志分析友好的 Web 界面可以帮助您汇总.分析和搜索重要数据日志. 日志从客户端到服务端处理后在传递给客户的数据流流向如下

Hadoop应用开发实战案例 第2周 Web日志分析项目 张丹

课程内容 本文链接: 张丹博客 http://www.fens.me 用Maven构建Hadoop项目 http://blog.fens.me/hadoop-maven-eclipse/程序源代码下载:https://github.com/bsspirit/maven_hadoop_template/releases/tag/kpi_v1Flume部署:  http://blog.csdn.net/zhouleilei/article/details/8568147  周雷雷博客Chukwa部署

【转载】linux入侵日志分析

日志也是用户应该注意的地方之一.不要低估日志文件对网络安全的重要作用,因为日志文件能够详细记录系统每天发生的各种各样的事件.用户可以通过日志文件 检查错误产生的原因,或者在受到攻击和黑客入侵时追踪攻击者的踪迹.日志的两个比较重要的作用是:审核和监测.配置好的Linux的日志非常强大.对于 Linux系统而言,所有的日志文件都在/var/log下.默认情况下,Linux的日志文件已经足够强大,但没有记录FTP的活动.用户可以通过修改 /etc/ftpacess让系统记录FTP的一切活动. Linu

ELK+redis搭建日志分析平台

ELK+redis搭建日志分析平台 1.ELK简介 ELKStack即Elasticsearch + Logstash + Kibana.日志监控和分析在保障业务稳定运行时,起到了很重要的作用.比如对nginx日志的监控分析,nginx是有日志文件的,它的每个请求的状态等都有日志文件进行记录,所以可以通过读取日志文件来分析:redis的list结构正好可以作为队列使用,用来存储logstash传输的日志数据.然后elasticsearch就可以进行分析和查询了. 本文搭建的的是一个分布式的日志收

转载:日志分析

MARK 日志分析: http://blog.csdn.net/pkueecser/article/details/9569251 大数据应用--系统监控与日志分析PPT http://wenku.baidu.com/link?url=8CJ-URMjVTVaw3GM1AZ2w9A7V0CIeRz3dx7xvysILLk6IdWpJGT889gQ7-824G4hAK-T2tdqZY1Lo6CEN1hgqHQNlHhVFykWJ_9XQW6EN5K ============= 日志在计算机系统中是