我是log-stash和grok的新手,我需要解析非常自定义的日志文件。我找不到任何好的教程来完成这项工作。试过系统日志示例,但它在我的情况下不起作用。
示例:
11月19日00:06:37 srv-fe-05 ssh-server-g3:2037 Sft_server_open_dir," 2037 Sft_server_open_dir,目录名:/ home / folder1 / input,文件句柄:007800B000782170,"成功",Session-Id:162351"
我想要提取的项目:
任何帮助或指示都将不胜感激。
根据答案,我提出了这种模式:
%{SYSLOGTIMESTAMP:logTimestamp} %{USERNAME:sftpServer} %{USERNAME:processName}: %{INT:operationType} %{WORD}, \"%{INT} %{WORD}, %{WORD} %{WORD}: /%{WORD}/%{WORD:clientName}/%{WORD}, %{WORD} %{WORD}: %{WORD:submissionId}, \"%{WORD:status}\", %{WORD}-%{WORD}: %{INT:sessionId}
我的两个新问题是:
答案 0 :(得分:2)
首先,熟悉basic built-in grok patterns。了解%{WORD},%{NUMBER}等基本工具将会有很长的路要走。
其次,熟悉在线调试器(heroku和appspot)。它们各有优势。
第三,慢慢开始。在您的示例中,您是否可以匹配调试器中字符串开头的日期和时间?如果是,则尝试为主机名添加匹配项。从左到右缓慢移动,直到你完成所有操作。
如果你看一下核心模式,你会发现" nov"只显示一次,作为模式%{MONTH}的一部分。有道理,对吗?但另请注意,%{MONTH}是较大结构的一部分,例如%{SYSLOGTIMESTAMP},它可以在一步上匹配您的日期时间。
最后,还有一些在线指南和教程。 Here's one