由于某种原因,filebeat在filebeat.yml文件中使用多行过滤器时没有发送正确的日志。我读取的日志文件有一些多行日志和一些单行。但是,从日期开始,它们都遵循相同的格式。举个例子,这里有几行:
2017-Aug-23 10:33:43: OutputFile: This is a sample message
2017-Aug-23 10:34:23: MainClass: Starting connection:
http.InputProcess: 0
http.OutPutProcess: 1
2017-Aug-23 10:35:21: OutputFile: This is a sample message 2
My Filebeat yml是:
- input_type: log
paths:
- /home/user/logfile.log
document_type: chatapp
multiline:
pattern: "^%{YYYY-MMM-dd HH:mm:ss}"
negate: true
match: before
出于某种原因,当我看到文件节点日志命中弹性搜索时,所有日志都会被混合到一个日志行中,因此它似乎实际上并没有按日期读取文件。有人可以帮忙吗?谢谢!
答案 0 :(得分:1)
使用
private static readonly object synchLock = new object();
private void OutputMessageToLogWindow(string message)
{
Application.Current.Dispatcher.BeginInvoke(new Action(() =>
{
lock(synchLock)
{
outputRichTxtBox.AppendText(message);
test.Text = message;
}
}));
}
根据grok模式,您当前使用的模式没有有效定义的正则表达式。
您可以使用the grokconstructor测试多行模式。我从logstash中预定义的grok-patterns构建了这个模式。