案例说明:

对于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. 快速保存Win10锁屏壁纸,收获美丽瞬间

    对于写程序而言,每天接触得最多的就是电脑了 所以保持一种开放乐观,豁达美丽的心情是十分有必要的 使用"Everything"工具,输入"LocalState\Assets ...

  2. 一文看完vue3的变化之处

    在通读了vue的官网文档后,我记录下了如下这些相对于2.x的变化之处. 1.创建应用实例的变化 之前一般是这样: let app = new Vue({ // ...一些选项 template: '' ...

  3. JAVA语言的跨平台性和JDK,JRE与JVM

    Java虚拟机--JVM ~JVM:java虚拟机简称JVM是运行所有java程序的假想计算机,是java程序的运行环境,是java最具有吸引力的特性之一,我们编写的java代码,都运行在JVM之上 ...

  4. 5-12 RabbitMQ 消息队列

    RabbitMQ 什么是RabbitMQ RabbitMQ 是一个由 Erlang 语言开发的 AMQP 的开源实现. AMQP :Advanced Message Queue,高级消息队列协议.它是 ...

  5. AtCoder Beginner Contest 260 G // imos(累积和算法)

    题目传送门:G - Scalene Triangle Area (atcoder.jp) 题意: 给定大小为N*N的OX矩阵,若矩阵的(s,t)处为O,其覆盖范围为:满足以下条件的所有位置(i,j) ...

  6. python使用技巧

    当存在一个列表你需要将列表中的元素转为对应字典时,如何操作? 例如将["a", 1]变成{"a": 1} data = ["a", 1] d ...

  7. Bert不完全手册6. Bert在中文领域的尝试 Bert-WWM & MacBert & ChineseBert

    一章我们来聊聊在中文领域都有哪些预训练模型的改良方案.Bert-WWM,MacBert,ChineseBert主要从3个方向在预训练中补充中文文本的信息:词粒度信息,中文笔画信息,拼音信息.与其说是推 ...

  8. 丽泽普及2022交流赛day15 社论

    前言 link 太牛逼了,补完我一定放代码 . orz 越看越牛逼 orz . 时间复杂度都是口胡,不要信 . 以下是目录 目录 目录 前言 A 题面 题解 代码 B 题面 题解 代码 C 题面 题解 ...

  9. Linux上安装java

    1,输入命令,查看是否已经安装了Openjdk:rpm -qa | grep java 如果有已经安装的java版本或者版本低于1.7,卸载该jdk:rpm -e 软件包名字 如果不能卸载,可以加上 ...

  10. MPI简谈

    MPI简谈 MPI是分布式内存系统,区别于OpenMP和Pthreads的共享内存系统.MPI是一种基于消息传递的并行编程技术,是如今最为广泛的并行程序开发方法. MPI前世今生 MPI(Messag ...