案例说明:

对于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. 使用dockerfile部署springboot应用

    本章简单展示如何最短时间 把springboot应用打包成镜像并创建成容器. 准备工作: 1.安装docker ,保证执行docker version没有问题 2.拉下来一个jdk镜像 docker ...

  2. UiPath鼠标操作元素的介绍和使用

    一.鼠标(mouse)操作的介绍 模拟用户使用鼠标操作的一种行为,例如单击,双击,悬浮.根据作用对象的不同我们可以分为对元素的操作.对文本的操作和对图像的操作 二.鼠标对元素的操作在UiPath中的使 ...

  3. NC25136 [USACO 2006 Ope B]Cows on a Leash

    NC25136 [USACO 2006 Ope B]Cows on a Leash 题目 题目描述 给定如图所示的若干个长条.你可以在某一行的任意两个数之间作一条竖线,从而把这个长条切开,并可能切开其 ...

  4. Pytorch从0开始实现YOLO V3指南 part5——设计输入和输出的流程

    本节翻译自:https://blog.paperspace.com/how-to-implement-a-yolo-v3-object-detector-from-scratch-in-pytorch ...

  5. 如何参与开源项目 - 细说 GitHub 上的 PR 全过程

    目录 一.概述 二.为什么要参与开源项目 三.为什么我想介绍如何 PR 四.我想参与开源项目,怎么开始? 4.1.寻找一个合适的开源项目 4.2.寻找贡献点 五.我要提交 PR,怎么上手? 5.1.第 ...

  6. NOI / 2.1基本算法之枚举 1749:数字方格

    描述: 如上图,有3个方格,每个方格里面都有一个整数a1,a2,a3.已知0 <= a1, a2, a3 <= n,而且a1 + a2是2的倍数,a2 + a3是3的倍数, a1 + a2 ...

  7. OPC UA分布式IO模块

    OPC UA IO模块对工业物联网的影响 OPC UA IO模块是指IO模块支持OPC UA协议,可以直接与OPC Client进行通信,这样就可以从OPC Client上直接远程通过以太网对IO口进 ...

  8. C#枚举器/迭代器

    一.枚举器 1.为什么foreach可以顺序遍历数组? 因为foreach可以识别可枚举类型,通过访问数组提供的枚举器对象来识别数组中元素的位置从而获取元素的值并打印出来. 2.什么是枚举器?可枚举类 ...

  9. GTID主从和lamp架构运行原理

    目录 GTID主从 GTID概念介绍 GTID工作原理 GTID主从配置 lamp lamp简介 web服务器工作流程 cgi与fastcgi http协议 是什么? lamp架构运行的原理 Apac ...

  10. React报错之`value` prop on `input` should not be null

    正文从这开始~ 总览 当我们把一个input的初始值设置为null或者覆盖初始值设置为null时,会产生"valueprop on input should not be null" ...