OSSEC磁盘空间使用情况

OSSEC磁盘空间使用情况

几天前,我发现我的 Ubuntu 服务器的磁盘快满了。我仔细检查了一下,发现磁盘空间被 OSSEC 占用了,位于/var/ossec/queue/diff文件夹中。

我想立即尝试一下,所以我删除了这个文件夹的内容。一切正常,磁盘空间使用量也恢复到“正常”水平。

但是OSSEC队列文件夹又在增长。

是否有设置可以防止 OSSEC 队列使用所有磁盘空间?

答案1

据我所知,OSSEC 本身不会删除日志。请查看文档

OSSEC的日志存储在哪里?¶

在 OSSEC 服务器和本地安装中,有几类 OSSEC 日志。有 OSSEC 守护进程创建的日志、来自代理的日志消息和警报。代理安装没有来自其他代理或警报的日志,但有 OSSEC 进程创建的日志。

所有日志都存储在 /var/ossec/logs 的子目录中。OSSEC 的日志消息存储在 /var/ossec/logs/ossec.log 中。

默认情况下,不会存储来自代理的日志消息。除非管理器的 ossec.conf 中包含该选项,否则分析后它们将被删除。如果设置,则发送到管理器的所有日志消息都存储在 /var/ossec/logs/archives/archives.log 中并每天轮换。

警报存储在 /var/ossec/logs/alerts/alerts.log 中,每天轮换。

您可以使用 logrotate 来轮换 ossec 日志,但是/var/ossec/queue/diff文件夹则是另一回事。

您可以安全地删除其中的文件并维护 OSSEC 功能,但您将丢失差异报告。

答案2

似乎如果你像我一样将 report_changes 添加到你的目录中,可能会导致这种情况:/home/wordpress/sites/

报告更改 OSSEC 支持在 Linux 和 Unix 系统上对文本文件进行更改时发送差异。

配置 syscheck 显示差异很简单,只需将 report_changes="yes" 添加到

/etc /bin,/sbin 注意报告更改只能用于文本文件,更改存储在代理上的 /var/ossec/queue/diff/local/dir/file 中。如果 OSSEC 未使用 libmagic 支持进行编译,report_changes 将复制指定的任何文件,例如 mp3、iso、可执行文件、/chroot/dev/urandom(将填满您的硬盘)。因此,除非使用 libmagic,否则请非常小心启用 report_changes 的目录。

答案3

Logrotate 是答案(正如 Lenniey 所提到的),但这只会偶尔起作用。为什么不使用早已被遗忘的磁盘配额传说以防止日志占用所有可用空间?

答案4

帖子很老了,但因为我又遇到了同样的情况,这次我会在这里记录我的解决方案。也许能帮到别人,或者至少能帮到我未来的自己。

首先回答 OP,使用 OSSEC 本身控制 diff 生成的主要且唯一方法是文件中元素report_changes上的参数。例如:<directories>ossec.conf

<directories report_changes="yes" realtime="yes" check_all="yes">/etc,/usr/bin,/usr/sbin</directories>
<directories report_changes="yes" realtime="yes" check_all="yes">/bin,/sbin,/boot</directories>

report_changes参数告诉 ossec 为该目录中的每个文件创建一个 diff。每次更改文件时都会创建该 diff。因此,您可以想象为什么 diff 目录随着时间​​的推移会变得很大。

不幸的是,没有其他方法可以通过 ossec 本身来控制。您可以自行清理 diff 文件夹,或者禁用对过大的文件夹的报告。

我选择了第一个选项:自己清理 diff 文件夹。为此,我创建了一个简单的 bash 脚本,并用每日 cron 运行。它如下所示:

DIFFPATH=/var/ossec/queue/diff/local
KEEP_DAYS=365

# find all files which name starts with 'state' or 'diff', not modified in last 365 days
for $file in $(find $DIFFPATH -type f -name '[state|diff]*' -mtime +$KEEP_DAYS)
do
    rm $file
done

请注意,这不会删除目录,也不会删除最后一个条目文件。只会删除文件diff.1583679666state.1583679666文件。因此,即使版本非常旧,您仍将保留最新版本。

相关内容