2015-09-02 139 views
0

我第一次使用logstash並試圖設置一個簡單的流水線來打印nginx日誌。下面是我的配置文件Logstash不打印任何東西

input { 
    file { 
    path => "/var/log/nginx/*access*" 
    } 
} 

output { 
    stdout { codec => rubydebug } 
}  

我已經將文件保存爲/opt/logstash/nginx_simple.conf

,並試圖執行以下命令

sudo /opt/logstash/bin/logstash -f /opt/logstash/nginx_simple.conf 

不過,我可以看到的唯一輸出是:

Logstash startup completed 
Logstash shutdown completed 

該文件當然不是空的。根據我的理解,我應該看到我的控制檯上的輸出。我究竟做錯了什麼 ?

+0

你正在追加東西到文件? –

+0

目前不在。它不從文件中獲取現有的東西嗎?如果沒有,那麼我該如何保持它的活性,以便它在啓動後不立即關閉? –

+0

如果你從命令行啓動它,它應該繼續運行,直到你殺死它。如果在此之前死亡,請檢查/ var/log/logstash/* –

回答

0

請嘗試此代碼作爲您的Logstash配置,以便爲打印nginx日誌設置一個簡單的管道。

input { 
    file { 
     path => "/var/log/nginx/*.log" 
     type => "nginx" 
     start_position => "beginning" 
     sincedb_path=> "/dev/null" 
    } 
} 

filter { 
    if [type] == "nginx" { 
    grok { 
     patterns_dir => "/home/krishna/Downloads/logstash-2.1.0/pattern" 
     match => { 
     "message" => "%{NGINX_LOGPATTERN:data}" 
     } 
    } 
    } 
    date { 
    match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] 
    } 
} 

output { 
    elasticsearch { 
    hosts => [ "127.0.0.1:9200" ] 
    } 

    stdout { codec => rubydebug } 
} 
0

確保日誌文件的字符編碼是UTF-8。如果不是,請嘗試更改並重新啓動Logstash。