logstash - Grok 自定义模式 - 如何匹配特定域格式
问题描述
我需要从下面的日志中匹配这部分*.server.domain.com*
并分配给域变量。知道模式应该是什么样子,默认HOSTNAME
模式对我不起作用。
Apr 4 10:46:25 10.42.203.245 ThreatInsightAnalytics[29407]: The CNAME record '*.server.domain.com' is successfully added into BlackList RPZ zone(s) with comment '[2018-04-04 10:46:22 UTC] [member: infoblox.localdomain] DNS Tunneling' and policy 'No Such Domain'.
解决方案
您可以使用 Oniguruma 语法在预定义的 grok 模式中添加 anasterisk
和 a并创建自定义模式,如下所示,.
HOSTNAME
(?<domain_name>\*\.)%{HOSTNAME}
或者
(?<domain_name>\*\.\b(?:[0-9A-Za-z][0-9A-Za-z-]{0,62})(?:\.(?:[0-9A-Za-z][0-9A-Za-z-]{0,62}))*(\.?|\b))
这将在您的日志中产生以下输出,
{
"domain_name": [
[
"*.server.domain.com"
]
]
}
希望能帮助到你
推荐阅读
- python - 有没有办法在给定时间内查看陈述是否为真?
- reactjs - url在邮递员中工作正常,但在reactjs中出现cors错误
- android - 使用 layout_weight 时,Ripple 行为异常
- javascript - Javascript Date String Manipulation
- rabbitmq - RabbitMQ - 直接与扇出
- swift - '.generateBox' 方法生成的对象大小不正确
- ansible - Alternatives to using jinja2 delimiters when referencing loop item
- r - Table of Cumulative Totals R
- swift - Swift 5 标记中断
- sql - Round to nearest 15 minute interval