如何收集Domino服务器日志

如何收集Domino服务器日志,第1张

如何收集Domino服务器日志
在论坛已久,发现用户提交问题,太过于简单,很多就是说明现象,不太便于分析和理解。
来论坛发帖大部分都是Domino管理员和开发者,希望更加细致和专业,同时提高自己分析能力。
以下来自ibm的邮件或者帮助:
1 当Windows平台上服务器挂起(非>

本文以数据库的基本原理为基础,分析了EXCHANGE SERVER的存储系统,并说明了各部分的作用。

一、IS服务和ESE的层次关系

IS服务是EXCHANGE服务器中重要的服务之一,它控制着对邮箱和PF的存储 *** 作请求,EXCHANGE服务器的存储实际上是由ESE的数据库引擎来管理的。这个ESE引擎是微软专门为保存非关系型数据而开发的,目前在微软的很多产品中都有广泛的应用,如:AD数据库、DHCP、WINS、SRS等等。

EXCHANGE的数据库是由EDB文件、STM文件和LOG文件组成。在这些文件里,微软使用了“B+树”的内部数据结构。ESE的引擎的任务之一,就是当IS服务请求访问数据库的时候,把这些请求转化为对内部数据结构的读写访问。B+树的特点是能够对存储在硬盘上的数据提供快速访问能力。微软利用“B+树”作为ESE的后台结构的主要原因,就是尽可能的提高访问数据时I/O性能。当然,这些结构对于EXCHANGE STORE来说是透明的。

另外,作为一个数据库系统,ESE有责任提供事务级别的 *** 作的支持,并维护数据库的完整性和一致性。对数据库系统而言,我们提到事务时,一般用ACID来描述事务的特点。

A--Atomic(原子的):事务必须是全或全无的 *** 作,要么全部成功更新,要么全部不被更新

C--Consistent(一致的):一个成功提交的事务必须使数据库处于一个一致的状态。

I--Isolated(孤立的):所有未提交的更改都必须能够和其他事务孤立。

D--Durable(持久的):当事务一旦提交,所做的更改必须存储到稳定的介质上,防止系统失败导致的数据库不一致。(此点非常重要!!)

二、EXCHANGE 2000/2003存储系统的新特点

在EX55中,ESE的版本为ESE97,而在EX2000/2003里,ESE版本已经升级ESE98了。ESE引起在以下方面得到了改进:

I/O性能进一步提高和优化

对日志文件增加了计算校验 *** 作

提高了ESEUTIL等工具的维护速度

而IS也在以下方面有了更新:

在每个SERVER上提供多个SG支持

数据库STM文件格式的引入,提高了INTERNET邮件的性能

WSS的引入,用户可以使用多种协议访问数据库

三、EDB和STM的关系

常有人问,EDB文件是数据库,那STM文件是做什么用的?可以删除吗?

在EX55里,只有EDB文件,因为在EX55发布时,微软主推的是内部邮件系统,因此其主要协议为MAPI,这是微软的私有邮件西医,EDB文件是专门为此协议优化过的。因此在EX55中,为了支持INTERNET邮件,必须在每次处理INTERNET邮件时,做一个格式转换。这显然带来了性能的损失。

在EX2000里,微软加大了对INTERNET邮件的支持,这就是STM文件的来源。MAPI格式是RPC和二进制标准的,而STM是纯文本加上一些MIME编码格式,这样的区别使得它们不可能存储在同一数据库里。因此EX2000中,微软开始使用EDB和STM两个文件来分别保存两种格式的邮件。并且在两个文件之间建立了引用和关联。对于用户来说,它的邮箱实际上是跨越了EDB和STM文件共同组成的。另外,需要注意的是,EDB文件中还保留着用户的邮箱结构。所以EDB文件更加重要。那么EDB和STM是怎么协同工作的呢?我们以几个情景来分析之。

情景一:用户使用OUTLOOK(MAPI)发送接收邮件

在该情景下,用户将邮件通过MAPI协议提交给数据库,直接被保存EDB文件中。当用户通过MAPI访问邮箱里的邮件时,如果被访问的邮件在EDB里,直接返回,如果在STM里(如外来邮件),则执行转换,将STM转换为EDB文件格式,再返回用户。

情景二:用户使用标准SMTP/POP3/IMAP4等协议访问

用户使用非MAPI协议提交的邮件,内容保存在STM文件里,但是由于EDB里有邮箱结构,STM没有,因此系统会把邮件的重要信息提取出来,放在EDB里。当用户用MAPI提取邮件时,过程同上,当用户通过标准协议访问时,同样需要进行格式转换,转换为STM文件格式返回。 这些转换是在后台发生的。对用户来说是透明的。通过上面的描述,你会看到,这两个文件是紧密联系的缺一不可。所以,在任何时间我们都不要单独 *** 作这两个文件,它们是一个整体。同时也要注意的是,无论用户使用何方式访问邮箱,都需要向EDB文件请求邮箱结构信息,这是需要注意的。

四、LOG文件的重大作用

在论坛里经常会看到有人说我的硬盘怎么很快就没了,一看原来是日志文件搞的鬼,于是就有人删除日志文件,甚至使用循环日志来强制减少日志,甚至有人提出这样的疑问,日志到底有什么用?是不是多余的'?那我们来看看日志的重大作用。

对于一个SG来说,系统会产生一系列的日志,这些日志的扩展名为LOG,前缀一般是E00、E01……除了这些连续的日志文件外,还有一些特殊的日志文件(res1log,res2log,e0xchk))),它们又有什么用呢?我们的管理员通常不喜欢备份这一 *** 作,因此对这些日志是痛恨不已啊。那么微软在EXCHANGE数据库系统中引入日志的作用难道真的是多此一举吗?我们从以下几个方面来考察一下日志的作用:

1、作为一个企业级的邮件系统,必须要保证数据安全和完整。必须能够面对随时可能发生的意外灾难,把数据损失降低到最小。

2、必须提供高性能的邮件处理能力,对数据库中的邮件的事务 *** 作在完成后必须马上(或是说立即)被记录在存储介质上(见前面的事务持久性说明)

3、灾难发生后,使用数据库备份恢复必须要返回到灾难发生前一刻的数据库状态(这是至关重要的!!)

现在我们来更进一步的看一下,当用户要修改邮箱中的内容时,被修改的内容首先被提取出来放到内存中,实际的修改是发生在内存里的,这是众所周知的,当修改完成后,这些内容必须被尽快写回存储介质,这样才表示一个事务成功完成了。

从事务的描述中我们可以看到,事务是具有原子特性的,为了保证数据库的一致和完整,事务必须全部成功或全部失败,如果事务失败,则必须回滚到事务开始的状态。而当邮件在内存中修改完成后,此时事务并没有完成(为什么呢?)因为一旦系统崩溃,这些修改就丢失了。所以要确保事务修改完成,必须尽快将修改写回到数据库里去(也就是硬盘上)。这也是事务的持久性要求。注意,我们这里说的第一时间或是尽快,是一个什么样的概念。如果我们直接修改EDB文件,由于EDB

文件比较大,那么在硬盘上修改一个大文件,就 需要花费大量的时间在等待和寻找数据存储块上(见 *** 作系统原理),当系统出现高负载的繁忙状态时,这将是一个非常大的瓶颈。也就无法做到“尽快”了。那怎么办呢?所以数据库系统使用了日志,而日志通常很小(EXCHANGE的日志只有5MB),向这些文件写入修改结果是很快速的,因此当内存的修改完成后,这些结果就会立即写入日志中,以保证了事务的持久性。当成功写入日志后,该事务就成功完成了(现在在硬盘上了,不会因为当机丢失了)接下来,ESE引擎会在后台慢慢将这些日志里的修改记录写回真正的数据库里去(这对用户来说已经不是那么重要了),这就是日志的第一个作用:确保事务在第一时间(尽可能快的)保存到非易失存储器上(提供了事务持久性支持)。

根据上面的藐视,我们看到运行中的EXCHANGE数据库,是由三个部分组成的:

内存中已经完成处理还没有写会到日志里的内容(Dirt page)

还没有写到数据库文件里的日志内容

EDB和STM数据库文件

对于第一个部分,一旦掉电就回丢失的,是最不安全的。而对于第二部分的内容,系统通过检查点文件(CHK)来标记哪些日志已经被写入数据库了,而哪些还没有。CHK文件类似一个指针。我们可以用“ESEUTIL /MK”来检查CHK文件里的内容,在该命令的输出中的checkpoint:<0x8,26d1,29>这样的东西就是检查点位置,它表示E0x00008的日志的页面序号已经被成功写入数据库了。大家可以自己看看。。:)

前面提到过,EXCHANGE系统在出现灾难时,应能恢复到灾难发生前的时刻的状态。这是非常重要的。但即使是最勤快的管理员,也只能在指定的预定时间内做系统备份,而不可能时时刻刻的都在备份。那么在备份完成后到灾难发生之前的这段数据该如何保护呢?是不是就任由它丢失呢?显然是不可能的。那答案是什么呢?就是日志文件。前面我们知道,任何对数据库的更改都先写入日志里,再由日志写入数据库,这样我们只要找到日志文件,就可以重新进行模拟的 *** 作来完成备份后的数据库文件的更改了,我们举个例子来看看:

假设我们在凌晨3点完成了一次FULLBACKUP,备份完成后,系统正常运行,到下午4点的时候,系统突然崩溃。管理员用凌晨3点的数据恢复了数据库,那么从凌晨3点到下午4点这段时间的数据变更,就只能依赖于日志了。当完成数据库恢复后,系统会自动的跟踪到关联的日志文件,如果发现有比当前数据库还新的日志存在,系统就会自动的按照日志的顺序将更改写回到数据库中去。因此这样一来,从凌晨3点到下午4点的数据变更就被完整的恢复了。这就是日志的第二个作用:保证系统备份和恢复的完整性。当然前提是没有使用循环日志!!(看到了吧,使用循环日志的危害是相当大的,比起你的数据来说,多做几次备份不是没有意义的吧?

说到这里,有人可能要问,如果数据库和日志同时损坏,如何办?答案是:尽量避免这样的情况发生。首先数据库损坏的几率要大于日志,另外,微软建议将数据库和日志分别存储在不同的磁盘上,要是这样还会同时坏,那就没有办法了,呵呵。。对于管理员对日志文件的抱怨,合理的解决方法是定期做备份。启用循环日志是不正确的做法,当启用循环日志后,一旦系统发生灾难恢复,将有可能不能将系统恢复到灾难发生时的状态,磁盘和数据谁更重要,管理员自己要考虑考虑了。

五、ESE与IS服务的启动和关闭

ESE引擎在加载数据库文件时,会去检查数据库文件的标志。这个标志保留了上次关闭数据库的状态,当状态为正常关闭说,系统将直接加载该数据库,当数据库标志为非正常关闭时,系统将先进行一个软恢复过程(你可以在事件里看到它),然后再加载。

那么,正常关闭和非正常关闭有什么区别呢?一个正常关闭的数据库,表示所有的日志信息都已经正确的写入数据库了。反之一个非正常关闭的数据库,则表示至少有一部分数据未能正确的从日志写入数据库。要注意的是,非正常关闭的数据库并不等于已经被破坏的数据库。只表示有数据没有提交到数据库文件。

使用ESEUTIL/MH命令可以看到数据库的该状态,其中的STATE字段标记的就是这个状态,“CLEANSHUTDOWN”表示数据库正常关闭。当系统加载处于非正常关闭的数据库时,就会根据检查点文件确定日志文件的位置,并做重放 *** 作。当检查点文件丢失或损坏时,系统将从最早的日志文件开始处理。有的时候,系统不能自动的修复数据库,这时我们也可以用“ESEUTIL /R”命令手工的恢复处于非正常关闭状态的数据库。强烈推荐在系统异常关闭后执行此命令。在执行前最好前确定数据库文件的状态确实为非正常关闭,不要对正常关闭的数据库执行该恢复命令!

由此可见,EXCHANGE系统对数据库有自我修复能力,能确保系统在发生意外后恢复正确的状态。但这并不是说我们可以随意的关闭系统,仍要UPS等必要的保护措施。

六、关于M盘

在EX2000里,有一个M盘的映射。这个映射只是提供开发人员通过API访问邮箱和邮件用的。因此对M盘的手工 *** 作都可能带来数据库的破坏,请注意,另外,有一种观点认为备份了M盘就备份了邮件,这是绝对错误的。M盘虽然是数据库的映射,但已经去掉了很多的关联和内在联系。因此备份M盘是不能恢复数据库的。所有的EXCHANGE管理员必须按规定认真的备份系统状态和SG。切不可偷懒哦。

日志的概念为了维护自身系统资源的运行状况,计算机系统一般都会有相应的日志记录系统有关日常事件或者误 *** 作警报的日期及时间戳信息。这些日志信息对计算机犯罪调查人员非常有用。所谓日志(Log)是指系统所指定对象的某些 *** 作和其 *** 作结果按时间有序的集合。每个日志文件由日志记录组成,每条日志记录描述了一次单独的系统事件。通常情况下,系统日志是用户可以直接阅读的文本文件,其中包含了一个时间戳和一个信息或者子系统所特有的其他信息。日志文件为服务器、工作站、防火墙和应用软件等IT资源相关活动记录必要的、有价值的信息,这对系统监控、查询、报表和安全审计是十分重要的。日志文件中的记录可提供以下用途:监控系统资源;审计用户行为;对可疑行为进行告警;确定入侵行为的范围;为恢复系统提供帮助;生成调查报告;为打击计算机犯罪提供证据来源。日志的特点日志记录着系统中特定事件的相关活动信息,从计算机取证角度看,日志主要有以下特点:(1)不易读懂虽然大部分系统的日志都以文本的形式记录,但由于各系统日志格式不一致,不熟悉各类日志格式就很难获取有用的信息。同时有相当部分应用系统并不采用文本格式记录着日志信息,必须借助专用的工具分析这些日志,否则很难读懂其中的日志信息。(2)数据量大通常对外服务产生的日志文件如Web服务日志、防火墙、入侵检测系统日志和数据库日志以及各类服务器日志等都很大,一个日志文件一天产生的容量少则几十兆、几百兆,多则有几个G,几十个G,这使得获取和分析日志信息变得很困难。(3)不易获取由于网络中不同的 *** 作系统、应用软件、网络设备和服务产生不同的日志文件,即使相同的服务如IIS也可采用不同格式的日志文件记录日志信息。目前国际上还没有形成标准的日志格式,各系统开发商和网络设备生产商往往根据各自的需要制定自己的日志格式,使得不同系统的日志格式和存储方式有所差别。如何获取各类不同系统产生的不同日志文件作为打击计算机犯罪者的电子证据变得尤为困难。(4)不同日志之间存在某种必然的联系一个系统的日志是对本系统涉及的运行状况的信息按时间顺序作一简单的记录,仅反映本系统的某些特定事件的 *** 作情况,并不完全反映某一用户的整个活动情况。一个用户在网络活动的过程中会在很多的系统日志中留下痕迹,如防火墙IDS日志、 *** 作系统日志等,这些不同的日志之间存在某种必然的联系来反映用户的活动情况。只有将多个系统的日志结合起来分析,才能准确反映用户活动情况。(5)容易被修改、破坏甚至伪造产生系统日志的软件通常为应用系统而不是作为 *** 作系统的子系统运行,所产生的日志记录容易遭到恶意的破坏或修改。系统日志通常存储在系统未经保护的目录中,并以文本方式存储,未经加密和校验处理,没有提供防止恶意篡改的有效保护机制。因此,日志文件并不一定是可靠的,入侵者可能会篡改日志文件,从而不能被视为有效的证据。由于日志是直接反映入侵者痕迹的,在计算机取证中扮演着重要的角色,入侵者获取系统权限窃取机密信息或破坏重要数据后往往会修改或删除与其相关的日志信息,甚至根据系统的漏洞伪造日志以迷惑系统管理员和审计。 Unix系统日志在Unix下,最常用的存放日志文件的目录是: /usr/adm 早期版本的 Unix /var/adm 较新版本的 Unix /var/log 用于Solaris,Linux,BSD等 /etc Unix system V早期版本 在这些目录下,或其子目录下,你可以找到以下日志文件(也许是其中的一部分): lastlog 记录用户最后一次成功登录时间 loginlog 不良的登陆尝试记录 messages 记录输出到系统主控台以及由syslog系统服务程序产生的消息 utmp 记录当前登录的每个用户 utmpx 扩展的utmp wtmp 记录每一次用户登录和注销的历史信息 wtmpx 扩展的wtmp voldlog 记录使用外部介质出现的错误 xferkig 记录Ftp的存取情况 sulog 记录su命令的使用情况 acct 记录每个用户使用过的命令 aculog 拨出自动呼叫记录 记录输出到系统主控台以及由syslog系统服务程序产生的消息。syslog采用可配置的、统一的系统登记程序,随时从系统各处接受log请求,然后根据/etc/syslogconf中的预先设定把log信息写入相应文件中、邮寄给特定用户或者直接以消息的方式发往控制台。值得注意的是,为了防止入侵者修改、删除messages里的记录信息,可以采用用打印机记录或跨越网络登记的方式来挫败入侵者的企图。任何程序都可以通过syslog记录事件。Syslog可以记录系统事件,可以写到一个文件或设备中,或给用户发送一个信息。它能记录本地事件或通过网络记录到另一台主机上的事件。 Syslog依据两个重要的文件:/sbin/syslogd(守护进程)和/etc/syslogconf配置文件。习惯上,多数syslog信息被写到/var/adm或/ar/log目录下的信息文件中(message)。一个典型的syslog记录包括生成程序的名字和一个文本信息,它还包括一个设备和一个行为级别(但不在日志中出现)。 Windows系统日志以Windows2000/XP为例,日志文件通常有应用程序日志,安全日志、系统日志、DNS服务器日志、FTP日志、>索引时间类型级别日志内容1 1日00:00:03其他资讯系统的第一天开始2 00:00:07 DHCP服务器的DHCP公告第1天开始3 00:00:07安全资讯的PPTP直通启用的第一天4 00 :00:07安全信息5月1日启用L2TP的直通日00:00:07安全资讯的IPSEC直通6月1日启用当天00:00:07安全资讯的FTP ALG的第一天启用7 00:00:07安全资讯的TFTP ALG的启用8第一天00:00:07安全信息的H323 ALG的启用DHCP的9第一天00:00:30公告DHCPS:Recv要求6C条:F0的:49:04:8空调:B2的第1天10 00:00:30 DHCP的公告DHCPS:发送1日零时00分31秒11的NAK的DHCP公告DHCPS:Recv发现从6C条:F0的:49:04:8空调:B2的12个第一天00:00:32 DHCP的公告DHCPS:发送的IP 1921681100 13日发售第一天00 :00:32 DHCP的公告DHCPS:Recv要求6C条:F0的:49:04:8空调:B2的14第一天00:00:32 DHCP的公告DHCPS:发送ACK到1921681100 1日零时零零分34秒15的DHCP公告DHCPS:Recv告知6C条:F0的:49:04:8空调:B2的第1天0时00分38秒16的PPP信息发[PADI的主机uniq的(0x000001ad)] 1日零时零零分43秒17的PPP信息发[PADI的主机- uniq的(0x000001ad)]第1天0时00分53秒18的PPP信息发[PADI的主机uniq的(0x000001ad)]第1天0时01分零一秒19的PPPoE断开PPP的警告1日○点零一分11秒20的PPP信息发[ PADI的主机uniq的(0x000001b8)] 21第一天○点01分16秒的PPP信息发[PADI的主机uniq的(0x000001b8)]第1天零点零一分26秒22的PPP信息发[PADI的主机uniq的(0x000001b8)] 23第一天〇点01分46秒等待超时错误购买力平价的PADO分组第一天零点01分55秒24的PPP信息发[PADI的主机uniq的(0x000001bb)]第1天零点○二分00秒25的PPP信息发[PADI的主机uniq的( 0x000001bb)] 26第一天○点零二分10秒的PPP信息发[PADI的主机uniq的(0x000001bb)] 27第一天0时02分三十秒购买力平价错误超时等待的PADO分组第一天○时02分39秒28的PPP信息发[ PADI的主机uniq的(0x000001be)]第1天零点02分44秒29的PPP信息发[PADI的主机uniq的(0x000001be)]


欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/zz/12624925.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2025-08-26
下一篇2025-08-26

发表评论

登录后才能评论

评论列表(0条)

    保存