事件日志管理是服务器维护中的一项非常重要的日常工作,当然也是一项耗费精力、体力的工作,特 别是当局域网中有非常多的应用服务器时更是如此。一个好的管理方案是,部署一个专门用于事件日志管 理的中央服务器,然后将其他服务器上的日志转发到该中央服务器上实施集中管理。不过,这需要利用第 三方软件来实现。在Windows Server 2008中提供了一项新功能,通过它我们可以实现服务器事件日志的 转发和订阅,就可以自定义将特定的服务器事件日志集中起来管理了。下面笔者部署环境,对此进行实例 演示。
环境描述:
本文以域环境为例进行演示,有两台服务器:一台为server1,作为源 服务器,以转发日志到日志服务器;一台为server2,作为日志服务器,以订阅源服务器上转发的日志。
任务目标:
将server1服务器过去的24小时内ID为100的错误系统日志实时转发到日志服务 器server2中,并且一旦server1上有符合设定的日志,在server2上会以消息框的形式通知管理员。
实现过程:
1.创建自定义视图
以管理员身份登录server1服务器,依次单击 “开始”→“运行”,输入eventvwr.msc打开“事件查看器”窗口 。在左窗格中点击选中“自定义视图”,然后点击展开“操作”菜单选择“ 创建自定义视图”命令。在“创建自定义视图”向导窗口的“筛选器”标签 页中,设置“记录时间”为“过去的24小时”,“事件级别”为 “错误”,“事件日志”为“系统”。设置完毕后单击“确定 ”退出,在弹出的“将筛选器保存到自定义视图”对话框中,我们为视图命名为 “Error Events (24 hours)”,然后“确定”退出。这样可以在“自定义视 图”下看到刚才创建的名为“Error Events (24 hours)”的视图。(图1)
2.将自定义事件添加到系统日志
其实,这一步在实战中是不需要的,笔者之所以加这一 步是为了检验我们创建的自定义视图的效果,即创建一个自定义的特定事件,然后看看在自定义视图中是 否会出现。在server1服务器中以管理员身份运行命令提示符,然后执行命令“Eventcreate /T ERROR /ID 100 /L SYSTEM /D "Application Error #1" /SO MyApp”,可以看到该命令 成功执行,通过该命令我们自定义了一个事件。Eventcreate命令用于创建事件日志,参数 “/T”用于指定事件的级别为“ERROR”,参数“/ID”用于指定事件ID 为“100”,参数“/L”用于指定事件的类型为“SYSTEM”,参数 “/D”是事件的描述“Application Error #1”,参数“/SO”是事件 的来源即“MyApp”。自定义日志创建完毕后,我们重新打开“事件查看器”,定 位到“自定义视图”下的“Error Events (24 hours)”上,展开“操作 ”菜单选择“刷新”命令,刷新完毕后就可以看到我们刚才自定义的事件,因为它符合 我们刚才创建的自定义视图的筛选条件,同时也验证了我们创建的自定义视图是正确的。(图2)
3.创建事件订阅
以管理员身份登录server2服务器,进入其“事件查看器”控制台窗口。点击其最下面 的“订阅”项,此时会弹出一个对话框询问我们是否要启动“Windows事件收集器服务 ”,点击“是”启动该服务。然后右键单击“订阅”在右键菜单中选择 “创建订阅”命令弹出“订阅属性”对话框。在该对话框中进行设置:订阅名称为 “MyApp Errors on server1”即来自服务器server1的系统错误事件;单击“源计算机 ”项下的“添加”按钮弹出“选择计算机”对话框,输入server1将需要订阅 事件日志的服务器添加进来,单击“确定”返回到“订阅属性”对话框。在此,我 们可按照上面的方法添加多个服务器。添加完毕后,单击下面右侧的“测试”按钮以验证刚才 添加的服务器的有效性。如果弹出一个错误对话框,我们不用管单击“确定”即可。之所以弹 出这个错误对话框,是因为server1上的WimRM没有启动并配置,我们后续进行配置即可。(图3)
返回到“订阅 属性”对话框,单击“选择事件”按钮进入“查询筛选器”对话框。在该对 话框中进行如下设置:设置“记录时间”为“过去的24小时”,事件级别为 “错误”,事件日志为“Windows日志\系统”,事件ID为“100”,设 置完毕后退出“选择事件”对话框。在订阅属性”对话框,单击“高级”按 钮进入“高级订阅设置”对话框。在该对话框中设置“用户账户”为“具体 用户”,然后单击右侧的“用户和密码”按钮弹出“订阅源的凭据”对话框 。默认用户名为administrator,在下面输入管理员的密码即可。然后设置“事件传递优化” 方式为“最小化滞后时间”,协议和端口保持默认。***单击“确定”退出 “订阅属性”对话框,此时会弹出“事件查看”提升对话框告诉我们下一步的做法 ,单击“是”退出即可。此时,从“事件查看器”控制台的“订阅”节 点中可以看见我们刚才创建的订阅,不过却显示为一个红色的惊叹号,这是因为server1的WimRM没有启动 并配置。(图4)
#p#
4.启动并配置 WimRM
以管理员身份登录服务器server1,然后以管理员身份运行命令提示符,执行命令 “WINRM QuickConfig”快速配置WinRM。命令执行时,会提示WindRM客户端会处于监听状态, 并且可穿越防火墙,询问我们是否改变,属于“y”并回车后sever1上的WinRM快速配置完毕。 下面我们登录日志服务器server2进行验证,进入其“事件查看器”控制台,右键单击“ 订阅”选择右键菜单中的“刷新”命令,刷新完毕后,可以看到我们刚才创建的订阅显 示为绿色的对勾,表示已经正常了。此外,我还可以进一步地进行验证。登录日志服务器server2,然后 以管理员身份打开命令提示符,输入命令“EVENTCREATE /S server1.test.com /L System /T Error /ID 100 /SO MyApp /D "MyApp Encountered an error"”,如果命令成功执行说 明我们的配置无误。这个命令行使用eventcreate命令在日志服务器server2上为server1创建一个事件日 志,其中参数“/S”指定目标服务器,test.com是域名,server2是服务器名。在server2的 “事件查看器”控制台中,依次展开“Windows日志”→“转发的事件 ”节点上,我们右键单击该节点选择“刷新”,可以在右侧看到刚才创建的日志已经转 发成功。同样的,我们登录server1服务器,在事件查看控制台中可看到刚才通过server2创建的日志。这 说明我们的配置是正确的。(图5)
5.将任务附加到事件
将任务附加到事件这是一项非常有用的功能,我们可将任务和事件捆绑在一起,当事件发生时, 会触发一个任务。利用此功能我们可实现当某个事件发生时,运行一个程序或脚本,或者显示一个警报, 甚至发送一封电子邮件以通知管理员引起重视,一般采取相应的行动。本例中,我们就以触发一个警报为 例。即当服务器server1上发生了我们定义的事件是,在日志服务器server2上会显示一个警示对话框。具 体实现方法如下。
登录日志服务器server2,进入其“事件查看器”控制台,定位到 “Windows日志”→“转发事件”节点上,在右侧的内容窗格中找到我们刚才 自定义的日志“MyApp Encountered an error”,右键单击该日志选择“将任务附加到 此事件”命令打开“创建基本任务向导”。在“创建基本任务”页面,设置 名称为“MyApp Error 100 Interactive Notification”;在“操作”页面设置 “希望该任务执行的操作”为“显示消息”,消息的标题为“SERVER2服务器 事件报告”,消息内容为“Server2服务器发生了一个系统错误,请管理员马上进行排错! ”,设置完成后退出该向导。此时会弹出一个提示对话框,我们“确定”即可。(图6)
6.验证日志报告
到这一步我们就完成了服务器间日志的订阅和转发,下面我们验证一下效果。这项操作可以在服 务器server2上执行,也可在日志服务器server1上执行,我们就在服务器server2上验证。验证的思路是 ,在服务器server2上创建通过EVENTCREATE命令子定义并向服务器server1上转发一个系统错误日志,然 后看看我们设置的事件警报会有什么反应。在服务器server2上以管理员身份运行命令提示符,然后执行 命令“EVENTCREATE /S server1.test.com /L System /T Error /ID 100 /SO MyApp /D "MyApp Encountered an error"E”。命令执行完毕后,看到弹出一个警告对话框,提示 Server2服务器发生了一个系统错误,请管理员马上进行排错!”,而这正是我们刚才设置的警告框 。可见,我们的试验成功了。这样,当服务器server1上如果有我们定义的事件发生时,管理员就会在日 志服务器上看到。(图7)
总结:通过上面的操 作演示,可以看到通过事件的转发和订阅技术,能够实现使用一台日志服务器集中管理多台服务器日志。 上面的例子,主要是提供一种思路。在实战中,我们要设置多台服务器的日志订阅和转发。另外,为了便 于日志服务器的管理,一般情况下不要将其他服务器上所有的日志转发到这台日志服务器上。一个比较科 学的策略是,根据具体服务器的特点已经管理员关心的重点,我们可通过自定义的方式只将与服务器的稳 定安全攸关的事件转发到日志服务器上。