资讯专栏INFORMATION COLUMN

使用pgBadger进行日志分析

IT那活儿 / 1696人阅读
使用pgBadger进行日志分析
[
前言
]


数据库日志看看,是不是有什么问题?

VI打开密密麻麻的一片。还是用grep之类的命令过滤吧。

怎么这么多warning啊,严重影响看正常的日志。在用grep把这些warning屏蔽掉。


早在xxxx点都出问题了,日志已经有显示了,我们一直到现在才发现。


相信很多DBA同学遇到过类似的困扰,今天我们就介绍一下pgBadger,帮助我们分析日志的好工具。


[
pgBadger使用
]


pgBadger是一款开源的快速分析PostgreSQL日志的工具,它使用perl语言编写。对日志进行分析之后输出成HTML文件。它生成的报告易于阅读。可以帮助我们查看错误日志、连接数、检查点、临时文件、VACUUM、Locks等信息。


到网站https://pgbadger.darold.net/上下载最新安装包,然后解压到指定目录。


在运行pgbadger之前,我们需要对PostgreSQL先进行配置。


1.打开SQL日志记录


log_min_duration_statement=0

如果执行的SQL语句超过了这个参数设置的值,就会记录到日志里面,类似于MySQL中的慢查询日志。默认值为-1,不记录到日志。当前我们系统设置的是1000ms,也就是大于1s的SQL语句将被记录到日志。


2.设置日志的前缀信息

这个分两种情况。和log_destination参数有关系。

如果是“stderr”日志格式,log_line_prefix必须至少为:

log_line_prefix=%t[%p]:

日志的前缀也可以添加用户、数据库名称,应用程序名称和客户端IP地址,如下所示:


log_line_prefix=%t[%p]:user=%u,db=%d,app=%a,client=%h

如果是“syslog”日志格式,log_line_prefix就是:

log_line_prefix=user =%u,db=%d,app=%a,client=%h


3.打开其他日志记录


为了让pgBadger能够更好的分析,需要开启一些基础记录功能。

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

log_statement=none

这里不要log_statement不要启用,因为pgBadger不会解析它的日志格式。


4.设置字符集

最后一个是设置字符集。要确保自己的语言环境是英文的。

lc_messages=en_US.UTF- 8’

lc_messages=C

以上参数设置完成之后,进入到pgbadger目录运行,指定日志文件输出成html格式。

. ./pgbadger--prefix %t [%p]: user=%u,db=%d,app=%a,client=%h /pg_data1/pg12/logs/postgresql-2020-11-26_093001.log -o11-26_093001.html


查看报告

接下来我们就可以查看报告了。

报告有以下信息:

查询、事件、Vacuum、临时文件、会话数、连接数。


接下来我们来看下我们需要关注的一些点。首先是TOPSQL语句。


这里有一个图表。显示了SQL语句的执行时间所在的数量,比如1-10s,有43个查询。大于10秒是11个查询。SQL执行的SQL语句都会列出来。


其次可以看看出现的错误,通过图标可以迅速发现16点是一个错误频发期。一共出现了11次错误。可以进一步查看具体报的什么错。


会话数,通过图形判断是否在某个时间点出现大量的连接。


查看各个数据库占用的会话数。


检查点这里提供了检查点过程的信息,包括写入的缓冲区数,WAL文件以及其他常规信息。


[
总结
]


有了pgBadger工具,我们在查看错误日志的时候更加的得心应手。通过生成的图表可以有助于我们提前发现一些性能问题。同时它是开源和免费使用的,它的Licence在PostgreSQL下面。

同时我们可以搞一些高级的玩法,比如写一个crontab定期的分析html,还有远程分析html、增量分析等等。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/130063.html

相关文章

  • 阿里云操作审计 - 日志安全分析(一)

    摘要:阿里云操作审计日志实时分析概述目前,阿里云操作审计的已经与日志服务打通,提供实时分析与报表中心的功能。属性专属的日志库名字是阿里云跟踪名称,存放于用户所选择日志服务的项目中。 摘要: 阿里云操作审计ActionTrail审计日志已经与日志服务打通,提供准实时的审计分析、开箱机用的报表功能。本文介绍背景、配置和功能概览。 背景安全形式与日志审计伴随着越来越多的企业采用信息化、云计算技术来...

    jk_v1 评论0 收藏0
  • 使用ELK处理Docker日志(二)

    摘要:环境要求由,和容器组成使用日志收集器将日志发送到。若使用自己的部署,分析和可视化日志的概念保持不变。日志可视化以索引数据为基础创建丰富的可视化和仪表板的能力而闻名,事实上,得到这些数据并不容易。 昨天小数分享的使用ELK处理Docker日志(一)很受欢迎,今天迫不及待的带来第二篇,侧重于分析和可视化,期待给您带来帮助:) 嘘,听说数人云工程师们在奥斯汀DockerCON2017买了D...

    LiveVideoStack 评论0 收藏0
  • 余额宝11.11:基于日志数据分析的高效运维

    摘要:接下来我们以余额宝为例,重点剖析天弘基金在日志数据分析领域是如何突破的此前,天弘基金一直使用开源的日志方案,研发和运维人员通过对日志数据进行处理,使用日志文件进行查询检索。 双十一刚刚结束,其实最紧张的不是商铺理货,也不是网友紧盯大促商品准备秒杀,而是网购幕后的运维人员,他们最担心:什么网络中断、应用卡顿、响应速度慢,服务器宕机……双十一作为电商 IT 部门的头等大事,大促前,运维人员就需要...

    wenshi11019 评论0 收藏0
  • 数人云工程师手记 | 容器日志管理实践

    摘要:容器内文件日志平台支持的文件存储是,避免了许多复杂环境的处理。以上是数人云在实践容器日志系统过程中遇到的问题,更高层次的应用包括容器日志分析等,还有待继续挖掘和填坑,欢迎大家提出建议,一起交流。 业务平台每天产生大量日志数据,为了实现数据分析,需要将生产服务器上的所有日志收集后进行大数据分析处理,Docker提供了日志驱动,然而并不能满足不同场景需求,本次将结合实例分享日志采集、存储以...

    saucxs 评论0 收藏0
  • 日志深入理解

    摘要:说明很多软件,系统都会有着自己的日志,记录日志的主要目的是什么呢。可用来分析例子事件查看器里的日志是一个很好的例子。可以定时转存到日志文件中除了数据库不推荐外,使用文件还是使用内存的可能通过写入条数进行估算。 说明 很多软件,系统都会有着自己的日志,记录日志的主要目的是什么呢。 日志可以记录谁谁谁在什么时候做了什么事情,这些记录可以让我们知道用户是怎么操作系统报的错误。可用来找错也可以...

    Moxmi 评论0 收藏0

发表评论

0条评论

IT那活儿

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<