我有一个要求,我必须使用来自两个不同来源的两个日志文件来可视化数据,一个是haproxy日志,另一个是nginx日志。我正在尝试ELK堆栈,但是我无法使用logstash解析两种通用格式的不同日志文件。
以下是代理日志的格式:
**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。
请帮助。
Nginx和Haproxy都有一个Filebeat模块,可用于将日志转换为ECS格式。从那里,您可以以相同的方式查询,也可以使用弹性SIEM功能作为奖励。