1.3 看看接下来的事情
下面我们来简单看看你将会在本书的剩余部分遇到什么样的事情。由于必须要有日志信息,你才能从中获取到有用的信息,因此我们将关注生成日志信息的一些事情,以及如何让它们提供给你所需的东西。我们将会向你展示如何构建一个收集、归档和分析日志数据的基础设施。在这个过程中,我们会提供真实的例子和案例研究。
我们将会详细讨论Unix和syslog数据,因为很多应用程序默认使用syslog,很多其他的应用程序也对其兼容(例如大部分Cisco和Juniper的设备都使用syslog)。并且,syslog是唯一具备向集中收集系统转发日志消息的内建机制的跨平台日志记录工具。但是,我们也会讨论在你的系统中可能使用的其他形式的日志。我们也肯定会谈到Windows的日志记录,主要是关于将你的windows日志数据放入集中化基础设施的内容。
如果你是程序员,我们专门为你准备了一整章。坦率地说,分析日志消息最大的一个问题就是大部分日志的质量低下,没有包含任何可用于有用操作的信息。如果从一开始就提高日志质量,它的使用就会简单得多。我们来看看下面这条日志消息的例子:
这条消息有什么问题吗?它很能说明问题,不是么?它告诉我们有一个向远程登录服务的连接被拒绝了。除了没有年份、没有时区这些令人烦恼的事情之外,如果它能告诉我们从哪里发出的连接被拒绝,会不会更好一点?如果告诉我们连接被拒绝的原因会不会更好一点?如果你只是在诊断和测试,那么这条日志消息并不是那么糟。但是如果你正在为某些人攻击了你的系统而查看日志,知道攻击从哪里发起显然会更有用。
现在来考虑下面这条日志消息:
是不是好了很多?
下面是一条实际上没什么用处的消息(这可不是我们编造出来的):
也许它对内核开发者的确有某些意义,但在其他方面没有什么帮助,它就跟下面的日志一样:
在我们为程序员准备的章节中,并不是仅仅抱怨这些糟糕的日志消息,而是对如何提高应用程序生成的日志质量提供很多有用的建议。