使用两个不同的日志文件作为输入来创建公共日志文件

时间:2020-02-24 17:23:04

标签: elastic-stack

我有一个要求,我必须使用来自两个不同来源的两个日志文件来可视化数据,一个是haproxy日志,另一个是nginx日志。我正在尝试ELK堆栈,但无法使用logstash解析两种格式相同的日志文件。

以下是haproxy日志的格式:

**Feb 22 21:17:32** ap haproxy[1235]: 10.172.80.45:32071 10.31.33.34:44541 10.31.33.34:32772 13.127.229.72:443 [22/Feb/2020:21:17:32.006] this_machine~ backend_app/app_32772 40/0/5/1/**836** 200 701381 - - ---- 0/0/0/0/0 0/0 {cdn.net} {hitting} "GET **/ob/720/output00007.ts** HTTP/1.1"

以下是Nginx日志:

183.87.179.64 - - [**24/Feb/2020:16:58:08** +0000] "GET **/felaapp/hd_images/apple.jpg** HTTP/1.1" 200 3414616 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:73.0) Gecko/20100101 Firefox/73.0" **1.049** - .

我想要突出显示的内容和一个额外的文件,以标识以下常见格式的数据源

"Date" "Time" "Content" "Responsetime in Milliseconds" "Source"
"24-02-2020" "16:58:08" "/felaapp/hd_images/apple.jpg" "836" "Nginx"
"22-02-2020" "21:17:32" "/ob/720/output00007.ts" "1.04" "Haproxy"

我正在尝试使用gork和mutate插件通过logstash完成此操作,但我也对csv格式开放,但是我将需要实时数据,因此csv必须实时更新。 / p>

请帮助。

1 个答案:

答案 0 :(得分:0)

Nginx和Haproxy都有一个Filebeat模块,可用于将日志转换为ECS格式。从那里,您可以以相同的方式查询,还可以使用弹性SIEM功能作为奖励。