无法将logstash作为服务运行

时间:2016-09-27 19:32:05

标签: logstash

我有以下logstash.config文件:

input {
    file {
        path => "/home/username/log-stream-test.log"
        start_position => "beginning"
        sincedb_path => "/dev/null"
    }
}
output {
    file {
        path => "/tmp/log-stream-output.log"
    }
}

我可以运行logstash强制配置文件(它将创建输出文件/tmp/log-stream-output.log): / opt / bin / logstash -f /etc/logstash/conf.d/logstash.config

但是当我尝试将logstash作为服务运行时(sudo service logstash start)它不起作用(没有创建输出文件)。当我尾随/ var / log / logstash /(并且--debug选项处于活动状态)时,我得到一些消息:

{:timestamp=>"2016-09-27T19:05:03.898000+0000", :message=>"Reading config file", :config_file=>"/etc/logstash/conf.d/logstash.config", :level=>:debug, :file=>"logstash/config/loader.rb", :line=>"69", :method=>"local_config"}
{:timestamp=>"2016-09-27T19:05:04.026000+0000", :message=>"Plugin not defined in namespace, checking for plugin file", :type=>"input", :name=>"file", :path=>"logstash/inputs/file", :level=>:debug, :file=>"logstash/plugin.rb", :line=>"86", :method=>"lookup"}

我错过了什么吗?如何使用此配置文件将logstash作为服务运行?

1 个答案:

答案 0 :(得分:1)

这几乎肯定是权限问题。手动运行logstash时,以用户身份运行它,当它作为服务运行时,它作为logstash用户运行。

测试您是否有权访问您的文件:

sudo -u logstash /bin/bash

这会将您作为logstash用户登录到shell。尝试减少您尝试阅读的文件。

如果您有权访问,则需要检查sincedb文件(将路径设置为/ dev / null)并重新启动,请参阅:How to force Logstash to reparse a file?

如果您无权访问,请将文件移动到有权访问的位置。或者授予对logstash用户/组的读访问权。

此致

Artur