flybywire Asked: 2009-07-24 04:12:09 +0800 CST2009-07-24 04:12:09 +0800 CST 2009-07-24 04:12:09 +0800 CST 明智的日志政策和工具 772 什么是明智的日志政策? 一方面,我想永远保留一切。另一方面,我不想在管理任务上浪费时间,并且必须避免磁盘在生产服务器中变满。 什么是明智的日志政策?有哪些工具(免费或非免费)可以帮助您实施政策。 log-files 4 个回答 Voted thepocketwade 2009-07-24T04:16:49+08:002009-07-24T04:16:49+08:00 你在轮换你的日志吗?这可能是你最好的行动计划。使用 logrotate 可以很容易地保存旧日志,如果需要,可以压缩它们,并可以将它们保留多久。 "/export/log/non-local/mail.log" { 日常的 旋转 7 失踪的 后旋转 /etc/init.d/syslog-ng 重新加载 >/dev/null 尾注 压缩 通知空 } “/export/log/non-local/lab-submit”{ 旋转 5 每月 后旋转 /etc/init.d/syslog-ng 重新加载 >/dev/null 尾注 通知空 } 这是我的一个 logrotate 文件的片段。第一节每天轮换邮件日志,将旧副本保留 7 天。“missingok”意味着如果文件不在应有的位置,它将忽略该文件。后旋转。. . endscript 部分包含将在文件旋转后运行的命令。压缩是不言自明的,默认是 gzip。您可以使用类似的东西更改压缩 compresscmd /usr/bin/bzip2 压缩文件.bz2 实验室提交日志每月轮换一次,保存 5 个月。 我希望这有帮助。我假设(显然)您当前没有轮换日志,您正在运行某种 linux,并且您希望使用 logrotate,具体取决于您的发行版和您可能不想使用 logrotate 的日志类型. 如果我的任何假设不正确,请告诉我,我会尝试修改我的答案。 oo. 2009-07-24T05:57:12+08:002009-07-24T05:57:12+08:00 我的一般行动方案取决于我可以轻松地为日志信息维护的磁盘数量,同时处理可能导致磁盘空间使用量急剧增加的偶尔一次的灾难性调试事件。 由于以下原因,始终进行远程日志记录: 你永远不知道机器什么时候会爆炸, 当它发生时,您需要尽快知道原因 访问中央日志服务器可能比将所述服务器重新启动到单用户模式更快) 在中央服务器上,只要您认为有必要(或被要求),就保留日志。我通常会保留 6 到 12 个月之间的 [压缩] 日志以进行趋势分析,但 1 或 2 个月对你来说可能没问题。 本地日志记录和轮换: 每小时旋转一次,在磁盘上最多保留四个小时 (或者如果您有空闲空间和 I/O 空间:每周一次,磁盘上最多 7 天) 每两小时压缩一次 (减少你的压缩任务,以免干扰更重要的任务) 本地日志记录可以让您在某些时候失去网络连接的情况下为您提供保障。 warren 2009-09-26T02:33:36+08:002009-09-26T02:33:36+08:00 对于某些事情,我想长时间保留日志 - 例如我的 apache 日志以获取历史兴趣。但即使在那里,我cron每天和/或每周都有一份工作来对独特的访问者进行简单的分析,这些访问者被邮寄到我为这类事情而建立的 gmail 帐户。 但是,我的一般方法是我不希望或不需要这些日志中的大部分数据超过几天。 我已经知道,在进行任何图形或历史分析时,我永远不会“逃避学费”,因为坦率地说,我太忙于做“真正的”工作了 :) 如果您正在运行syslog收集器,则可能需要更长时间地保留这些日志 - 只是因为它们正在从您收集的许多服务器中获取所有内容。 上次我syslog设置服务器时,我们有一对带有 18GB 硬盘的旧 DL180,运行 Ubuntu。<othersys>/path/to/log @ <currentsys>/path/to/backup两者都通过 nfs ( )交叉安装了另一个。 我们每天轮换我们的日志,通过bzip2. 当驱动器空间达到 >90% 已用时,我们将删除最旧的文件。 *之前已经提到过,但您可能还想研究一个日志分析器,例如epylog或Splunk,作为日志策略的一个组件。 user2874 2009-11-01T05:02:08+08:002009-11-01T05:02:08+08:00 什么是明智的日志政策? 好吧,在现实世界中,缺乏金钱和时间往往会成为阻碍。但这是恕我直言的主要问题: a) 在中央存储库中收集日志。在一个安全的位置收集日志,以 如果您被黑客入侵,请避免它们被篡改 为您提供日常工作的全貌,即能够跨多台机器跟踪事件。 b) 在需要时使用实时搜索和过滤对日志数据进行切片和切块。 记录几乎所有内容——可能不是到达外部防火墙的每个坏数据包,但肯定是来自服务器的每个重要事件,也可能是来自工作站 PC 的事件,等等。 在需要时使用中央日志存储库上的搜索和过滤从所有这些数据中提取意义。 c) 设置警报。为您的系统设置有意义的警报。这与Munin或 Nagios等其他系统有很多重叠。他们几乎可以做同样的事情。您更愿意使用哪个系统来提醒您,这将取决于您的意见和具体情况。 一定要尽可能多地从中提取价值,即花时间为常见问题设置警报。这将帮助您更积极地进行系统管理。 d) 将所有物品保存至少 90 天。如果需要,您可以在 90 天后丢弃不太重要的数据,但您可能不需要。例如,如果您将 MySQL 与Archive 存储引擎一起用于历史数据,那么您可以廉价地存储大量数据,但大多是只读的并且索引很差。将数据划分为“热”和“近线”可能效果很好。 可以实现上述功能的好又便宜的系统?我还在寻找。恕我直言,这些解决方案似乎分为两个:1)基于数据库和一些脚本的开源/廉价系统,以及 2)昂贵的大型企业“我们帮助您遵守监管合规”系统。两者似乎都不适合我。
你在轮换你的日志吗?这可能是你最好的行动计划。使用 logrotate 可以很容易地保存旧日志,如果需要,可以压缩它们,并可以将它们保留多久。
这是我的一个 logrotate 文件的片段。第一节每天轮换邮件日志,将旧副本保留 7 天。“missingok”意味着如果文件不在应有的位置,它将忽略该文件。后旋转。. . endscript 部分包含将在文件旋转后运行的命令。压缩是不言自明的,默认是 gzip。您可以使用类似的东西更改压缩
实验室提交日志每月轮换一次,保存 5 个月。
我希望这有帮助。我假设(显然)您当前没有轮换日志,您正在运行某种 linux,并且您希望使用 logrotate,具体取决于您的发行版和您可能不想使用 logrotate 的日志类型. 如果我的任何假设不正确,请告诉我,我会尝试修改我的答案。
我的一般行动方案取决于我可以轻松地为日志信息维护的磁盘数量,同时处理可能导致磁盘空间使用量急剧增加的偶尔一次的灾难性调试事件。
由于以下原因,始终进行远程日志记录:
在中央服务器上,只要您认为有必要(或被要求),就保留日志。我通常会保留 6 到 12 个月之间的 [压缩] 日志以进行趋势分析,但 1 或 2 个月对你来说可能没问题。
本地日志记录和轮换:
本地日志记录可以让您在某些时候失去网络连接的情况下为您提供保障。
对于某些事情,我想长时间保留日志 - 例如我的 apache 日志以获取历史兴趣。但即使在那里,我
cron
每天和/或每周都有一份工作来对独特的访问者进行简单的分析,这些访问者被邮寄到我为这类事情而建立的 gmail 帐户。但是,我的一般方法是我不希望或不需要这些日志中的大部分数据超过几天。
我已经知道,在进行任何图形或历史分析时,我永远不会“逃避学费”,因为坦率地说,我太忙于做“真正的”工作了 :)
如果您正在运行
syslog
收集器,则可能需要更长时间地保留这些日志 - 只是因为它们正在从您收集的许多服务器中获取所有内容。上次我
syslog
设置服务器时,我们有一对带有 18GB 硬盘的旧 DL180,运行 Ubuntu。<othersys>/path/to/log @ <currentsys>/path/to/backup
两者都通过 nfs ( )交叉安装了另一个。我们每天轮换我们的日志,通过
bzip2
. 当驱动器空间达到 >90% 已用时,我们将删除最旧的文件。*之前已经提到过,但您可能还想研究一个日志分析器,例如epylog或Splunk,作为日志策略的一个组件。
好吧,在现实世界中,缺乏金钱和时间往往会成为阻碍。但这是恕我直言的主要问题:
a) 在中央存储库中收集日志。在一个安全的位置收集日志,以
b) 在需要时使用实时搜索和过滤对日志数据进行切片和切块。
c) 设置警报。为您的系统设置有意义的警报。这与Munin或 Nagios等其他系统有很多重叠。他们几乎可以做同样的事情。您更愿意使用哪个系统来提醒您,这将取决于您的意见和具体情况。
d) 将所有物品保存至少 90 天。如果需要,您可以在 90 天后丢弃不太重要的数据,但您可能不需要。例如,如果您将 MySQL 与Archive 存储引擎一起用于历史数据,那么您可以廉价地存储大量数据,但大多是只读的并且索引很差。将数据划分为“热”和“近线”可能效果很好。
可以实现上述功能的好又便宜的系统?我还在寻找。恕我直言,这些解决方案似乎分为两个:1)基于数据库和一些脚本的开源/廉价系统,以及 2)昂贵的大型企业“我们帮助您遵守监管合规”系统。两者似乎都不适合我。