案例说明:

对于KingbaseES R3集群的cluster日志默认系统是不做切割和清理的,随着运行时长的增加,日志将增长为一个非常大的文件,占用比较大的磁盘空间,并且在分析问题读取大文件时效率很低,所以本案例借助Linux系统的Logrotate工具进行cluster日志切割,将cluster日志按需切割成小的文件,并按需保留和清理。crond进程会按照清理的配置文件按需自动完成对日志的清理工作。

如下图所示:

Logrotate说明:

logrotate是Linux系统自带的日志切割工具,可以按月、周、天来切割日志文件并压缩,解决了日志备份以及备份日志的可读性。其基于crontab运行,系统自动触发。

logrotate配置文件相关:

  1)cron运行脚本/etc/cron.daily/logrotate

#!/bin/sh
/usr/sbin/logrotate /etc/logrotate.conf
EXITVALUE=$?
if [ $EXITVALUE != 0 ]; then
/usr/bin/logger -t logrotate "ALERT exited abnormally with [$EXITVALUE]"
fi
exit 0 2)配置文件/etc/logrotate.d/ 下
-rw-r--r--. 1 root root 178 Nov 24 2015 chrony
-rw-r--r--. 1 root root 71 Jul 21 2015 cups
-rw-r--r--. 1 root root 172 Nov 20 2015 iscsiuiolog
-rw-r--r--. 1 root root 165 Nov 21 2015 libvirtd
-rw-r--r--. 1 root root 163 Nov 21 2015 libvirtd.qemu
-rw-r--r--. 1 root root 893 Nov 21 2015 mariadb
-rw-r--r--. 1 root root 106 Mar 6 2015 numad
-rw-r--r--. 1 root root 136 Jun 10 2014 ppp
-rw-r--r--. 1 root root 408 Mar 6 2015 psacct
-rw-r--r--. 1 root root 115 Nov 21 2015 samba
-rw-r--r--. 1 root root 224 Sep 8 2015 syslog
-rw-r--r--. 1 root root 100 Jun 16 2015 wpa_supplicant
-rw-r--r--. 1 root root 100 Dec 3 2015 yum 3)配置文件参数详解
compress:对转储后的日志文件进行压缩;
nocompress:不对转储的日志文件进行压缩;
delaycompress:与 compress 一起使用,转储的日志文件到下一次转储进行压缩;
nodelaycompress:与 compress 一起使用,转储的日志文件本次转储进行压缩; copytruncate:备份正在打开的日志文件,将当前节点之前的文件备份出来,然后清空源文件;
nocopytruncate:直接备份整个日志文件,不做切割处理;
create mode owner group:使用指定属性创建新文件;
nocreate:不建立新的日志文件; ifempty:如果文件为空也转储;
notifempty:如果是空文件的话,不转储;
missingok:如果日志文件丢失,不报错继续下一个日志文件转储; errors address:把转储时的错误信息发送到指定的Email 地址;
mail address:把转储的日志文件发送到指定的E-mail 地址;
nomail:转储时不发邮件; olddir directory:转储后的日志文件放入指定的目录,必须和当前日志文件在同一个文件系统;
noolddir:转储后的日志文件和当前日志文件放在同一个目录下
prerotate/endscript:在转储以前需要执行的命令可以放入这个对,这两个关键字必须单独成行;
postrotate/endscript:在转储以后需要执行的命令可以放入这个对,这两个关键字必须单独成行; daily:指定转储周期为每天;
weekly:指定转储周期为每周;
monthly:指定转储周期为每月; dateext:使用当前日期作为转储文件的命名格式,没有此配置转储文件以1、3、4....为格式;
dateformat:配合dateext使用,定义转储文件格式,只支持%Y%m%d%s四个参数; rotate count:指定日志文件删除之前转储的次数,0 指没有备份,5 指保留5 个备份;
size size:当日志文件到达指定的大小时才转储,Size 可以指定 bytes 以及KB 或者MB;

一、kingbaseES集群日志切割和清理配置文件

1、查看配置文件信息

# 配置文件存储路径
[root@node3 logrotate.d]# pwd
/etc/logrotate.d # 配置文件
[root@node3 logrotate.d]# ls -lh kingbase
-rw-r--r-- 1 root root 727 Mar 2 12:27 kingbase

2、查看配置文件内容

=此主机是一个测试环境,在此主机也部署了kingbaseES V8R6的集群,部署完成后kingbaseES V8R6集群对hamgr.log和kbha.log做了切割和清理,所以kingbase文件里,配置了hamgr.log和kbha.log的日志切割和清理的配置信息。因此,对于kingbaseES V8R3的的cluster.log的配置,只需添加到此文件的尾部即可。对于生产环境,只部署了kingbaseES V8R3的集群,所以你只需要创建kingbase的文件,进行编辑,将cluster.log的配置写入文件即可。=

[root@node3 logrotate.d]# cat kingbase
# Generate by sys_monitor.sh at Mon Mar 1 17:26:29 CST 2021
/home/kingbase/cluster/R6HA/KHA/kingbase/bin/../kbha.log {
weekly
maxsize 100M
su kingbase kingbase
create 0600 kingbase kingbase
rotate 3
copytruncate
dateext
}
/home/kingbase/cluster/R6HA/KHA/kingbase/hamgr.log {
weekly
maxsize 100M
su kingbase kingbase
create 0600 kingbase kingbase
rotate 3
copytruncate
dateext
} /home/kingbase/cluster/kha/log/cluster.log {
daily
maxsize 2M
#su kingbase kingbase
#create 0600 kingbase kingbase
create 0600 root root
rotate 3
copytruncate
dateext
}

3、cluster.log日志清理配置文件

[root@node3 logrotate.d]# cat kingbase
# Generate by sys_monitor.sh at Mon Mar 1 17:26:29 CST 2021 /home/kingbase/cluster/kha/log/cluster.log {
daily # 按日清理
maxsize 2M # 日志文件大小为2M
#su kingbase kingbase
#create 0600 kingbase kingbase
create 0600 root root # 文件属主 root
rotate 3 # 只保留最近三个文件
copytruncate
dateext
}

二、测试cluster.log日志的清理

1、查看cluster.log日志信息

[kingbase@node3 log]$ ls -lh cluster*
total 8.7M
-rw-r--r-- 1 root root 3.2M Mar 2 12:27 cluster.log
-rw-r--r-- 1 root root 266K Mar 2 12:33 cluster_restart.log
-rw-r--r-- 1 root root 110 Mar 1 13:58 clusterstop

.......

2、测试logrotate 手工切割和清理

[root@node3 logrotate.d]# logrotate /etc/logrotate.d/kingbase

3、查看切割后的cluster.log信息

=如下所示,生成了‘cluster.log-20210302’的日志文件,当前的cluster.log日志文件内容被清空。=

[kingbase@node3 log]$ ls -lh cluster*
-rw-r--r-- 1 root root 17K Mar 2 12:35 cluster.log
-rw-r--r-- 1 root root 3.2M Mar 2 12:27 cluster.log-20210302 #切割后的历史文件
-rw-r--r-- 1 root root 266K Mar 2 12:34 cluster_restart.log
-rw-r--r-- 1 root root 110 Mar 1 13:58 clusterstop

三、总结

对与Linux系统下的日志清理,可以借助于logrotate工具。通过crond进程自动清理。用户只需要按需做好配置文件的配置,一切交给系统进行管理即可。

KingbaseES R3 集群cluster日志切割和清理案例的更多相关文章

  1. KingbaseES R3 集群主库归档失败案例

    案例说明: 本案例用于KingbaseES R3集群归档进程归档日志失败的处理,对于一线的生产环境具有 一定的参考意义. 数据库版本: TEST=# select version(); VERSION ...

  2. KingbaseES R3 集群一键修改集群用户密码案例

    案例说明: 在KingbaseES R3集群的最新版本中增加了kingbase_monitor.sh一键修改集群用户密码的功能,本案例是对此功能的测试. kingbaseES R3集群一键修改密码说明 ...

  3. KingbaseES R3 集群删除test库导致主备无法切换问题

    案例说明: 在KingbaseES R3集群中,kingbasecluster进程会通过test库访问,连接后台数据库服务测试:如果删除test数据库,导致后台数据库服务访问失败,在集群主备切换时,无 ...

  4. kingbaseES R3 集群修改data路径测试案例

    案例说明: 默认KingbaseES R3集群部署后,数据存储目录(data)在/home/kingbase下,部署时不能更改:本案例是在部署完成后,迁移data目录到其他指定的存储位置. 数据库版本 ...

  5. KingbaseES R3集群在线删除数据节点案例

    案例说明: kingbaseES R3集群一主多从的架构,一般有两个节点是集群的管理节点,所有的节点都可以为数据节点:对于非管理节点的数据节点可以在线删除:但是对于管理节点,无法在线删除,如果删除管理 ...

  6. KingbaseES R3 集群修改system用户密码方案

    方案说明: 对于kingbaseES R3集群修改system密码相比单机环境有一定的复杂性,需要修改的位置如下: 1)数据库中system用户密码,可以用alter user命令修改 2)在reco ...

  7. KingbaseES R6 集群repmgr.conf参数'recovery'测试案例(一)

    KingbaseES R6集群repmgr.conf参数'recovery'测试案例(一) 案例说明: 在KingbaseES R6集群中,主库节点出现宕机(如重启或关机),会产生主备切换,但是当主库 ...

  8. KingbaseES V8R6集群维护之--修改数据库服务端口案例

    ​ 案例说明: 对于KingbaseES数据库单实例环境,只需要修改kingbase.conf文件的'port'参数即可,但是对于KingbaseES V8R6集群中涉及到多个配置文件的修改,并且在应 ...

  9. KingbaseES R6 集群修改物理IP和VIP案例

    在用户的实际环境里,可能有时需要修改主机的IP,这就涉及到集群的配置修改.以下以例子的方式,介绍下KingbaseES R6集群如何修改IP. 一.案例测试环境 操作系统: [KINGBASE@nod ...

随机推荐

  1. docker 部署 minio

    1.下载镜像 docker pull minio/minio 2.启动 docker run -p 9000:9000 --name minio \ -d --restart=always \ -e ...

  2. NC19916 [CQOI2010]扑克牌

    NC19916 [CQOI2010]扑克牌 题目 题目描述 你有n种牌,第i种牌的数目为 \(c_i\) .另外有一种特殊的牌:joker,它的数目是m.你可以用每种牌各一张来组成一套牌,也可以用一张 ...

  3. CSS Houdini:用浏览器引擎实现高级CSS效果

    vivo 互联网前端团队-Wei Xing Houdini被称之为Magic of styling and layout on the web,看起来十分神秘,但实际上,Houdini并非什么神秘组织 ...

  4. 解读Go分布式链路追踪实现原理

    摘要:本文将详细介绍分布式链路的核心概念.架构原理和相关开源标准协议,并分享我们在实现无侵入 Go 采集 Sdk 方面的一些实践. 本文分享自华为云社区<一文详解|Go 分布式链路追踪实现原理& ...

  5. 在 Windows 上使用压缩文件 安装 MySQL

    在 Windows 上使用压缩文件 安装 MySQL 1. 下载 MySQL mysql-5.7.27-win32.zip:二进制文件; 服务器类型: mysqld 2. 解压 mysql-5.7.2 ...

  6. Python网页解析库:用requests-html爬取网页

    Python网页解析库:用requests-html爬取网页 1. 开始 Python 中可以进行网页解析的库有很多,常见的有 BeautifulSoup 和 lxml 等.在网上玩爬虫的文章通常都是 ...

  7. 【一本通提高博弈论】[ZJOI2009]取石子游戏

    [ZJOI2009]取石子游戏 题目描述 在研究过 Nim 游戏及各种变种之后,Orez 又发现了一种全新的取石子游戏,这个游戏是这样的: 有 n n n 堆石子,将这 n n n 堆石子摆成一排.游 ...

  8. Linux串口编程进阶

    在<Linux串口编程>编程一文中介绍了串口应用中常用的基本操作,如:串口打开关闭.串口设置.数据收发等.本篇文章主要基于常规串口操作进行了扩充,主要介绍如下操作: Linux系统使用非标 ...

  9. Netty源码解读(二)-服务端源码讲解

    简单Echo案例 注释版代码地址:netty 代码是netty的源码,我添加了自己理解的中文注释. 了解了Netty的线程模型和组件之后,我们先看看如何写一个简单的Echo案例,后续的源码讲解都基于此 ...

  10. fill-available,min-content,max-content,fit-content的作用机制

    fill-available:宽度由外部元素决定(div)min-content:宽度由内部元素宽度缩小到最小的最大内部元素宽度决定max-content:宽度由内部元素宽度扩大到最大后的最大内部元素 ...