搭建集中式系统日志服务器系统指南,8搭建日志管理服务器

早在1997年本人担任Linux管理员时,搭建集中式系统日志服务器是最先要完成的真正的系统管理任务之一。我当时的上司想获取来自众多硬件设备的日志文件,要求我使用正则表达式regexp),搜索日志文件寻找某些关键词。当年Linux还处于初期阶段,而我在空闲时一直在捣鼓Linux。于是,我不失时机地把Linux引入到了当时效力的那家公司。Linux行不行?当然行!本文要介绍的不仅仅是如何搭建集中式syslog-ng下一代系统日志工具)服务器,还要介绍为什么你要着手搭建这样一台服务器。

银河国际手机版最新,公司最近不断地增加服务器,但大量的日志查看起来又非常不方便,通过一些专用的日志查看工具(multitail、System
Log
Viewer、swatch等)是方便不少,但一台一台的查看也很烦啊。针对这一点,我们现在就来把多个主机的系统日志集中收集到一个主机上来管理,即Linux上的中央系统日志服务器。一般意义上的日志服务器是指,S/C模式下用于专门存放系统日志或者程序日志的服务器。

那么,系统日志是什么东西?系统日志在Linux中用于将系统消息记入日志。下一代系统日志工具在1998年开发而成,只是对早期的系统日志工具作了改写。截至2010年,下一代系统日志工具仍由BalaBit
IT
Security公司在积极开发,拥有的功能特性要多得多,其中包括更好的TCP处理、对消息采取TLS加密以及将消息发送到数据库等等。一些Linux发行版允许你安装系统日志工具、rsyslog或者下一代系统日志工具。本文重点介绍下一代系统日志工具,因为这个工具更新颖;如果读者愿意,可以在之后选择拥有下一代系统日志工具软件的公司的企业版,以获得“支持”。

之前也有用过cacti的syslog插件来监控服务器的日志,但cacti主要是用来监控系统状态和服务的,大量的日志不断地传送到cacti服务器上,一旦弄不好cacti服务器就挂掉了,所以最好的办法就是将日志监控和cacti分开,这样就不会影响到cacti的正常监控了。

刚才简要介绍了下一代系统日志工具,接下来谈谈你为何要用集中式下一代系统日志工具服务器。我就说说两个主要的理由。第一个是出于安全目的。如果你的路由器、防火墙、交换机、Linux服务器及/或其他硬件指向一台安全可靠的集中式下一代系统日志工具服务器,要是有人的确企图攻击上述的其中一个设备,可以把日志文件安全地存放到让人放心的异地位置。如果系统日志文件存放在设备上,这无异于让攻击者能够抹掉痕迹。诚然,攻击者能够禁用将日志文件发送到外部下一代系统日志工具服务器的功能,但是在此之前的所有连接都将位于集中式系统日志服务器上。另一个理由是为了方便起见。比如说,如果你有一台服务器崩溃了,毫无反应,你就可以检查集中式系统日志服务器上的内核错误日志。如果你想检查在一段较长时间内不同日期之间的系统日志模式,只要使用正则表达式,搜索来自集中式系统日志服务器的日志文件。

一、Linux系统日志简介

那么,我平时怎么做的呢?实际上,这两种方法我在家里都用。我的设备和服务器不但把它们的所有系统日志文件转发到某个集中式位置,而且这个位置严加保护起来。所说的那台机器是一个虚拟机,只有1个端口开着系统日志端口),只能从本地机器来访问,系统日志文件而放在外部驱动器上。这么做是不是过于小心谨慎?也许有点吧。但我的确知道,在我家这个环境中,如果外部驱动器装满了太多的系统日志文件,它不会导致虚拟机崩溃。要是虚拟机果真出现了什么岔子,主机操作系统也不会受到影响。如果有人果真可以访问我的其中一个设备,他也没有办法访问我的系统日志服务器。没错,要是我的主机操作系统遇到了什么问题,那么访客虚拟机就会有问题;但是我们总是无法做到事事都能防备。我得承认,这么做太过小心谨慎了;对大多数人来说,这么做可能有些过了。

在Linux系统中,服务器会产生大量的日志,根据一般的日志的分类,可以把日志分为以下三种:

开始入手之前,有必要先声明一下。首先,与我之前写的所有文章一样,这里的所有测试是用Debian来完成的。本文中,我针对Debian
6.0.1设置了虚拟机,因而你的情况可能不一样。另外,我不会深入探讨如何合理保护你的服务器、把系统日志文件放在哪里最合适,或者如何设置除下一代系统日志工具之外的一切。本文就介绍集中式下一代系统日志工具服务器的基本方面。

连接时间日志–由多个程序执行,把纪录写入到/var/log/wtmp和/var/run/utmp,login等程序更新wtmp和utmp文件,使系统管理员能够跟踪谁在何时登录到系统。

进程统计–由系统内核执行。当一个进程终止时,为每个进程往进程统计文件(pacct或acct)中写一个纪录。进程统计的目的是为系统中的基本服务提供命令使用统计。

错误日志–由syslogd(8)执行。各种系统守护进程、用户程序和内核通过syslog(3)向文件/var/log/messages报告值得注意的事件。另外有许多UNIX程序创建日志。像HTTP和FTP这样提供网络服务的服务器也保持详细的日志。

日志对于安全来说,非常重要,他记录了系统每天发生的各种各样的事情,你可以通过它来检查错误发生的原因,或者受到攻击时攻击者留下的痕迹。日志主要的功能有:审计和监测。他还可以实时的监测系统状态,监测和追踪侵入者等等。

既然日志那么重要,所以保存日志也就显的格外重要,这就要回到我们本文的开头,日志服务器,单纯的讲,系统只会把日志存放在本地,但是当一个系统工程师管理十台甚至上百台的服务器时,如果他需要查看日志,那么他就需要一台一台服务器的登录查看,这样显然是效率最低下的,所以,我们把所有的服务器的日志都发送到一台服务器上去,那么就可以节省很多不必要的登录和重复操作。

二、下一代系统日志工具syslog-ng介绍

Syslog是Linux系统默认的日志守护进程,默认的syslog配置文件是/etc/syslog.conf文件。syslog守护进程是可配置的,它允许人们为每一种类型的系统信息精确地指定一个存放地点。

比较 syslog ,syslog-ng
具有众多高级的功能:更好的网络支持,更加方便的配置,集中式的网络日志存储,并且更具有弹性。比如,使用syslogd时,所有的iptables日志与其他内核日志一起全部存储到了kern.log文件里。Syslog-ng则可以让你有选择性的将iptables部分分出到另外的日志文件中。Syslogd仅能使用UDP协议,Syslog-ng
可以使用UDP和TCP协议。所以你可以在加密的网络隧道中传输日志到集中日志服务器。

syslog-ng的一个设计原则就是建立更好的消息过滤粒度,syslog-ng能够进行基于内容和优先权/facility的过滤。另一个设计原则是更容易进行不同防火墙网段的信息转发,它支持主机链,即使日志消息经过了许多计算机的转发,也可以找出原发主机地址和整个转发链。最后的一个设计原则就是尽量使配置文件强大和简洁。

Syslog-ng
的详细介绍
:请点这里
Syslog-ng
的下载地址
:请点这里

相关阅读

关于Linux中 Syslog-ng 如何在转发时修改其facility以及level
http://www.linuxidc.com/Linux/2012-02/53941.htm

RHEL5 下使用Syslog-ng构建集中型日志服务器
http://www.linuxidc.com/Linux/2010-03/25170.htm

银河国际手机版最新 1

发表评论

电子邮件地址不会被公开。 必填项已用*标注