日志的切割

版权声明:本文为博主原创文章,未经博主允许不得转载 https://blog.csdn.net/qq_41729148/article/details/89046361

日志切割

在linux下的日志会定期进行滚动增加,我们可以在线对正在进行回滚的日志进行指定大小的切割(动态)
如果这个日志是静态的。比如没有应用向里面写内容。那么我们也可以用split工具进行切割;
其中Logrotate支持按时间和大小来自动切分,以防止日志文件太大。
真正内容:当日志达到某个特定的大小,我们将日志分类,之前的日志保留一个备份,再产生的日志创建一个同名的文件保存新的日志.

配置文件介绍

logrotate配置文件主要有:
/etc/logrotate.conf 以及 /etc/logrotate.d/ 这个子目录下的明细配置文件。
logrotate的执行由crond服务调用的。

查看logrotate.conf文件
其中全局参数的含义如下:
说明:(全局参数)
weekly : 每周执行回滚,或者说每周执行一次日志回滚
rotate: 表示日志切分后历史文件最多保存离现在最近的多少份 [rəʊˈteɪt] 旋转
create : 指定新创建的文件的权限与所属主与群组
dateext : 使用日期为后缀的回滚文件 #可以去/var/log目录下看看

在这里插入图片描述
/var/log/btmp { 指定的日志文件的名字和路径
missingok 如果文件丢失,将不报错
monthly 每月轮换一次
create 0664 root utmp 设置btmp这个日志文件的权限,属主,属组
minsize 1M 文件超过1M进行回滚,所以大家要知道它不一定每个月都会进行分割,要看这个文件大小来定
rotate 1 日志切分后历史文件最多保存1份,不含当前使用的日志
}

在这里插入图片描述
查看日志文件什么时候开始轮换的信息
在这里插入图片描述
在这里插入图片描述

关于切割日志的其他参数的说明(参考,了解)

monthly: 日志文件将按月轮循。其它可用值为‘daily’,‘weekly’或者‘yearly’。
rotate 5: 一次将存储5个归档日志。对于第六个归档,时间最久的归档将被删除。
compress: 在轮循任务完成后,已轮循的归档将使用gzip进行压缩。
delaycompress: 总是与compress选项一起用,delaycompress选项指示logrotate不要将最近的归档压缩,压缩将在下一次轮循周期进行。这在你或任何软件仍然需要读取最新归档时很有用。
 missingok: 在日志轮循期间,任何错误将被忽略,例如“文件无法找到”之类的错误。
 notifempty: 如果日志文件为空,轮循不会进行。
 create 644 root root: 以指定的权限创建全新的日志文件,同时logrotate也会重命名原始日志文件。
 postrotate/endscript: 在所有其它指令完成后,postrotate和endscript里面指定的命令将被执行。在这种情况下,rsyslogd 进程将立即再次读取其配置并继续运行。

对SSHD服务进行日志切割,首先得进行指定日志文件的修改

查看上一篇的博客:https://mp.csdn.net/mdeditor/89045035
3编辑一个sshd的配置文件,可以对sshd.log进行分割
内容如下:

/var/log/sshd.log{
missingok 
weekly
create 0600 root root
minsize 1M
rotate 3

在这里插入图片描述
4重新启动rsyslog服务

systemctl start rsyslog

在这里插入图片描述
5查看效果

logrotate -vf /etc/logrotate.d/sshd 
v:显示详细信息
f:强制轮循,也就是说即使轮循条件没有满足,也强制执行

在这里插入图片描述
6多次进行强制轮循,你会发现一个有趣的事情,那就是/var/log/sshd*文件只有3个,这和我们设置的rotate 3有关
在这里插入图片描述

配置一个远程日志服务器-实现日志的集中管理

客户端使用TCP的514端口对服务端进行日志信息的发送。
服务端使用TCP监听514端口,注意关闭防火墙和selinux

客户端:192.168.1.64
服务端:192.168.1.63
客户端:在/etc/rsyslog.conf的90行后面加上如下的内容,然后重启rsyslog服务
在这里插入图片描述
在这里插入图片描述
服务端:修改/etc/rsyslog.conf中的19,20行,然后重启rsyslog服务。
改:
19 #KaTeX parse error: Expected 'EOF', got '#' at position 19: …Load imtcp 20 #̲InputTCPServerRun 514
为:
19 $ModLoad imtcp
20 $InputTCPServerRun 514
在这里插入图片描述
在这里插入图片描述
同时,我们还要对防火墙和selinux进行设置
在这里插入图片描述
监听514端口
在这里插入图片描述

以上的配置完成,我们就可以进行测试了。

在服务器端,我们可以输入以下命令。

tail -f /var/log/messages | grep break --color

在这里插入图片描述
在客户端,使用以下命令,来模拟日志消息

logger 你好

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_41729148/article/details/89046361
今日推荐