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 复制代码
示例:example@example.com
模式:%{EMAILADDRESS:email}

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

bash 复制代码
示例:"This is a quoted string"
模式:%{QUOTEDSTRING:quoted_string}
相关推荐
ygqygq21 天前
ElK 8 收集 Nginx 日志
nginx·elk
纪佰伦4 天前
ELK在Linux服务器下使用docker快速部署(超详细)
linux·服务器·elk
写....写个大西瓜4 天前
【Docker部署ELK】(7.15)
elk·docker
丢爸6 天前
Linux学习-ELK(一)
linux·学习·elk
王一横不要停止努力吖10 天前
ELK学习笔记(三)——使用Filebeat8.15.0收集日志
笔记·学习·elk
王一横不要停止努力吖10 天前
ELK学习笔记(二)——使用K8S部署Kibana8.15.0
笔记·学习·elk·k8s
数云界11 天前
使用 ELK Stack 进行云原生日志记录和监控:AWS 中的开发运营方法
elk·云原生·aws
智汇探长11 天前
ELK日志服务收集SpringBoot日志案例
spring boot·elk·jenkins
echola_mendes11 天前
ELK在Linux上部署教程
运维·elk·jenkins