1

我正在尝试使用 解析由我的 RDS 实例生成的日志文件pgBadger,但到目前为止没有结果。

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),它工作得很好。

这个前缀的正确模式应该是什么?

4

1 回答 1

0

如果这是 pgBadger 11.1 或更新版本,您可以尝试使用--format rds并删除--prefix. 我想这是一个需要报告的新错误,但至少--format rds对我有用。

于 2019-10-07T18:21:58.793 回答