ELK 之logstash filter grok常见内置模式

通用模式

  • GREEDYDATA: 贪婪匹配任意字符串。
bash 复制代码
示例:This is a sample log message
模式:%{GREEDYDATA:message}
  • DATA: 匹配任意字符串,非贪婪(尽量少匹配)。
bash 复制代码
示例:This is a sample log message
模式:%{DATA:message}

时间与日期

  • TIMESTAMP_ISO8601: 匹配 ISO 8601 格式的时间戳。
bash 复制代码
示例:2023-10-05T10:00:00.123Z
模式:%{TIMESTAMP_ISO8601:timestamp}
  • HTTPDATE: 匹配 HTTP 日志中的日期格式。
bash 复制代码
示例:05/Oct/2023:10:00:00 +0000
模式:%{HTTPDATE:timestamp}
  • DATESTAMP_RFC822: 匹配 RFC 822 格式的日期。
bash 复制代码
示例:02 Jun 1982 00:00:00 GMT
模式:%{DATESTAMP_RFC822:timestamp}
  • DATESTAMP_RFC2822: 匹配 RFC 2822 格式的日期。
bash 复制代码
示例:Thu, 21 Dec 2000 16:01:07 +0200
模式:%{DATESTAMP_RFC2822:timestamp}
  • DATE: 匹配日期。
bash 复制代码
示例:2023-10-05
模式:%{DATE:date}
  • TIME: 匹配时间。
bash 复制代码
示例:10:00:00
模式:%{TIME:time}
  • DATESTAMP_OTHER: 匹配其他常见的日期格式。
bash 复制代码
示例:2023-10-05 10:00:00,123
模式:%{DATESTAMP_OTHER:timestamp}

数字与字符串

  • NUMBER: 匹配数字(整数或浮点数)。
bash 复制代码
示例:1234
模式:%{NUMBER:number}
  • BASE10NUM: 匹配十进制数字(浮点数)。
bash 复制代码
示例:123.45
模式:%{BASE10NUM:number}
  • WORD: 匹配一个单词(不包含空格的字母数字字符串)。
bash 复制代码
示例:GET
模式:%{WORD:word}
  • NOTSPACE: 匹配非空格字符。
bash 复制代码
示例:GET
模式:%{NOTSPACE:word}
  • INT: 匹配整数。
bash 复制代码
示例:1234
模式:%{NUMBER:number}
  • DATA: 匹配任意字符串,非贪婪(尽量少匹配)。
bash 复制代码
示例:This is a sample log message
模式:%{DATA:message}
  • GREEDYDATA 贪婪匹配任意字符串。
bash 复制代码
示例:This is a sample log message
模式:%{GREEDYDATA:message}

网络相关

  • IP: 匹配 IPv4 或 IPv6 地址。
bash 复制代码
示例:192.168.1.1
模式:%{IP:client_ip}
  • HOSTNAME: 匹配主机名。
bash 复制代码
示例:localhost
模式:%{HOSTNAME:hostname}
  • MAC: 匹配 MAC 地址。
bash 复制代码
示例:00:0a:95:9d:68:16
模式:%{MAC:mac_address}
  • HOSTPORT: 匹配 IP 地址和端口。
bash 复制代码
示例:192.168.1.1:80
模式:%{HOSTPORT:hostport}
  • IPV4: 匹配 IPv4 地址。
bash 复制代码
示例:192.168.1.1
模式:%{IPV4:client_ip}

文件与路径

  • PATH: 匹配文件路径。
bash 复制代码
示例:/var/log/syslog
模式:%{PATH:file_path}
  • URIPATH: 匹配 URI 路径。
bash 复制代码
示例:/index.html
模式:%{URIPATH:request_path}
  • URIPARAM: 匹配 URI 参数。
bash 复制代码
示例:id=123&name=John
模式:%{URIPARAM:request_params}
  • URI: 匹配完整的 URI。
bash 复制代码
示例:http://example.com/index.html?id=123&name=John
模式:%{URI:uri}

代理与用户代理

  • USER: 匹配用户名。
bash 复制代码
示例:jdoe
模式:%{USER:username}
  • UUID: 匹配 UUID。
bash 复制代码
示例:550e8400-e29b-41d4-a716-446655440000
模式:%{UUID:uuid}

HTTP 相关

  • HTTPVERB: 匹配 HTTP 动词(方法)。
bash 复制代码
示例:GET
模式:%{HTTPVERB:method}
  • HTTPPROTOVERSION: 匹配 HTTP 协议版本。
bash 复制代码
示例:1.1
模式:%{HTTPPROTOVERSION:version}

Apache/Nginx 日志

  • COMMONAPACHELOG: 匹配 Apache 访问日志的常见格式。
bash 复制代码
示例:127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326
模式:%{COMMONAPACHELOG}
  • COMBINEDAPACHELOG: 匹配 Apache 访问日志的综合格式,包含用户代理和引用。
bash 复制代码
示例:127.0.0.1 - frank [10/Oct/2000:13:55:36 -0700] "GET /apache_pb.gif HTTP/1.0" 200 2326 "http://www.example.com/start.html" "Mozilla/4.08 [en] (Win98; I ;Nav)"
模式:%{COMBINEDAPACHELOG}

Syslog 日志

  • SYSLOGTIMESTAMP: 匹配 syslog 时间戳。
bash 复制代码
示例:Oct 11 22:14:15
模式:%{SYSLOGTIMESTAMP:timestamp}
  • SYSLOGPROG: 匹配 syslog 程序名和进程 ID。
bash 复制代码
示例:appname[1234]
模式:%{SYSLOGPROG:program}
  • SYSLOGLINE: 匹配标准的 syslog 日志格式。
bash 复制代码
示例:<13>Oct 11 22:14:15 hostname appname[1234]: This is a syslog message
模式:%{SYSLOGLINE}

其他模式

  • EMAILADDRESS: 匹配电子邮件地址。
bash 复制代码
示例:[email protected]
模式:%{EMAILADDRESS:email}

QUOTEDSTRING: 匹配带引号的字符串。

bash 复制代码
示例:"This is a quoted string"
模式:%{QUOTEDSTRING:quoted_string}
相关推荐
Lw老王要学习7 天前
Linux架构篇、第四章_ELK与EFK-7.17.9的日志管理
linux·运维·elk·架构·云计算
舌尖上的五香16 天前
ELK格式化处理日志数据并分析
elk
爱吃龙利鱼20 天前
elk中kibana一直处于可用和降级之间且es群集状态并没有问题的解决方法
大数据·elk·elasticsearch
yuzhangfeng25 天前
【日志体系】ELK Stack与云原生日志服务
elk·云原生·云计算
小黑蛋学java1 个月前
Elasticsearch 官网阅读学习笔记01
elk·学习笔记
码农不屈的一生1 个月前
docker部署elk
运维·elk
MarkHD1 个月前
第十八天 - ELK日志体系集成 - 自定义Logstash插件 - 练习:分布式日志分析平台
分布式·elk
小黑蛋学java1 个月前
Elasticsearch 学习规划
elk
小黑蛋学java1 个月前
Elasticsearch中的基本全文搜索和过滤
elk
小黑蛋学java1 个月前
Elasticsearch单节点安装手册
elk