有logstash的问题读取文件并输出到stdout和另一个文件

时间:2015-08-03 16:28:35

标签: logstash

我有一个我正在研究的项目,并希望尝试将其连接到以logstash开头的ELK堆栈。基本上我有python写这个名为stockLog的文件:

{'price': 30.98, 'timestamp': '2015-08-03 09:51:54', 'symbol':'FORTY',
  'ceiling': Decimal('31.21'), 'floor': Decimal('30.68')}

我已安装logstash并且(理想情况下)已准备好运行。我的logstash.conf文件如下所示:

input {
    file { path => "/home/test001/stockLog"
    start_position => beginning }
    }
output {
    stdout {}
        file {
              path => "/home/test001/testlog"
             }
    }

我的目标是在安装Elasticsearch并开始保存数据之前,实际上能够看到logstash如何读取python字典。基本上即使logstash有很多格式化选项,我想让我的python脚本完成提升并将其放在最容易与下游一起工作的格式中。

我的问题是,无论我在logstash.conf文件中更改了什么,我都无法打印到我的终端上显示logstash正在做什么。我没有错误但是当我执行这个命令时:

test001@test001:~$ sudo /opt/logstash/bin/logstash -f /opt/logstash/logstash.conf

我收到一条消息,说logstash已经正确启动,并且输入了我的终端但没有stdout显示它在我的stockLog文件中的字典有什么作用。

到目前为止,我已尝试过围绕文件名,而不是。我已经添加了你可以在上面看到的文件输出,看它是否实际上写了任何东西到该文件,即使我没有在我的终端上看到输出(它没有),我已经尝试使用codec => rubydebug看到如果logstash只需要了解我想看到的格式。什么都没有告诉我logstash正在做任何事情的迹象。

非常感谢任何帮助,我需要通过各种方式获取更多信息。

谢谢!

1 个答案:

答案 0 :(得分:0)

最后答案结​​果分为三步。

  1. 如上所述,我需要停止覆盖文件,而只是添加到文件中。
  2. 我使用json过滤器让数据很容易按照我想要的方式分解。一旦在python中使用json.dumps转换为json,logstash json过滤器就可以轻松处理数据。
  3. 我意识到在将其放入弹性搜索之前尝试查看logstash将要做什么是没有意义的,因为如果信息形状不正确,我很容易删除它(我将被永久性灌输splunk对不起家伙的索引)。