2016-09-27 55 views
0

我有以下logstash.config文件:無法運行logstash作爲服務

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) : /選擇/斌/ logstash -f /etc/logstash/conf.d/logstash.config

但是當我嘗試運行logstash作爲服務(須藤服務logstash啓動)它不工作(沒有輸出文件被建造)。當我尾部的/ var /日誌/ 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

這些日誌調試日誌,而不是錯誤日誌,還等什麼,讓你認爲它不工作? – Val

+0

調試日誌是日誌的最低級別,消息與正常使用應用程序無關。 – baudsp

+0

如果您已經使用Logstash讀取了日誌文件,並且此文件之後未更新,Logstash將無法讀取任何內容,因爲它記住它停止的位置(參見https://www.elastic.co/guide/en /logstash/current/plugins-inputs-file.html#_tracking_of_current_position_in_watched_files)。 – baudsp

回答

1

這幾乎肯定是一個權限問題。在手動運行logstash時,將其作爲用戶運行,當它作爲服務運行時,它將作爲logstash用戶運行。

測試您可以訪問您的文件:

sudo -u logstash /bin/bash 

這將讓您登錄到一個shell作爲logstash用戶。儘量少嘗試讀取的文件。

如果你有機會,你需要檢查你的sincedb文件(路徑設置爲/ dev/null的),然後重新啓動,請參閱:How to force Logstash to reparse a file?

如果你用不上,地方在那裏移動文件他們確實有訪問權限。或授予對logstash用戶/組的讀取訪問權限。

問候,

阿圖爾

+0

沒錯!我的文件/home/username/log-stream-test.log有權給所有人讀取它,但是子目錄/ home/username /僅擁有所有者(用戶名)的權限。謝謝! – Danilo