明智的日志政策和工具

什么是明智的日志策略?

一方面我想永远保持一切。 另一方面,我不想浪费时间在pipe理任务上,并且必须避免磁盘在生产服务器上满载。

什么是明智的日志策略? 有什么工具(免费或不是)来帮助你实施这项政策。

你在旋转你的日志吗? 这可能是你最好的行动计划。 使用logrotate可以很容易地保存旧的日志,如果需要的话可以压缩它们,并且只要你想保留它们。

     “/export/log/non-local/mail.log”{
      日常
      旋转7
       missingok
       postrotate
          /etc/init.d/syslog-ng reload> / dev / null
       endscript
      压缩
       notifempty 
     }

     “/ export / log / non-local / lab-submit”{
        旋转5
        每月一次
         postrotate
          /etc/init.d/syslog-ng reload> / dev / null
         endscript
         notifempty
     } 

这是我的一个logrotate文件的片段。 第一节每天旋转邮件日志,保留七天的旧版本。 “missingok”表示如果文件不在预期的位置,它将忽略该文件。 冲动。 。 。 endscript部分包含将在文件旋转后运行的命令。 压缩是不言而喻的,默认是gzip。 你可以使用类似的东西来改变压缩

  compresscmd / usr / bin / bzip2
   压缩文件.bz2 

实验室提交日志每月轮换一次,保存5个月。

我希望这有帮助。 我假设(显然),你目前没有旋转你的日志,你正在运行某种types的Linux,并且你会想使用logrotate,这取决于你可能不想使用logrotate的发行版和日志types。 如果我的任何假设是不正确的,让我知道,我会尝试修改我的答案。

我的一般行为,取决于我可以轻松维护日志信息的磁盘数量,同时处理一度偶发的灾难性debugging事件,这可能会导致磁盘空间使用量急剧增加。

远程日志logging总是由于以下原因:

  • 你永远不知道什么时候机器会爆炸,
  • 当它的时候,你需要尽快知道为什么
  • 访问中央日志服务器可能比重新启动所述服务器到单用户模式更快)

在中央服务器上,只要您认为有必要(或被要求)就保留日志。 我通常在6到12个月内持有[压缩]日志趋势,但1到2个月可能适用于您。

本地日志logging和旋转:

  • 每小时旋转一次,在磁盘上保持四小时
    • (或者如果您有足够的空间和I / O空间:每周一次,磁盘上最多七天)
  • 每两小时压缩一次
    • (压缩你的压缩任务,不要干扰更重要的任务)

本地日志logging可以保持您的身份,以防在某些时候丢失networking连接。

对于某些事情,我想坚持很长一段时间的日志 – 例如我的Apache日志历史的兴趣。 但是即使在那里,我每天和/或每周都会有一个cron工作,对独一无二的访问者进行简单的分析,这些访问者被邮寄到我为此build立的gmail账户。

但是,我的一般做法是,我不希望或不需要这些日志中的大部分数据。

我已经知道,在做任何绘图或历史分析时,我都不会去“解决问题”,坦率地说,我忙于做“真正的”工作:)

如果您运行的是syslog收集器,则可能需要更长时间地保留这些日志 – 仅仅是因为它们正在从所收集的多个服务器中获取所有内容。

上一次我有一个syslog服务器设置,我们有一对旧的DL180与18GB的硬盘运行Ubuntu。 两者都通过nfs( <othersys>/path/to/log @ <currentsys>/path/to/backup )交叉挂载。

我们每天轮换我们的日志,通过bzip2压缩。 当驱动器空间达到90%以上时,我们会丢弃最旧的文件。

之前已经提到* ,但是您也可能想要调查诸如epylog或Splunk之类的日志分析器作为日志策略的组件。

什么是明智的日志策略?

那么,在现实世界中,缺乏资金和时间往往会阻碍; 但这里是主要的关注恕我直言:

a)将日志收集到中央存储库中。 收集日志在一个安全的位置,以

  • 避免被黑客入侵
  • 在日常工作中给你全部的照片,即能够跟踪多台机器上的事件。

b)使用实时search和过滤来在需要时切片和切块logging数据。

  • logging几乎所有的东西 – 可能并不是每个到达外部防火墙的坏包,但肯定是来自服务器的所有重要事件,也许是来自工作站PC的事件等等。
  • 在中央日志存储库上使用search和过滤,以便在需要时从所有这些数据中提取含义。

c)设置警报。 为您的系统设置有意义的警报。 这与其他系统如Munin或Nagios有很大的重叠; 他们可以做几乎相同的。 你更想提醒你哪个系统是一个意见和具体情况的问题。

  • 一定要尽可能从中提取更多的价值,即花时间为常见问题设置警报。 这将有助于您在系统pipe理方面更积极主动。

d)保持一切至less90天。 如果需要,您可以在超过90天后丢弃不太重要的数据,但您可能不需要。 例如,如果您将MySQL与Archive存储引擎一起使用以获取历史数据,那么您可以便宜地存储大量数据,但大多数情况下只读且索引较差。 将数据分为“热”和“近线”可能效果不错。

良好和便宜的系统,使上述? 我还在寻找 这些解决scheme似乎分为两个恕我直言:1)基于数据库和一些脚本的开源/廉价系统,2)大型企业'我们帮助你与监pipe合规系统是昂贵的。 对我来说,这两者似乎都不对。