Sid*_*kha 2 cron elasticsearch logstash kibana
我想从各种目录中读取我的日志文件,例如:Server1, Server2...
Server1有子目录为cron, auth......这些子目录中log file分别是.
所以我正在考虑阅读这样的文件:
input{
file{
#path/to/folders/server1/cronLog/cron_log
path => "path/to/folders/**/*_log"
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我很难过滤它们,即要知道哪个server(Server1)和logtype(cron),我必须应用grok模式:
例如:我想做这样的事情
if [path] =~ "auth"{
grok{
match => ["message", ***patteren****]
}
}else if [path] =~ "cron"{
grok{
match => ["message", ***pattern***]
}
Run Code Online (Sandbox Code Playgroud)
以上cron是日志文件(不是cronLog目录).但是,这样的我也想过滤的server name,因为每个服务器都会有cron,auth等日志.
如何过滤两者?
有没有办法从path输入中获取目录名?喜欢这里
path => "path/to/folders/**/*_log"
Run Code Online (Sandbox Code Playgroud)
我该怎么办?任何帮助表示赞赏?
它非常直接,几乎与我的另一个答案完全一样......你使用路径上的grok提取出你关心的碎片然后你可以从那里做任何你想做的事情
filter {
grok { "path", "path/to/here/(?<server>[^/]+)/(?<logtype>[^/]+)/(?<logname>.*) }
if [server] == "blah" && [logtype] =~ "cron" {
grok { "message", "** pattern **" }
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6037 次 |
| 最近记录: |