服务器上 logrotate 存在,且 crond 服务开启,集群安装成功,日志按期归档功能
即可正常运行使用。
集群在线时,corosync.log、express.log、syncserver.log、gc_recover.log、system.log 等日志过大,查看日志耗时,并且不方便归档。集群在线时,使用 logrotate 工具,可以实现日志文件按日期生成,利于查看,方便归档。
logrotate 在 linux 系统中默认安装,logrotate 默认放置在/etc/cron.daily 目录下,默
认让 cron 每天执行 logrotate 一次,从而实现按天转储日志。同时,将转储后的日
志存放于集群日志相同的目录下,用户可以通过查看集群日志的方式查看转储日
志。
logrotate 的配置文件分为全局配置文件和用户自定义配置文件,用户可以根据需
要自行设置相关配置文件中的参数值。
全局配置文件:/etc/logrotate.conf
用户自定义配置文件:/etc/logrotate.d/
gc_express
gc_gc_recover
gc_system
gcware
gn_express
gn_syncserver
gn_system
corosync
logrotate 运行时会先读取全局配置文件,再读取用户自定义配置文件,相同的参
数,用户自定义配置文件中的值会覆盖全局配置文件中的值,由用户自定义配置
的值起效。
全局配置文件中指定了日志文件转储后自动建立新的日志文件,转储的日志文件
以日期为后缀”日志文件名称-年月日”。如:xxx.log-20201217.gz。
用户自定义配置文件如下,以 gc_express 为例:
Example:
gcluster/log/gcluster/express.log{
Missingok --转储过程中没有日志不报错
Compress --通过 gzip 压缩转储后的日志
Copytruncate --转储时对打开正在写的日志进行截断转储
Daily --指定转储的周期,如每天/周/月,需要配合 crontab 使用,如该值为 weekly
,logrotate 程序需要放到/etc/cron.weekly 中
rotate 31 --日志文件删除前转储的次数
size 10M --日志文件到达指定大小时才转储,logrotate 仅支持按日期转
储,如需要按照日志文件大小转储,需手动编写脚本实现
minsize 1M --文件大小超过 size 后才转储
notifempty --空文件不转储
}
其中,daily,weekly,monthly 都是系统自带的(/etc/cron.weekly,/etc/cron.monthly),如果想要自己手动设置时间间隔来转储日志,如每分钟、每几个小时、每周几,则需要通过单独写 crontab 表达式来让 logrotate 指定配置文件和指定时间执行,如下:
Example:
cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0-59)
# | .------------- hour (0-23)
# | | .---------- day of month (131)
# | | | .------- month (1-12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0-6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# ***** user-name command to be executed
*号从左至右,依次表示 minute ,hour ,day of month,month,day of week
0-59 ****root run-parts /etc/cron.daily
表示每分钟转出一次
**/1 ***root run-parts /etc/cron.daily
表示每小时转储一次
****6 root run-parts /etc/cron.daily
表示每周六转储一次
**12 **root run-parts /etc/cron.daily
表示每月 12 日转储一次
注:
1. 日志持续写入时,logrotate 转储备份不间断,不宕机;
2. 磁盘写满时,logrotate 自动停止备份;
3. Logrotate 备份过程是读取原日志文件写入到目标日志文件,读取完毕后 trun
cate 源文件。
#35811
若存在logrotate工具,针对集群日志进行管理;否,不管理,不对日志做任何操作;
集群存在安装、扩展、升级过程中,集群日志文件将生成对应的配置文件,logrotate通过读取这些管理文件,对集群日志文件进行管理;
在升级过程中,检查每个集群日志文件是否在安装中已经生成对应配置文件,若存在,跳过;否则,生成新的配置文件。
#56796
安装前后都要执行./SetSysEnv.py脚本
升级前后都要执行./SetSysEnv.py脚本