使用审计日志记录资源使用
使用审计日志记录资源使用¶
如果想分析各条SQL的资源使用情况,需要打开与审计日志有关的参数,并启动审计日志服务。
拓扑图¶
审计日志是基于日志归档功能,日志归档功能
coordinator(业务主库coordinator,产生SQL的CSV日志)
\
\ (sdlog_archve,解析CSV日志,并以csv文件文件为单位加载并插入到审计日志服务中)
\
\
审计日志服务(远端部署seaboxsql单机数据库)
/
/
/ (sdlog_archive,解析CSV日志,并插入到审计日志服务中)
/
coordinator N (其他业务主库..)
如上拓扑显示: 业务主库上一条SQL执行结束,会产生一条CSV日志,CSV记录中包含:起时和结束时间,CPU/内存/磁盘 等资源使用情况。 同时日志扫描(sdlog_archive)程序会监控CSV日志,解析新产生的CSV日志记录, 并加载到远端部署的审计日志服务中,这里的审计日志服务是一个seaboxsql单机数据库实例.
同时,一个审计服务还可以接入多套集群,
coordinator 1
/
集群1
/ \ coordinator N
审计日志服务- ...
\
集群N - coordinators
启动步骤¶
需要启动两个步骤:审计日志服务;日志归档程序配置和启动(sdlog_archive)
启动顺序要求:日志归档程序sdarchive需要在审计日志服务启动后再启动;
审计日志服务使用¶
审计日志服务的参数推荐配置(以写入性能最优为目标)¶
- sd_hdb.conf修改
-- 配置单机的sd_hba.conf文件,允许coordinator的IP地址的用sd_sao_etl和 superuser权限用户或者sd_dba用户访问审计日志使用的库,提前创建需要的审计库(audit),使用其他应进行修改
host audit sd_sao_etl IP/32 trust
host audit sd_dba/superuser IP/32 trust
- seaboxsql.conf 修改
listen_addresses = '*' # what IP address(es) to listen on;
-- 修改wal相关的参数,优化insert 性能
wal_level = 'minimal'
-- fsysnc参数,是在写入时不调用sync操作,在服务器异常断电时,可能会丢失部分最近更新数据。根据具体应用需求谨慎选择配置。
fsync = off
synchronous_commit = off
max_wal_senders = 0
checkpoint_timeout=1h
autovacuum=on
wal_compression=off
commit_delay = 20
commit_siblings = 32
sd_ctl -D ./data -l./data/sd_log/startup.log start
waiting for server to start.... done
server started
日志归档程序配置和启动(sdlog_archive)¶
- 这部分参考数据库日志管理章节中日志推荐配置内容
查看历史sql资源使用¶
- 这部分参考数据库日志管理 章节中日志记录内容部分和日志归档功能
审计日志库的缩容操作¶
-- 提供shrink_audit函数用于缩容审计日志库数据,参数为删除的的最大日期,小于此日期的数据将被全部删除。
seaboxsql=# select sdlog.shrink_audit('2023-4-28');
shrink_audit
--------------
(1 row)