什么是明智的日志策略?
一方面我想永远保持一切。 另一方面,我不想浪费时间在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和旋转:
本地日志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数据。
c)设置警报。 为您的系统设置有意义的警报。 这与其他系统如Munin或Nagios有很大的重叠; 他们可以做几乎相同的。 你更想提醒你哪个系统是一个意见和具体情况的问题。
d)保持一切至less90天。 如果需要,您可以在超过90天后丢弃不太重要的数据,但您可能不需要。 例如,如果您将MySQL与Archive存储引擎一起使用以获取历史数据,那么您可以便宜地存储大量数据,但大多数情况下只读且索引较差。 将数据分为“热”和“近线”可能效果不错。
良好和便宜的系统,使上述? 我还在寻找 这些解决scheme似乎分为两个恕我直言:1)基于数据库和一些脚本的开源/廉价系统,2)大型企业'我们帮助你与监pipe合规系统是昂贵的。 对我来说,这两者似乎都不对。