我需要在Javascript/Node.js中解析大型(5-10 Gb)日志文件(我正在使用Cube).
日志看起来像:
10:00:43.343423 I'm a friendly log message. There are 5 cats, and 7 dogs. We are in state "SUCCESS".
Run Code Online (Sandbox Code Playgroud)
我们需要读取每一行,进行一些解析(例如剥离5,7然后SUCCESS),然后使用他们的JS客户端将这些数据泵入Cube(https://github.com/square/cube).
首先,Node中逐行读取文件的规范方式是什么?
这似乎是在线相当常见的问题:
许多答案似乎指向一堆第三方模块:
但是,这似乎是一项相当基本的任务 - 当然,在stdlib中有一种简单的方法可以逐行读取文本文件吗?
其次,我需要处理每一行(例如,将时间戳转换为Date对象,并提取有用的字段).
什么是最好的方法,最大化吞吐量?是否有某种方法不会阻止每行读取或将其发送到Cube?
第三 - 我猜测使用字符串拆分,并且JS等价的contains(IndexOf!= -1?)将比正则表达式快得多?有没有人在Node.js中解析大量文本数据方面有很多经验?
干杯,维克多
我将在R中进行一些日志文件分析(除非我不能在R中执行),并且我理解我的数据需要适合RAM(除非我使用某种类型的修复,如关键字存储的接口,也许?).所以我想知道如何提前告诉我的数据将占用多少空间,以及我是否有足够的空间.我知道我有多少RAM(不是很大 - 在XP下3GB),而且我知道我的日志文件最终会有多少行和列,以及col条目应该是什么数据类型(这可能需要检查为它读).
如何将这一点整合到go/nogo决策中以便在R中进行分析?(据推测,R需要能够有一些RAM来进行操作,以及保存数据!)我的即时需求输出是一堆简单的汇总统计数据,频率,意外情况等,所以我可能会写一些解析器/制表器将为我提供短期需要的输出,但我也希望在下一步中使用许多不同的方法来处理这些数据,所以我正在研究使用R的可行性.
我已经在R中看到了很多有关R中大型数据集的有用建议,我已阅读并将重读,但现在我想更好地了解如何确定是否应该(a)去那里,(b)去但是我希望不得不做一些额外的事情让它变得易于管理,或者(c)在为时已晚之前逃跑并在其他语言/环境中做些事情(建议欢迎......!).谢谢!
我知道还有其他工具,比如awstats或splunk,但是我想知道是否在R中进行了一些严肃的(网络)服务器日志文件分析.我可能不是第一个想到在R中做这个,但是R还有很好的可视化功能和漂亮的空间包.你知道吗?或者是否有一个R包/代码来处理可以构建的最常见的日志文件格式?或者这只是一个非常糟糕的主意?
这是我的第一篇文章,所以对我很轻松.我的问题与此类似,但我无法使其工作,尽管我真的尝试过:" py2exe与enthought和pandas ".
已经分别安装了两个版本的python(x84-64,x32)和库,我继续使用py2exe生成python脚本的可执行文件.我不得不下载丢失的DLL文件:msvcp90.dll,libiomp5md.dll,libifcoremd.dll,libmmd.dll.
我创建的exe文件返回错误并生成日志文件 - x32和x64 python和库不同.
对于32位python和库,我得到了以下日志文件(根据我安装的numpy库不同而不同:http://www.lfd.uci.edu/~gohlke/pythonlibs/#numpy)
对于numpy-1.8.0-win32-superpack-python2.7,我收到了多个以下信息:
File "gui.py", line 7, in <module>
File "pyqtgraph\__init__.pyc", line 177, in <module>
File "pyqtgraph\__init__.pyc", line 167, in importAll
File "pyqtgraph\__init__.pyc", line 159, in importModules
Traceback (most recent call last):
File "gua.py", line 7, in <module>
File "pyqtgraph\__init__.pyc", line 180, in <module>
File "pyqtgraph\imageview\__init__.pyc", line 6, in <module>
File "pyqtgraph\imageview\ImageView.pyc", line 20, in <module>
File "pyqtgraph\imageview\ImageViewTemplate_pyqt.pyc", line 159, in <module>
File "pyqtgraph\widgets\PlotWidget.pyc", line 10, in <module>
File …Run Code Online (Sandbox Code Playgroud) 对日志文件进行故障排除,分析和过滤是迄今为止最费力的日常工作之一.我的问题是搜索日志文件,其大小可能超过4个演出.只需加载文件最多需要15分钟.我正在运行一个相当快的处理器,有8个内存.文件加载后,我实际上只有grep和/或control + F的奢侈品来扫描文件.当我试图从多个系统中查看文件时,这会变得更糟.尝试根据时间戳分隔文件,使它们变小,但真的没有快乐.
是否有一个工具甚至一个过程可以用来减少故障排除(除了通常的"只是先修复bug")?
您的意见表示赞赏.
我有一大堆(~1000)来自我正在尝试处理的数据记录器的文件.
如果我想从这些日志文件中的一个中绘制趋势,我可以使用它
plot(timevalues,datavalues)
Run Code Online (Sandbox Code Playgroud)
我希望能够以与示波器具有"持久"模式的方式类似的方式同时查看所有这些线.

我可以拼凑一些使用直方图的东西,但我希望有一个预先存在的或更优雅的解决方案来解决这个问题.
我有一堆perfmon文件,它们在一段时间内捕获了信息.什么是破解这些信息的最佳工具?理想情况下,我希望能够每小时看到已监控的对象计数器的avg统计数据.
我一直在研究MapReduce,它似乎是实现容错分布式计算的一种非常好的方法.我阅读了很多关于该主题的论文和文章,在一系列虚拟机上安装了Hadoop,并做了一些非常有趣的测试.我真的认为我理解Map和Reduce步骤.
但这是我的问题:我无法弄清楚它如何帮助http服务器日志分析.
我的理解是大公司(例如Facebook)使用MapReduce来计算他们的http日志,以便加快从中提取受众统计数据的过程.我工作的公司,虽然比Facebook小,但每天都有大量的网络日志需要计算(100Go每月增长5%到10%).现在我们在一台服务器上处理这些日志,它运行得很好.但是,作为一种即将有用的优化,可以立即想到分发计算工作.
以下是我现在无法回答的问题,非常感谢任何帮助:
谢谢.
萨科
我正在开发5个不同的rails项目,还有一些重构(从旧的rails版本转移到2.3) - 从日志文件中提取错误信息的最佳方法是什么,所以我可以看到所有的折旧警告,运行时错误等等在,所以我可以努力改善代码库?
你可以推荐哪些服务或库,实际上有助于rails logfile解析?