我正在尝试使用pgBadger解析由RDS实例生成的日志文件,到目前为止还没有结果。
log_line_prefix设置为%t:%r:%u@%d:[%p]:
日志文件中的一个示例行如下所示:
2019-09-24 17:19:25 UTC:172.31.10.173(53224):username@database:[12829]:LOG: execute <unnamed>: SELECT 1我使用的是pgbadger命令:
./pgbadger -p "%t:%r:%u@%d:[%p]:" postgresql.log.2019-09-24-17 -o pgbadger_rdsinstance.html它抛出以下错误
Unmatched ( in regex; marked by <-- HERE in m/^(?:\d+-\d+-\d+T\d+:\d+:\d+\.\d+Z)?\s*(\d+)-(\d+)-(\d+) (\d+):(\d+):(\d+)\s*[^:]*:( <-- HERE [^\(:]+\(\d+\):([^\@]+)\@([^:]+):\[(\d+)\]:(\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})(?: [A-Z\+\-\d]{3,6})?:([a-zA-Z0-9\-\.]+|\[local\]|\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|[0-9a-fA-F:]+)?[\(\d\)]*:([0-9a-zA-Z\_\[\]\-\.]*)@([0-9a-zA-Z\_\[\]\-\.]*):\[(\d+)\]:(LOG|WARNING|ERROR|FATAL|PANIC|DETAIL|STATEMENT|HINT|CONTEXT|LOCATION):\s+(.*)/ at ./pgbadger line 2430.不知道什么是正确的模式在这里。看起来它无法解析172.31.10.173(53224)。
我试着转义圆括号,比如:%t:%r\\(%a\\):%u@%d:[%p]:,但这没有帮助。
我通过删除这个(53224)部件分析了一个示例日志文件,它运行得很好。
这个前缀的正确模式应该是什么?
发布于 2019-10-07 18:21:58
如果这是pgBadger 11.1或更高版本,您可以尝试使用--format rds并删除--prefix。我想这是一个需要报告的新bug,但至少--format rds对我起了作用。
https://stackoverflow.com/questions/58139442
复制相似问题