我是Logstash的新手,我一直在尝试制作一个简单的.conf
文件来从示例日志文件中读取日志。我尝试了从sincedb_path
到$HOME/.sincedb
到将start_path
设置为"开始"等所有内容,但我似乎无法获取要读取的数据甚至stdout
。以下是我的示例日志中的示例行:
10.209.12.40 - - [06 / Aug / 2014:22:59:18 +0000]" GET /robots.txt HTTP / 1.1" 200 220" - " "实施例-PRG / 1.0"
www.example.com 10.209.11.40 - - [06 / Aug / 2014:23:05:15 +0000]" GET /robots.txt HTTP / 1.1" 200 220" - " "实施例-PROG / 1.0"
www.example.com 10.209.11.40 - - [06 / Aug / 2014:23:10:21 +0000]" GET /文件/位置路径HTTP / 1.1" 404 25493" http://blog.example.com/link-1" " Mozilla / 5.0(Macintosh; Intel Mac OS X 10_9_2)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 36.0.1985.125 Safari / 537.36"
以下是我正在使用的.conf
文件:
input
{
stdin
{
}
file
{
# type => "access"
path => ["/home/user/Desktop/path1/www.example.com-access_log_20140806.log"]
start_position => "beginning"
sincedb_path => "/dev/null"
}
}
filter
{
# if [type] == "access"
# {
grok
{
break_on_match => false
match => {
"message" => '%{IP:sourceIP} %{DATA:User_Id} %{DATA:User_Auth} \[%{HTTPDATE:timestamp}\] \"%{WORD:HTTP_Command} %{DATA:HTTP_Path} %{DATA:HTTP_Version}\" %{NUMBER:HTTP_Code} %{NUMBER:Bytes} \"%{DATA:Host}\" \"%{DATA:Agent}\"'
}
match => {
"message" => '%{HOST:WebPage} %{IP:sourceIP} %{DATA:User_Id} %{DATA:User_Auth} \[%{HTTPDATE:timestamp}\] \"%{WORD:HTTP_Command} %{DATA:HTTP_Path} %{DATA:HTTP_Version}\" %{NUMBER:HTTP_Code} %{NUMBER:Bytes} \"%{DATA:Host}\" \"%{DATA:Agent}\"'
}
}
# }
}
output
{
stdout
{
codec => rubydebug
}
}
我正在通过stdout
运行它以检查我是否获得输出。我得到以下输出:
{
"message" => "",
"@version" => "1",
"@timestamp" => "2015-07-02T20:48:55.453Z",
"host" => "monil-Inspiron-3543",
"tags" => [
[0] "_grokparsefailure"
]
}
我花了很多时间试图找出问题所在。请告诉我哪里出错了。
先谢谢。
编辑:文件名中出错。