通用模式
- 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}