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}
相关推荐
vvw&1 天前
如何在 Ubuntu 22.04 上安装带有 Nginx 的 ELK Stack
linux·运维·nginx·ubuntu·elk·elasticsearch·开源项目
Karoku0662 天前
【企业级分布式系统】ELK优化
运维·服务器·数据库·elk·elasticsearch
Karoku0663 天前
【企业级分布式系统】ELK-企业级日志分析系统
运维·数据库·redis·mysql·elk·缓存
一名技术极客4 天前
徒手从零搭建一套ELK日志平台
elk
jun7788956 天前
SpringBoot整合ELK使用详解
spring boot·后端·elk
yueqingll6 天前
023、ELK 从入门到实践
elk
abandondyy6 天前
ELK Elasticsearch 集群部署
大数据·elk·elasticsearch
小李叭叭叭6 天前
ELK8.15.4搭建开启安全认证
运维·elk·elasticsearch·kibana
光仔December14 天前
【Elasticsearch入门到落地】1、初识Elasticsearch
大数据·elk·elasticsearch·搜索引擎·lucene
太空眼睛15 天前
【EFK】Linux集群部署Elasticsearch最新版本8.x
linux·elk·elasticsearch·efk·master·8.15.3·node.roles