logstash容器日志清理方法

天天见闻 天天见闻 2023-05-06 科技 阅读: 264
摘要: 首先检查大量使用磁盘的文件,1、检查磁盘使用情况,显示Linux系统中当前正在使用的文件系统磁盘的使用情况统计信息。使用Du命令显示目录或文件使用的磁盘空间大小,可以查找最常用的文件。最后,您发现Logstash容器中的日志文件使用过多。全部Logstash解析日志时打印的信息2,容器日志清理方案:手动清理日志文件。

最近遇到一个服务器的问题:磁盘满了,占用率 100%~

这个问题太常见了,于是先来排查一波是哪些文件占用了大量磁盘。

一、排查磁盘占用率100%

1、查看磁盘使用的大致情况

第一个命令就是 df -h,来查看磁盘的占用情况。df 是 disk free 的缩写,用于显示目前在 Linux 系统上的文件系统磁盘的使用情况统计。

如下图所示,可以看到磁盘占用率 100%。

第一列 Filesystem 代表文件系统的名称。

第二列 Size 表示文件系统的大小。

第三列 Used 表示已占用多大的磁盘空间。

第四列 Avail 表示可用磁盘空间的大小。

第五列 Use% 表示磁盘使用率多大,100% 表示磁盘占满了。

第六列 Mounted On 表示挂载在哪个目录。

从上面的结果可以看到有个文件系统占用率为 100%,为/dev/sda2,挂载的目录为 /,那我们就来看下这个目录下都存放哪些大文件吧。

2、查看目录下的大文件

使用 du 命令来显示目录或文件所占用的磁盘空间大小。

# 先进入到根目录 `/`

cd /

# 列出当前目录或文件的总大小,并按倒叙排序

du -sh /* | sort -nr

找到最大的目录 var,占用 100 多个 G。进入到这个目录中,然后再次执行 du 命令

du -sh /var/* | sort -nr

这样一级一级的找,就能找到占用空间最大的文件了。

最后发现是 Logstash 容器的日志文件占用太大,截图如下。大家看到的占用 4.8G,这是我清理日志之后的大小,之前这个容器占用 90 多个 G。

3、Logstash 容器为什么占用磁盘这么大

为啥 Logstash 容器会有这么多日志???

我们看下这个日志里面的内容就知道了。使用 tail 命令查看文件的最后 100 行数据。

tail -n 100 容器 id -json.log

# 也可以通过 docker logs 来查看日志

docker logs --tail=100 159

发现全都是 Logstash 解析日志时打印的信息。如下图所示:

每次 Filebeat 采集日志后,传输给 Logstash 后,Logstash 都会打印一条解析后的日志。

而我们的后端服务会打印很多日志,传输给 Logstash 的日志会越来越多,Logstash 又会疯狂的写自己的解析日志,久而久之,磁盘就被占满了。

问题原因找到了,那解决方案是什么呢?

二、容器日志清理方案

方案一:手动清理日志文件,可解燃眉之急,治标不治本。

方案二:脚本定期清理日志文件,缺点是日志文件全丢了,无法追溯。

方案三:限制所有容器的日志文件大小,治本,缺点是需要重新创建容器和启动 docker 镜像。

1、方案一:手动清理方案

cat /dev/null /var/lib/docker/containers/容器id/容器id-json.log

注意:这里没有使用 rm 方式来删除文件。使用 rm -rf 方式删除日志后,通过 df -h 会发现磁盘空间并没有释放。原因是在Linux或者Unix系统中,通过 rm -rf 或者文件管理器删除文件,将会从文件系统的目录结构上解除链接(unlink)。如果文件是被打开的(有一个进程正在使用),那么进程将仍然可以读取该文件,磁盘空间也一直被占用。正确姿势是cat /dev/null *-json.log,当然你也可以通过rm -rf删除后重启docker。

2、方案二:脚本定期清理

提供一个清理脚本

#!/bin/sh

echo "======== start clean docker containers logs ========"

logs=$(find /var/lib/docker/containers/ -name *-json.log)

for log in $logs

do

echo "clean logs : $log"

cat /dev/null $log

done

echo "======== end clean docker containers logs ========"

给脚本添加权限

chmod +x clean_docker_log.sh

执行脚本的命令

./clean_docker_log.sh

大家可以把执行脚本的命令加到 Linux 的定时任务中就可以了,这里不做展开。

下面要说的是我目前使用的方案。

3、方案三:限制 Docker 容器日志大小

新建 /etc/docker/daemon.json,若有就不用新建了。

vim /etc/docker/daemon.json

配置内容如下:

"log-driver":"json-file",

"log-opts": {"max-size":"500m", "max-file":"3"}

max-size=500m,表示容器的日志文件大小上限是 500M, max-file=3,表示容器有三个日志,第一个满了 500M之后就写第二个,第二个满了 500M就写第三个,如果第三个满了,就清空第一个日志文件,重新写第一个日志文件。如下图所示:

写了 3 个日志文件,最大不超过 500M

改完之后需要重启 docker 守护进程

systemctl daemon-reload

systemctl restart docker

另外这种方式只对新建的容器有效的,之前的容器不生效,所以我又把之前的 Logstash 容器删除了,然后重新启动了一个 Logstash 容器。

参考资料

Linux df 命令

Linux du 命令

作者丨聊架构

来源丨公众号:聊架构(ID:PassJava666)

dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn

关于我们

dbaplus社群是围绕Database、BigData、AIOps的企业级专业社群。资深大咖、技术干货,每天精品原创文章推送,每周线上技术分享,每月线下技术沙龙,每季度GdevopsDAMS行业大会。

关注公众号【dbaplus社群】,获取更多原创技术文章和精选工具下载

其他相关
小学数学知识点汇总+练习:升和毫升

小学数学知识点汇总+练习:升和毫升

作者: 天天见闻 时间:2024-03-05 阅读: 38
今天小编整理了【升和毫升】知识点汇总+练习题,家长可以给孩子收藏起来,学习积累。为了准确测量或计算容器的容量,要用统一的容量单位:升或毫升。计量水、油、饮料等液体的多少,通常用升作单位,常用符号“L”表示。计量比较少的液体,常用毫升作单位,常用符号“mL”表示...

如何在VI中取消高亮显示

作者: 天天见闻 时间:2024-01-30 阅读: 30
高亮显示中root使用Vi不能高亮显示的解决办法以及TAB补全命令.doc中root使用Vi不能高亮显示的解决办法以及TAB补全命令.doc选中高亮显示实现方法人人客户端有一个很好的导航栏,如下图所示,当点击左侧后,选中的一行就会一直呈高亮状态显示,图中选中行字的颜色显示为蓝色(注意:是选中行后一直高亮,而不是只是点击时高亮),如果再次点击另外的一行......

10款免费安卓文件管理器横评,除了ES文件浏览器真没一个能打的

作者: 天天见闻 时间:2023-12-20 阅读: 57
文件浏览/管理器是每个Android手机用户离不开的APP,但系统自带的文件管理器一般较弱,没有网络功能等,需要安装第三方文件管理器。过了一段时间,我遇到了ES浏览器,一看就离不开了,这几年一直是我手机需要和常用的APP,在启动屏幕上官方自称是“安卓第一文件管理器”,在一定程度上也很有名。...
教你手机储存卡格式化(指手机、电脑都不能格式化)

教你手机储存卡格式化(指手机、电脑都不能格式化)

作者: 天天见闻 时间:2023-09-26 阅读: 67
手机内存卡无法格式化的故障可能很多朋友都遇到过,但由于对内存卡的相关知识不多,以为内存卡破损被丢弃就扔掉了,其实手机内存卡无法格式化的故障解决起来并不复杂,让我们一起知道什么是手机内存卡。我们的手机本身具有一定的内存容量,但为了满足手机用户对手机内存的个性化需求,很多手机品牌模式都设置了外接内存,即我们通常所说的手机存储卡.1。将存储卡连接到计算机,右键单击我的计算机--管理--计算机管理。...
罗技G502鼠标驱动怎么设置灵敏度和宏 罗技G502驱动设置灵敏度和宏的方法

罗技G502鼠标驱动怎么设置灵敏度和宏 罗技G502驱动设置灵敏度和宏的方法

作者: 天天见闻 时间:2023-09-26 阅读: 70
因为可以帮助用户对罗技g502鼠标进行调整,让更多合作伙伴听到罗技g502鼠标的灵敏度和宏如何设置,今天小编带来了罗技G502鼠标驱动如何设置灵敏度和宏的相关内容,罗技G502鼠标驱动带来了如何设置灵敏度和宏:1。首先下载罗技G502鼠标驱动程序,然后打开其设置界面。您可以在板载内存中设置宏命令,但您可以使用它来设置宏命令。也可以单击配置文件下方的编号,等设置完成后单击。“...
电脑搜文件太慢?教你解决!

电脑搜文件太慢?教你解决!

作者: 天天见闻 时间:2023-08-24 阅读: 189
用电脑找文件太晚了吗?这篇文章将介绍几种简单实用的方法来加快计算机搜索文件的速度,但在使用计算机搜索文件时,可能缺少计算机硬盘的存储空间,您需要清理计算机硬盘,您也可以使用计算机自带的磁盘清理程序进行清理,从而提高计算机搜索文件的速度。使用专业的文档检索软件也可以提高计算机检索文档的速度,这些软件可以对文档进行全面索引,快速找到搜索文档时所需的内容。...
我来说两句

年度爆文