Logtop--Liunx/Unix下的日志实时统计分析工具

关于Logtop

如何在Linux系统上分析以日志文件作为输入的在线速率(频率)?如何定位Debian/Ubuntu等系统上Apache/Nginx/Lighttpd等web服务器受到的IP Flooding的IP地址?这里我们可以使用Logtop。Logtop可以显示标准输入收到字符串的实时计数,是一款非常基础但功能强大的实时日志(或任何文本)分析器。系统管理员可以用它来实时分析日志的写入相关,在标准输入(stdin)读取并打印一个不断更新的结果,打印输出格式显示:

Line line/rank(行数), count(计数), frequency(频率), and the actual line(实际行)

 

Logtop安装

Debian/Ubuntu安装:

$ sudo apt-get install logtop 或者 sudo aptitude install logtop

其他Linux发行版安装:

$ sudo git clone https://github.com/JulienPalard/logtop.git    #logtop.tar.gz/logtop.zip

$ sudo apt-get install libc6 libncurses5 libncurses5-dev uthash-dev libtinfo5       #Debian/Ubuntu

$ sudo yum install gcc ncurses ncurses-devel uthash-devel    #CentOS/RHEL

$ sudo chmod +x logtop/ -R && cd logtop/

$ sudo make && sudo make install 

$ logtop --help

Usage: tail -f something | logtop [OPTIONS]

    -s, --size=NUM         Number of log line to keep in memory

                           Defaults to : 10000

    -q, --quiet            Quiet, only display a top 10 at exit.

    -l, --line-by-line=NUM Print result line by line

                           in a machine friendly format,

                           NUM: quantity of result by line.

    -i, --interval=NUM     Interval between graphical updates,

                           in seconds. Defaults to 1.

  Line by line format is : [%d %f %s\t]*\n

    %d : Number of occurences

    %f : Frequency of apparition

    %s : String (Control chars replaced by dots).

   

Logtop的功能及使用

Logtop能做到的:

  • 显示实时的获取信息(类似top)
  • 显示行等级、频率、计数和实际线路
  • 如果想通过“无头(headless)”模式运行,有C和Python的开放的API

Logtop做不到的:

  • 占用你所有的CPU和RAM:logtop设计运行在生产服务器并对他们没有影响 
  • 理解或分析你的日志格式,这需要结合cut或者awk命令
  • 打开日志文件,使用tail -f(or -F)命令 

你需要通过tail然后解析日志(应为实时产生的日志),logtop将汇总,并计算它们的频率。

为了可读性,我会在例子中使用cut命令。小心注意cut缓冲区溢出,所以如果你的源是缓慢的,logtop会得到爆发性的数据。你可能会喜欢像这样每行通过awk显式刷新:

我们先从一些简单的例子开始,如果你想测试logtop NCSA日志格式(使用apache、nginx、varnish、..。):

tail -f access.log | awk '{print $9; fflush();}' | logtop

获取请求server的IP:

tail -f access.log | cut -d' ' -f1 | logtop 


获取请求server的URL:

tail -f access.log | cut -d' ' -f7 | logtop 

显示server回复的状态代码:

tail -f access.log | cut -d' ' -f9 | logtop 

显示请求server的用户代理:

tail -f access.log | cut -d' ' -f12- | logtop 

使用语法:

logtop [OPTIONS][FILE]command| logtop
command1 | filter | logtop
command1 | filter | logtop [options][file]

显示LAMP受到IP Flooding的IP地址:

tail -f app_access.log|cut -d' ' -f1|logtop

获取squid缓存HIT和MISS日志:

tail-f cache.log |grep-o"HIT\|MISS"| logtop

要从一些缓存软件日志得到实时命中/丢失中比对信息,输入命令:

tail -f access.log | cut -d' ' -f1 | logtop -s 20000

这里的'-s'选项(--size=NUM)用于修改logtop运行时可保存在内存中的行数,默认为10000

 

Blog

http://julienpalard.github.io/logtop/ 

Julien Palard

https://mdk.fr/ 

Awk using

http://my.oschina.net/HeAlvin/blog/659003 

转载于:https://my.oschina.net/HeAlvin/blog/700404

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值