【发布时间】:2014-07-31 11:49:53
【问题描述】:
我无法从日志文件 /var/log/messages 中获取特定行。我在客户端服务器中使用logstash-forwarder,在日志服务器中使用logstash、elasticsearch和kibana。我尝试安装grep 过滤器,但它给了我一些错误,所以我尝试在下面用 grok 实现。我原来的帖子是here。我找到了this,但我很不满意。
以下是logstash-forwarder file-name:logstash-forwarder in client-server的配置
{
"network": {
"servers": [ "logstashserver-ip:5000" ],
"timeout": 15,
"ssl ca": "xxx.crt"
},
"files": [
{
"paths": [
"/var/log/messages"
],
"fields": { "type": "syslog" }
}
]
}
以下是logstashserver中的logstash配置
文件名:input.conf
input {
lumberjack {
port => 5000
type => "logs"
ssl_certificate => "xxx.crt"
ssl_key => "xxx.key"
}
}
文件名:filter.conf
filter {
grok {
match => ["message", "\[%{WORD:messagetype}\]: %{GREEDYDATA}"]
}
}
文件名:output.conf
output {
elasticsearch { host => "logstashserver-ip" }
if [messagetype] == "ERROR" {
stdout {
codec => "rubydebug"
}
}
}
有什么问题吗?
【问题讨论】:
-
您能否更详细地描述您想删除哪些消息?你似乎理解条件,所以我不确定问题是什么。如果您不希望某些消息发送到 ES,则不应将它们发送到那里...
-
我只喜欢从 /var/log/messages 查看 kibana 中的 WARNING 和 ERROR 日志,对于 /var/log/secure 也是如此。在这种情况下,我只关心 /var/log/messages 首先。
-
问题:您是否希望“错误”消息类型仅到达 elasticsearch,而不是其他类型?
-
yes 错误和警告日志在 kibana 中查看
标签: logstash