我有以下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作为服务运行?
答案 0 :(得分:1)
这几乎肯定是权限问题。手动运行logstash时,以用户身份运行它,当它作为服务运行时,它作为logstash用户运行。
测试您是否有权访问您的文件:
sudo -u logstash /bin/bash
这会将您作为logstash用户登录到shell。尝试减少您尝试阅读的文件。
如果您有权访问,则需要检查sincedb文件(将路径设置为/ dev / null)并重新启动,请参阅:How to force Logstash to reparse a file?
如果您无权访问,请将文件移动到有权访问的位置。或者授予对logstash用户/组的读访问权。
此致
Artur