我正在使用ELK堆栈配置。 logstash-转发用作日志托运人,记录每种类型的标记有一个类型标签:logstash,syslog和grok
{
"network": {
"servers": [ "___:___" ],
"ssl ca": "___",
"timeout": 15
},
"files": [
{
"paths": [
"/var/log/secure"
],
"fields": {
"type": "syslog"
}
}
]
}
这部分工作得很好......现在,我想logstash的消息字符串分割其部分;幸运的是,在默认模式神交已实现,所以logstash.conf仍然很简单迄今:
input {
lumberjack {
port => 6782
ssl_certificate => "___" ssl_key => "___"
}
}
filter {
if [type] == "syslog" {
grok {
match => [ "message", "%{SYSLOGLINE}" ]
}
}
}
output {
elasticsearch {
cluster => "___"
template => "___"
template_overwrite => true
node_name => "logstash-___"
bind_host => "___"
}
}
我这里的问题是,由elasticsearch接收的文件上仍占据整条生产线(包括时间戳等)在消息字段中。另外,@timestamp仍然显示logstash收到消息的日期,这使得搜索不好,因为kibana确实在查询@timestamp以便按日期过滤......任何想法我做错了什么?
谢谢,丹尼尔
太棒了!我通过1)从'message'移动到'logline',2)grok'logline',3)删除'logline'来解决消息部分。 RTFM,我想...谢谢 – sontags 2014-11-18 06:20:12