時間:2024-02-13 10:22作者:下載吧人氣:15
PostgreSQL錯誤日志與慢查詢日志對于線上系統分析、問題預警、問題排查起到非常重要的作用,在此不做贅述。
此文檔記錄錯誤日志與慢查詢日志的收集、分析與存儲展示的方法。
PostgreSQL日志輸出可以配置多種多樣的格式,其中以csvlog格式輸出的日志信息最全面。但是CSV日志只能以本地文件的方式收集,不能直接寫入網絡,實時上傳日志服務器。
PostgreSQL服務器分布在不同的機器,我們使用rsyslog客戶端-服務器的方式來收集日志到日志服務器。具體方法:在PostgreSQL服務器部署客戶端,在日志服務器部署服務器,客戶端監控日志文件的變化,實時將新增日志上傳到服務器,服務器根據不同客戶端上傳的日志,分別記錄在不同的文件中。
此方法的好處是在PostgreSQL服務器本地可以保存一份原始的完整的csv日志,供全量信息查看與分析。
使用Logstash進行日志分析,Logstash是一個開源數據收集引擎,具有實時管道功能。Logstash可以動態地將來自不同文件的數據統一起來,進行數據篩選清洗,并將數據標準化到你所選擇的目的地。
使用傳統的Elasticsearch進行數據存儲,Kibana進行數據展示。
新增以下內容到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%
網友評論