无法通过Fluent Bit正则表达式解析Tomcat本地访问日志求解决方案
适用于Fluent Bit的Tomcat访问日志Ruby正则表达式
匹配目标日志行
127.0.0.1 - - [27/Aug/2024:00:01:48 +0000] "GET /TA HTTP/1.1" 302 - 0
正则表达式
^(?<remote_host>\S+) - - \[(?<log_time>[^\]]+)\] "(?<request>[^"]+)" (?<status_code>\d+) - (?<bytes_sent>\d+)$
捕获组对应字段
remote_host: 远程主机名(对应示例中的127.0.0.1)log_time: 日志时间(对应示例中的27/Aug/2024:00:01:48 +0000)request: 请求内容(对应示例中的GET /TA HTTP/1.1)status_code: 状态码(对应示例中的302)bytes_sent: 发送字节数(对应示例中的0)
Fluent Bit配置示例
[INPUT] Name tail Path /var/log/tomcat/localhost_access_log.*.txt Tag tomcat.access [FILTER] Name parser Match tomcat.access Parser tomcat_access_log [PARSER] Name tomcat_access_log Format regex Regex ^(?<remote_host>\S+) - - \[(?<log_time>[^\]]+)\] "(?<request>[^"]+)" (?<status_code>\d+) - (?<bytes_sent>\d+)$ Time_Key log_time Time_Format %d/%b/%Y:%H:%M:%S %z
配置中Time_Format用于将log_time字段解析为Fluent Bit可识别的时间戳,确保时间字段能被正确处理。
内容的提问来源于stack exchange,提问作者Bhanu Praveen
相关产品推荐
相关产品推荐

