Python中的日志分析

8 投票
2 回答
20210 浏览
提问于 2025-04-16 22:21

为了我们内部的监控工作,我想知道某一天发生了多少个异常。我们想从我们应用的日志文件中提取这些信息(这是一个Pylons项目)。

我想用Python来完成这个任务。我知道我可以写一个脚本,来对日志进行离线处理,统计异常的数量(可能还包括其他与异常相关的信息)。

我想问一下,Python中有没有现成的库可以用来分析日志文件,或者有什么好的方法可以做到这一点?

2 个回答

1

一些额外的信息,比如一个示例日志,会更好。一般来说,你可以使用强大的 re 库,它可以处理正则表达式。

正则表达式

re 库

所以,对于一般的问题,使用 re 库总是一个不错的选择...

如果你能提供一个示例日志,我可以看看是否能找到更适合你问题的解决方案。

8

我遇到了类似的情况,发现了一个叫做 logtools 的Python包,挺适合这个工作。我用它来分析Tomcat6/Solr的日志文件。

首先,从服务器上复制日志,然后在一个虚拟环境中安装 logtools

mkdir /tmp/logwtf
cd /tmp/logwtf
scp server:/var/log/tomcat6/catalina.2012-02-03.log ./catalina.log
virtualenv --system-site-packages --distribute .
. bin/activate
pip install -e 'git+https://github.com/adamhadani/logtools.git#egg=logtools'

接下来,可以总结一下搜索请求的流量:

qps -r'^(.*?) org\.apache\.solr\.core\.SolrCore execute' \
    -F '%b %d, %Y %I:%M:%S %p' \
    -W900 \
    --ignore \
    <catalina.log

查看下午1:10到1:20之间的所有服务器活动:

qps -r'^(.*? 1:1.:.. PM) ' \
    -F '%b %d, %Y %I:%M:%S %p' \
    -W15 \
    --ignore \
    <catalina.log

logtools 还包含一些额外的脚本,可以用来过滤机器人、按国家标记日志行、解析日志、合并、连接、抽样和过滤、聚合和绘图、解析URL、生成汇总统计以及计算百分位数。想了解更多信息,可以查看 这个包的GitHub页面

撰写回答