软件下载吧文章资讯

分类分类

关于PostgreSQL错误日志与慢查询日志收集

2024-02-13 10:22作者:下载吧

PostgreSQL错误日志与慢查询日志对于线上系统分析、问题预警、问题排查起到非常重要的作用,在此不做赘述。

此文档记录错误日志与慢查询日志的收集、分析与存储展示的方法。

一、总体思路

PostgreSQL日志输出可以配置多种多样的格式,其中以csvlog格式输出的日志信息最全面。但是CSV日志只能以本地文件的方式收集,不能直接写入网络,实时上传日志服务器。

日志收集:

PostgreSQL服务器分布在不同的机器,我们使用rsyslog客户端-服务器的方式来收集日志到日志服务器。具体方法:在PostgreSQL服务器部署客户端,在日志服务器部署服务器,客户端监控日志文件的变化,实时将新增日志上传到服务器,服务器根据不同客户端上传的日志,分别记录在不同的文件中。

此方法的好处是在PostgreSQL服务器本地可以保存一份原始的完整的csv日志,供全量信息查看与分析。

日志分析:

使用Logstash进行日志分析,Logstash是一个开源数据收集引擎,具有实时管道功能。Logstash可以动态地将来自不同文件的数据统一起来,进行数据筛选清洗,并将数据标准化到你所选择的目的地。

日志存储展示:

使用传统的Elasticsearch进行数据存储,Kibana进行数据展示。

二、rsyslog服务器端配置

新增以下内容到rsyslog配置文件/etc/rsyslog.conf,并重启rsyslog服务。

$PreserveFQDN on #用于正确的获取主机名
$FileOwner root #存储的文件属主
$FileGroup root #文件属主
$FileCreateMode 0644 #生成的文件权限
$DirCreateMode 0755 #生成的目录权限
$Umask 0022
$PrivDropToUser root #可以删除日志的用户
$PrivDropToGroup root #可以删除日志的用户组
module(load=”imuxsock”)
module(load=”imklog”)
module(load=”imudp”)
#input(type=”imudp” port=”514″)
module(load=”imtcp” MaxSessions=”500″)
input(type=”imtcp” port=”514″)​
$template linefmt,”%msg:2:$%n” #接收日志的格式(去掉开头的空格)​
$template pgloglocation,”/data/pglogs/%hostname%/%$YEAR%-%$MONTH%-%$DAY%.csv”​
:rawmsg,contains,”pg_5432″ ?pgloglocation;linefmt
##变量:%fromhost-ip%

展开全部

相关文章

说两句网友评论
    我要跟贴
    取消