首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ELK-Stack:使用Logstash解析Syslog中的IP/MAC

ELK-Stack:使用Logstash解析Syslog中的IP/MAC
EN

Stack Overflow用户
提问于 2019-04-10 18:27:28
回答 3查看 564关注 0票数 0

我正在寻找一种方法来解析带有Logstash的syslog条目中的IP地址和MACs。目前,我尝试用GROK获取它,但问题是,我可能必须匹配整个行,而不是消息本身的一部分。

例如,我必须这样做:

4月9日12:41:01 cn1Label=Host ID dvchost=exch01 TrendMicroDsTenant=Primary TrendMicroDsTenantId=0 dstMAC=55:C0:A8:55:FF:41 srcMAC=CA:36:42:B1:78:3D TrendMicroDsFrameType=IP src=10.0.251.84 dst=56.19.41.128 out=166 cs3= cs3Label=Fragmentation Bit proto=ICMP srcPort=0 dstPort=0 cnt=1 act=IDS:Reset srcPort=0 dstPort=0 cnt=1 act=IDS:Reset srcPort=0数据包位置en21 20#流位置en22#旗

我想获取"src“和"dst”I以及"srcMAC“和"dstMAC”。我会在洛格斯塔什尝试这样的方法:

代码语言:javascript
运行
复制
grok{
  match => { "message" => "src=%{IPV4:src_ip}" }
  match => { "message" => "dst=%{IPV4:dst_ip}" }
  match => { "message" => "srcMAC=%{MAC:src_mac}" }
  match => { "message" => "dstMAC=%{MAC:dst_mac}" }
}

但是它不起作用,因为它与整条线不匹配。我也尝试过使用.*和其他匹配技术,但没有成功。

有没有一种方法可以像解析完整的行那样解析Is呢?

我将尝试解析消息的其他部分,例如协议。我不匹配整行的原因是,有些消息是不同的,因此也需要另一种方法来提取它的值。

谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2019-04-11 15:47:14

我刚找到解决办法。我做了一件非常错误的事。您必须为每个匹配分别执行匹配筛选。如果这样做,则还可以提取消息字段中的内容,例如:

代码语言:javascript
运行
复制
grok{match => {"message" => "SRC=%{IPV4:ip}"}}
票数 0
EN

Stack Overflow用户

发布于 2019-04-11 10:11:30

您可以使用kv滤波器来处理键值对,就像日志中的键值对一样。若要只保留相关对,请使用include_keys选项。

在你的例子中,它看起来是这样的:

代码语言:javascript
运行
复制
kv{
    include_keys => [ "src", "dst", "srcMAC", "dstMAC" ]
}

这将导致:

代码语言:javascript
运行
复制
{
  "dst": "56.19.41.128",
  "host": "frsred-0077",
  "srcMAC": "CA:36:42:B1:78:3D",
  "dstMAC": "55:C0:A8:55:FF:41"
}

kv过滤器的一个好处是,与grok过滤器不同,您不依赖于对保持不变的顺序。

票数 2
EN

Stack Overflow用户

发布于 2019-04-11 02:37:49

grok过滤器需要匹配整个消息,要只获取几个仍然需要匹配所有内容的字段,下面的模式将与您的示例匹配。

代码语言:javascript
运行
复制
%{GREEDYDATA}%{SPACE}dstMAC=%{MAC:dst_mac}%{SPACE}srcMAC=%{MAC:src_mac}%{SPACE}%{GREEDYDATA}%{SPACE}src=%{IP:src_ip}%{SPACE}dst=%{IP:dst_ip}%{SPACE}%{GREEDYDATA}

其结果将是:

代码语言:javascript
运行
复制
{
  "src_ip": "10.0.251.84",
  "src_mac": "CA:36:42:B1:78:3D",
  "dst_mac": "55:C0:A8:55:FF:41",
  "dst_ip": "56.19.41.128"
}

此模式还将匹配以下格式的任何消息:

代码语言:javascript
运行
复制
ANYTHING dstMAC=MACADDRESS srcMAC=MACADDRESS ANYTHING src=IPADDRESS dst=IPADRESS ANYTHING
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55619117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档