首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pgBadger生成的报告为空,但postgres日志中有事件。

pgBadger生成的报告为空,但postgres日志中有事件。
EN

Stack Overflow用户
提问于 2014-10-15 12:06:06
回答 3查看 6.6K关注 0票数 7

我对postgresql和pgBadger有意见。

由pgBadger生成的HTML为空(0查询,0事件,与postgres工作无关)。但是postgres日志不是空的。有一些事件等。

我在postgresql.conf中尝试过许多参数组合(例如。log_destination = syslog,logging_collector = off,log_line_prefix -或多或少的值),并且仍然相同。

目前,该参数是在postgresql.conf中设置的。

代码语言:javascript
复制
log_destination = 'stderr'

logging_collector = on

log_directory = 'pg_log' 
log_filename = 'postgresql-%Y-%m-%d_%H%M%S.log'

client_min_messages = notice
log_min_messages = notice 
log_min_error_statement = error

log_min_duration_statement = 0

log_checkpoints = on
log_connections = on
log_duration = off
log_line_prefix = '%t [%r] [%p]: [%l-1] user=%u,db=%d,e=%e '
log_statement = 'all'

lc_messages = 'en_US.UTF-8' 

这就是我试图使用pgBadger的方式,也是我得到的结果:

代码语言:javascript
复制
#pgbadger -p -l /var/lib/postgresql/9.3/main/pg_log/postgresql-2014-10-15_125036.log -f stderr -o /var/lib/postgresql/9.3/main/pg_log/report.html

代码语言:javascript
复制
#pgbadger -p -l /var/log/postgresql/postgresql-9.3-main.log -f stderr -o /var/log/postgresql/log_report.html

结果总是一样的:

代码语言:javascript
复制
/usr/src/pgbadger-6.2# pgbadger -p -l /var/lib/postgresql/9.3/main/pg_log/postgresql-2014-10-15_125036.log -f stderr -o /var/lib/postgresql/9.3/main/pg_log/report.html
[========================>] Parsed 12999 bytes of 12999 (100.00%), queries: 0, events: 0
LOG: Ok, generating html report...

我工作过: Debian 7,postgresql 9.3,pgbadger-6.2

有人有类似的问题吗?

EN

回答 3

Stack Overflow用户

发布于 2015-05-06 19:55:42

确保postgresql.conf中的postgresql.conf如下所示:

代码语言:javascript
复制
log_line_prefix = '%t [%p]: [%l-1] db=%d,user=%u ' 
票数 9
EN

Stack Overflow用户

发布于 2014-11-25 05:27:19

其实我也有同样的问题。你能跟着这个医生解决你的问题吗?谢谢

http://www.antelink.com/blog/using-pgbadger-monitor-your-postgresql-activity.html

我认为您需要将log_statement更改为“无”。那就可以解决你的问题了。

您应该使用-v选项来详细描述模式。

pgbadger -f stderr -v /Data-目录/PostgreSQL-Sat.log -o /Data--o/PostgreSQLReports.html

请根据您的PostgreSQL集群数据更改数据目录

票数 3
EN

Stack Overflow用户

发布于 2018-07-19 08:51:58

您必须将在您的log_line_prefix中找到的postgresql.conf作为--prefix标志传递给pgbadger。对于AWS,转到RDS的paramter grouplog_line_prefix参数,检索相同的参数。

建议您在详细模式下运行pgbadger,以了解哪些失败,如

pgbadger -v --prefix='<<Your log_line_prefix>>:' <<logFileName>>

代表:

  1. 采用默认格式的-非详细 $ pgbadger pgsql_log_Jul2018.txt ========================>解析了131114431字节的413111431 (100.00%),查询: 0,事件:0日志: Ok,生成html报告. 正如您所看到的,即使您在日志文件中包含数据,也无法理解查询和事件为何为0。
  2. 采用默认格式的-详细模式 $ pgBadger -v pgsql_log_Jul2018.txt调试:自动检测日志格式“stderr”来自pgsql_log_Jul2018.txt调试:输出'html‘报告将写入out.html调试:自动检测日志格式'stderr’来自pgsql_log_Jul2018.txt调试:自动检测日志格式'stderr‘来自pgsql_log_Jul2018.txt调试: pgbadger将使用日志格式stderr解析pgsql_log_Jul2018.txt。调试:开始解析日志文件: pgsql_log_Jul2018.txt调试:开始读取文件pgsql_log_Jul2018.txt.调试:从文件的偏移量0开始解析到413111431调试:未知的行格式: 2018-07-15 16:00:07 UTC:192-198-10-132.local(23421):postgres@def_db:12642:LOG:持续时间: 2772.244 ms执行:从device_table >= '2018-06-15‘调试:未知行格式: 2018-07-15 16:00:07 UTC:192-198-10-132.local(23421):postgres@def_db:45279:细节:参数:$1 = '251‘.调试:未知行格式: 2018-07-18 16:59:56个UTC:192-198-10-132.local(23421):postgres@def_db:54342:DETAIL:参数:$1 = '21‘========================>解析了131114431字节的413111431 (100.00%),查询: 0,事件:0调试:日志统计信息收集采取:16个壁时钟秒( 3.99 usr + 2.03 sys =6.02cpu)日志: Ok,生成html报告.调试:生成报告:0壁时钟秒( 0.01 usr + 0.02 sys = 0.03 CPU)调试:总执行时间: 16壁时钟秒( 4.00 usr + 2.05 sys = 6.05 CPU)
  3. 提供格式-详细模式 $ pgBadger -v -前缀=‘%t:%r:%u@%d:%p:’pgsql_log_Jul2018.txt调试:自动检测日志格式' stderr‘来自pgsql_log_Jul2018.txt调试:输出'html’报告将写入out.html调试:自动检测日志格式'stderr‘从pgsql_log_Jul2018.txt调试:自动检测日志格式'stderr’从pgsql_log_Jul2018.txt调试: pgbadger将使用日志格式stderr解析pgsql_log_Jul2018.txt。调试:开始解析日志文件: pgsql_log_Jul2018.txt调试:开始读取文件pgsql_log_Jul2018.txt.调试:从文件pgsql_log_Jul2018.txt的0到413111431开始解析,解析131114431字节的413111431 (100.00%),查询: 55645,事件: 34调试:日志统计收集:51个挂钟段(48.81 usr + 0.84 sys =49.65cpu)日志: Ok,生成html报告.调试:构建报告:14个挂钟秒(13.22 usr + 0.18 sys = 13.40 CPU)调试:总执行时间:65个挂钟秒(62.03 usr + 1.02 sys = 63.05 CPU)

在你的例子中,因为你的postgresql.conf

代码语言:javascript
复制
...
log_duration = off
log_line_prefix = '%t [%r] [%p]: [%l-1] user=%u,db=%d,e=%e '
log_statement = 'all'
...

尝试使用--prefix='%t [%r] [%p]: [%l-1] user=%u,db=%d,e=%e '

此外,请检查这个评论从獾小组-人们通常会感到困惑之间的formatprefix,因此参考手册页是一个任务和帮助。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26382178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档