kbbadger
简介
kbbadger 是一个命令行工具,可以分析大型的日志文件。当日志文件足够长时,kbbadger可以自动检测日志文件的格式(syslog,stderr,csvlog或jsonlog)。
kbbadger生成的所有图表都是可缩放的并且可单独下载为PNG文件。另外,在生成的报告中SQL查询将突出显示。
kbbadger生成的报告中包含的关于SQL查询的信息有:
-
总体统计
-
占用时间最多的查询
-
最常见的查询
-
最常见的错误
-
查询时间直方图
-
会话时间直方图
-
参与顶级查询的用户
-
涉及顶级查询的应用程序
-
生成最多取消的查询
-
大多数查询已取消
-
最耗时的准备/绑定查询
报告也会提供每小时的统计图表,其内容包括:
-
SQL查询统计信息
-
临时文件统计
-
检查点统计
-
自动vacuum和自动分析统计
-
已取消查询
-
错误事件(死机、致命、错误和警告)
-
错误的类分布
命令行参数
kbbadger
[ options
...] logfile
...
参数说明
kbbadger接受下列命令行参数:
-e
--end datetime
通过日志解析数据的结束时间。
-b
--begin datetime
通过日志解析数据的开始时间。
-p
--prefix string
标注在Kingbase.conf文件中使用的自定义项log_line_prefix的值,之后将给出使用案例。
-J
--Jobs number
指定并行解析的日志文件的数量,默认为1,即单线解析。
-j
--jobs number
指定同时运行的工作数量,默认为1,即单线工作。
`` `` --exclude-query regex
将与'regex'匹配的查询排除在报告之外,例如"^(VACUUM``COMMIT)",并且你可以多次使用此参数。
-f
--format logtype
指定日志的文件格式。例如syslog, syslog2, stderr, csv 和 bouncer,当不使用kbLogAnalyse 时可以使用 stderr 自动识别。
配置参数
必须在kingbase.conf中启用并设置一些配置指令
# 您必须首先启用SQL查询日志记录才能进行解析 log_min_duration_statement = 0 # 用于syslog日志文件格式 log_line_prefix = 'user=%u,db=%d,app=%a,client=%h ' # stderr输出的日志行前缀也可以是 log_line_prefix = '%t [%p]: db=%d,user=%u,app=%a,client=%h ' # 或用于syslog输出 log_line_prefix = 'db=%d,user=%u,app=%a,client=%h ' # 您也可以在kingbase.conf中启用其他参数,以从日志文件中获取更多信息 log_checkpoints = on log_connections = on log_disconnections = on log_lock_waits = on log_temp_files = 0 log_autovacuum_min_duration = 0 log_error_verbosity = default
注意
数据库日志中的内容必须为英文,否则kbbadger可能无法解析日志中的内容:
lc_messages='en_US.UTF-8'
注意
不要启用log_statement,因为kbBadger不会解析它的日志格式并且如果您将log_statement设置为'all',则不会通过log_min_duration_statement指令记录任何内容。
log_statement='none'
错误信息诊断
无
示例
要通过所有2019-10-26 15:44 的日志生成报告。
$ kbbadger ./ sys_log/kingbase-2019-10-26_1544* -f stderr -J 12 -j 32 [========================>] Parsed 283210387 bytes of 283210387 (100.00%), queries: 327810, events: 51 LOG: Ok, generating html report...
最终会生成html文件