运行我自己的基于Linux的服务器时应该注意什么?

我目前手持数据中心技术人员关于运行我的服务器,但我正在考虑分支,我想知道我需要知道什么。

有些事情我明白,我应该知道,但不知道我应该怎么意识到他们:

  • 检查日志文件,特别是安全日志
  • 保持我的系统软件,特别是内核(和其他?)最新

我基本上想知道你认为每个服务器运营商应该知道你最喜欢的小提示是什么,但是如果不是大多数,那么许多服务器运营商不应该知道。

我最喜欢的两件容易忽略的事情就是:

  • 时间。 一个坏的时钟可以给你很多问题。 这对虚拟机来说尤其有问题
  • 完整的磁盘。 这可以从奇怪的问题引起不能login。

保持你的系统补丁应该很容易。 我build议你使用长期支持的“稳定”发行版(也就是说,除了安全补丁和主要错误修复之外,你不会获得软件更新)。 这意味着他们的软件包pipe理员“更新全部”操作可能会很顺利和容易。 您还应该订阅发行版安全邮件列表并评估所有关于已安装软件的消息。

您还应该审查所有进入框的方法,确保没有不必要的networking访问应用程序运行,并确保必要的networking访问应用程序得到妥善保护(即根据需要使用encryption和强authentication)。

观看日志文件有些被高估了,但是你可能会发现可以简化这个的软件包。 例如,Redhat Enterprise(和CentOS)默认安装logwatch,通过日志文件的电子邮件向您发送每日报告。

而且,对于需要全天候提供服务的系统,您应该设置监控,并在必要时设置故障转移措施。

另外,备份!

logging一切,将文档备份到多个地方。

logging一切可以让你立即忘记。 你可以随时查找,当你需要它。

就我个人而言,当我们不需要永久承担静态数据的负担时,我发现自己的思维更加敏锐。

设置在/etc/mail/aliases

 # Person who should get root's mail #root: user 

user更改为自己或您的电子邮件地址。 现在,您将获得任何足以发送电子邮件通知的系统通知。

检查你的硬件。 并在服务器运行时检查硬件。 大多数Linux崩溃实际上是由硬件造成的。

对于每个硬盘,使用smartmontools来检查它的SMART状态。 使用磁盘之前,请进行长时间的自我testing(大约需要1到2个小时):

 # This command starts the test smartctl --test=long /dev/sda # This one to show the test status watch -n 120 smartctl --log=selftest /dev/sda 

另外,保持smartd守护进程运行并注意日志。

使用冗余磁盘。 不要只信任一个硬盘。 并不是所有的错误都可以被SMART捕获,我从我自己的经验中这样说。

同时安装mcelog并持续观看/var/log/mcelog 。 此工具logging机器检查exception ,这是CPU捕获的exception。 一个正常的,健康的体系不应该引发MCEs。 因此,如果您看到任何MCElogging,就会出现错误(可能是过热)。

请记住:硬件迟早会失败。

在决定分支之前,你应该确保你有足够的知识。 你有吗?

检查您的RAID卷的健康状况。 例如,AMCC / 3Ware提供了实用程序tw_cli

干杯

首先,设置logwatch和apticron之类的东西,通过日志文件报告给你发邮件,以及包列表过期。 login每当apticron发送电子邮件给你,apt-get update && apt-getupgrade(我假设一个debian衍生产品,其他linux可能有apt-cron的等价物)。 如果你知道你将从哪里连接,你应该从其他地方阻止ssh到那个IP。 如果不是的话,那么安装fail2ban之类的东西应该会停止暴力攻击。