连续日志文件处理并使用python提取所需数据

问题描述 投票:1回答:3

我必须分析一个日志文件,该文件将连续生成24 * 7。因此,数据将是巨大的。我将获得凭证到生成日志文件的位置。但是我如何获取流数据(我的意思是像任何免费工具或流程一样),以便可以在python代码中使用它来从该日志流中提取一些必需的信息,并且必须使用该数据准备一个实时仪表板。请说明实现上述任务的一些可能性。

python logging bigdata
3个回答
0
投票

您可以通过导入以下代码在python代码中创建记录器:

import logging
logging.basicConfig(filename='example.log', level=logging.DEBUG) # Creates log file

从那里,您可以使用记录器根据您希望执行的任务的重要性来跟踪程序中的特定任务:

logging.info("Stream data recorded successfully")  # Reports events occuring
logging.debug("Running Diagnostics") # Can be used for detailed diagnostic tracking
logging.warning("Unknown File: " + filename) # Issues warnings about runtime events
logging.error("An issue occurred") # reports error without raising an exception

收集所有数据之后,您可以解析日志以查找要在实时仪表板中使用的特定消息(例如仅分析错误和警告),而不必显示每条消息。已发送到记录器。就是说,有一个log parser library package适用于python,可以使用pip轻松安装:

pip install pylogsparser

[如果您希望通过python代码手动解析,则Code Hanger中的此文件对于根据您的特定项目开始和修改很有用。

python's documentation website上还有关于记录器的更多信息,这里是basic logging tutorial可帮助您入门。希望以上说明对您有所帮助。


0
投票

看来pygtail可以满足您的要求:https://pypi.org/project/pygtail/

from pygtail import Pygtail

for line in Pygtail("some.log"):
    sys.stdout.write(line)

0
投票

只是一个建议

您可以尝试使用ELK:

ELK,Elasticsearch(ES),Logstash和Kibana的缩写,是最受欢迎的开源日志聚合工具。 Es是NoSQL。 Logstash是一个日志管道系统,可以提取数据,转换数据并将其加载到类似Elasticsearch的存储中。 Kibana是Elasticsearch之上的可视化层。

您可以使用Mongo DB处理如此大量的数据:

MongoDB是一个开源文档数据库,并且是领先的NoSQL。 Mongo DB以json格式存储数据。处理日志并将其存储为json格式,然后将其检索以备将来使用。

基本上不是一个简单的问题可以解释,它取决于场景。

© www.soinside.com 2019 - 2024. All rights reserved.