什么是合理的日志政策?
一方面,我希望永久保存所有内容。另一方面,我不想在管理任务上浪费时间,并且必须避免生产服务器的磁盘被占满。
什么是合理的日志政策?有哪些工具(免费或收费)可以帮助您实施该政策。
答案1
您是否正在轮换日志?这可能是您最好的行动计划。使用 logrotate 可以轻松保存旧日志,如果需要,可以压缩它们,并根据需要保留它们。
“/export/log/non-local/mail.log”{ 日常的 旋转 7 missok 后旋转 /etc/init.d/syslog-ng 重新加载>/dev/null 结束语 压缩 通知为空 } “/export/log/non-local/lab-submit”{ 旋转 5 每月 后旋转 /etc/init.d/syslog-ng 重新加载>/dev/null 结束语 通知为空 }
这是我的 logrotate 文件之一的片段。第一节每天轮换邮件日志,保留旧副本七天。“missingok”表示如果文件不在它应该在的位置,它将忽略它。postrotate . . . endscript 部分包含在文件轮换后将运行的命令。压缩是不言自明的,默认为 gzip。您可以使用类似
压缩命令 /usr/bin/bzip2 压缩文本.bz2
实验室提交日志每月轮换一次,保存 5 个月。
我希望这能有所帮助。我假设(显然)您当前没有轮换日志,您正在运行某种 Linux,并且您想要使用 logrotate,根据您的发行版和日志类型,您可能不想使用 logrotate。如果我的任何假设不正确,请告诉我,我会尝试修改我的答案。
答案2
我的一般行动取决于我可以轻松维护用于日志信息的磁盘数量,同时处理可能导致磁盘空间使用量急剧增加的偶尔发生的灾难性调试事件。
始终进行远程日志记录,原因如下:
- 你永远不知道机器什么时候会爆炸,
- 当这种情况发生时,你需要尽快知道原因
- 访问中央日志服务器可能比重新启动该服务器到单用户模式更快)
在中央服务器上,只要您认为有必要(或被要求)保留日志,就可以保留多长时间。我通常会保留 6 到 12 个月的 [压缩] 日志以进行趋势分析,但 1 或 2 个月可能对您来说就足够了。
本地记录和轮换:
- 每小时旋转一次,在磁盘上保留最多四个小时的时间
- (或者如果您有空闲空间和 I/O 余量:每周一次,磁盘上最多七天)
- 每两小时压缩一次
- (降低压缩任务以避免干扰更重要的任务)
如果您在某个时候丢失网络连接,本地日志记录将为您提供保障。
答案3
对于某些事情,我希望长期保留日志 - 例如出于历史兴趣保留我的 Apache 日志。但即便如此,我cron
每天和/或每周都会运行一项工作,对唯一访问者进行简单分析,并将结果发送到我为此专门建立的 Gmail 帐户。
然而,我的一般做法是,我不想也不需要最多这些日志中的数据可以追溯到几天前。
我已经知道,在进行任何图形或历史分析时,我永远不会“绕过 tuit”,因为坦率地说,我太忙于做我的“真正”工作了:)
如果您正在运行syslog
收集器,则可能需要保留这些日志更长时间 - 因为它们会从您收集的许多服务器中抓取所有内容。
上次我设置syslog
服务器时,我们有一对旧的 DL180,配有 18GB 硬盘,运行 Ubuntu。两者都通过 nfs ( <othersys>/path/to/log @ <currentsys>/path/to/backup
) 交叉安装。
我们每天轮换我们的日志,并通过压缩bzip2
。当驱动器空间使用率达到 90% 以上时,我们会删除最旧的文件。
答案4
什么是合理的日志政策?
好吧,在现实世界中,缺乏金钱和时间往往会成为阻碍;但在我看来,主要问题如下:
a) 在中央存储库收集日志。将日志收集到一个安全的位置,
- 如果遭到黑客攻击,避免被篡改
- 让您了解日常工作中的全貌,即能够跟踪多台机器上的事件。
b) 在需要时使用实时搜索和过滤来切分日志数据。
- 记录几乎所有内容 —— 可能不是到达外部防火墙的每个坏数据包,但肯定是来自服务器的每个重要事件,也可能是来自工作站 PC 的事件,等等。
- 在需要时,使用中央日志存储库上的搜索和过滤功能从所有这些数据中提取含义。
c) 设置警报。为你的系统设置有意义的警报。这与其他系统有很多重叠之处,例如穆宁或 Nagios;它们可以做几乎相同的事情。您更喜欢使用哪个系统来提醒您,这取决于您的看法和具体情况。
- 一定要尽可能地从中获取价值,例如花时间为常见问题设置警报。这将帮助您在系统管理中更加积极主动。
d) 保留所有资料至少 90 天。如果需要,您可以在 90 天后丢弃不太重要的数据,但您可能不需要这样做。例如,如果您使用 MySQL归档存储引擎对于历史数据,你可以存储大的可以廉价地存储大量数据,但大多数数据都是只读的,索引性较差。将数据分为“热”和“近线”可能会效果很好。
有能实现上述目标的优质廉价系统吗?我还在寻找。在我看来,解决方案似乎分为两类:1) 基于数据库和一些脚本的开源/廉价系统,以及 2) 大型企业“我们帮助您遵守法规”的系统,但价格昂贵。这两种系统似乎都不适合我。