第 8 章
调整日志记录
Directory Server 提供多种日志类型,表 8-1 中对这些类型进行了概述。本章讨论如何处理不同类型的日志。
表 8-1    Directory Server 使用的日志类型
日志
|
类型
|
用途
|
访问
|
平面文件
|
评估目录使用模式,验证配置设置,诊断访问问题。
|
审核
|
平面文件
|
提供审核跟踪,以确保安全性和数据完整性。
|
更改日志
|
数据库
|
在副本间启用同步
|
错误
|
平面文件
|
调试目录部署。
|
回退更改日志
|
数据库
|
允许与先前版本实现向后兼容。
|
事务
|
数据库
|
维护数据库完整性。
|
在高容量部署中,写入日志可能会引发大量磁盘操作,从而对性能造成明显的负面影响。由于在高容量系统中作频繁记录可能会造成 I/O 瓶颈,所以应考虑将日志放在使用单独磁盘控制器的单独物理磁盘中。
访问日志记录
访问日志中包含客户机连接和已执行操作的详细信息。在诊断访问问题、验证服务器配置设置以及评估服务器使用模式时,访问日志往往是不可缺少的。不过,对于大多数部署,默认日志记录级别会导致磁盘活动频繁,而磁盘活动量太大可能会对服务器性能造成消极影响。
尽管访问日志提供了有益的疑难解答信息,但是它也可能成为 I/O 瓶颈。一旦目录部署完毕,并且运行时没有出现错误或性能问题,则应考虑禁用访问日志记录。如果生产环境要求使用访问日志记录,那么应将日志记录级别设为所需的最低级别。此外,还应考虑将访问日志放在单独的物理磁盘或具有较大 I/O 缓冲区的快速磁盘子系统中。表 8-2 提供了针对特定属性的进一步建议。
表 8-2    访问日志记录的调整建议
配置属性(dn:cn=config 时)
|
简短说明和调整建议
|
nsslapd-accesslog
|
指定访问日志文件的路径和文件名。
对于低容量部署,访问日志可以与审核和错误日志共享一个磁盘。
对于高容量部署,应考虑将访问日志放在单独的磁盘或磁盘子系统中,并使用单独的控制器。选择具有大 I/O 缓冲区的磁盘。
|
nsslapd-accesslog-level
|
指定所使用的信息记录的级别。
除非需要较高的级别,否则请将其更改为 0,表示不使用访问日志记录,(默认设置为 256,表示记录对条目的访问)。
|
nsslapd-accesslog-logbuffering
|
确定是否缓存访问日志。
除非必须禁用缓存,以便在访问日志消息被触发时及时查看,否则请保留 on(默认值)。禁用缓存可能会导致整体性能下降。
|
nsslapd-accesslog-logging-enabled
|
启用和禁用访问日志记录。
切换为 off(默认值为 on),以获得最佳性能。
如果部署要求启用访问日志记录,则请将 nsslapd-accesslog-level 设置为可接受的最低设置,并将访问日志放在单独的磁盘或磁盘子系统中。经常轮换访问日志(每天或每周),并使用 nsslapd-accesslog-logmaxdiskspace 和 nsslapd-accesslog-logminfreediskspace 来管理磁盘空间的使用。
|
nsslapd-accesslog-logmaxdiskspace
|
指定全部访问日志(当前的和轮换的日志)可以占用的最大磁盘空间。
此值应低于访问日志记录的专用磁盘空间总量。
如果使用同一磁盘来保存审核、访问和错误日志记录,那么应确保有足够的磁盘空间来保存所有这三种日志。
如果访问日志驻留在单独的磁盘上,那么应将此变量设置为该磁盘的大小。
|
nsslapd-accesslog-logminfreediskspace
|
指定在清除旧日志之前允许达到的最低可用磁盘空间。
当可用磁盘空间量低于此属性上指定的值时,最旧的访问日志将被删除,直到释放出足够的磁盘空间来满足此属性的设置。如果由于磁盘已满而不能写入访问日志,那么服务器就会关闭。
|
有关单个配置属性的详细信息,请参阅 Sun ONE Directory Server 参考手册。
Sun ONE Directory Server Resource Kit 文档中包含从访问日志中抽取的信息。详细信息,请参阅“下载 Directory Server 工具”。
审核日志记录
审核日志中包含有关对各数据库及服务器配置所作全部更改的详细信息。默认情况下,禁用审核日志记录。
当在大修改量的部署中启用时,审核日志记录可能会导致整体性能显著下降。除非部署中需要审核日志,否则请保留其禁用状态。对于需要审核日志记录的大容量部署,应考虑为审核日志分配一个位于单独的控制器上的独立磁盘。表 8-3 提供了针对特定属性的进一步建议。
表 8-3    审核日志记录的调整建议
配置属性(dn:cn=config 时)
|
简短说明和调整建议
|
nsslapd-auditlog
|
指定审核日志文件的路径和文件名。
对于低容量部署,审核日志可以与访问和错误日志共享一个磁盘。
对于高容量部署,应考虑将审核日志放在单独的磁盘中,并使用单独的控制器。选择具有大 I/O 缓冲区的磁盘。
|
nsslapd-auditlog-logging-enabled
|
启用和禁用审核日志记录。
除非需要审核日志记录,否则请保留 off(默认设置)。
|
nsslapd-auditlog-logmaxdiskspace
|
指定全部审核日志(当前的和轮换的日志)可以占用的最大磁盘空间。
此值应低于审核日志记录的专用磁盘空间总量。
如果使用同一磁盘来保存审核、访问和错误日志记录,那么应确保有足够的磁盘空间来保存所有这三种日志。
如果审核日志驻留在单独的磁盘上,那么应将此变量设置为该磁盘的大小。
|
nsslapd-auditlog-logminfreediskspace
|
指定在清除旧日志之前允许达到的最低可用磁盘空间。
当可用磁盘空间量低于此属性指定的值时,最旧的审核日志将被删除,直到释放出足够的磁盘空间来满足此属性的设置。如果由于磁盘已满而不能写入审核日志,那么服务器将会关闭。
|
有关单个配置属性的详细信息,请参阅 Sun ONE Directory Server 参考手册。
错误日志记录
Directory Server 实例的错误日志中包含正常服务器操作期间出现的错误、警告和通知消息的详细信息。默认的低日志记录级别产生的磁盘活动相对较少。
不过,当设置较高日志级别以生成调试信息时,Directory Server 可能会开始将大量消息写入磁盘中。写入负载可能会导致整体性能显著下降。为避免性能下降,应渐进地增加日志级别,逐个完成组件,而不是一次激活所有组件的日志级别。
错误日志不支持日志缓存。所有消息都会立即写入磁盘。对于大容量部署,应考虑为错误日志分配单独的控制器上的独立磁盘,以便在各种需要进行调试的情况下使用。表 8-4 提供了针对特定属性的进一步建议。
表 8-4    错误日志记录的调整建议
配置属性(dn:cn=config 时)
|
简短说明和调整建议
|
nsslapd-errorlog
|
指定错误日志文件的路径和文件名。
对于低容量部署,错误日志可以与访问和审核日志共享一个磁盘。
对于高容量部署,应考虑将错误日志放在单独的磁盘中,并使用单独的控制器。选择具有大 I/O 缓冲区的磁盘。
|
nsslapd-errorlog-logging-enabled
|
启用和禁用错误日志记录。
保留 on(默认设置)。
|
nsslapd-errorlog-logmaxdiskspace
|
指定全部错误日志(当前的和轮换的日志)可以占用的最大磁盘空间。
此值应低于错误日志记录专用的磁盘空间总量。
如果使用同一磁盘来保存审核、访问和错误日志记录,那么应确保有足够的磁盘空间来保存所有这三种日志。
如果错误日志驻留在单独的磁盘上,那么应将此变量设置为该磁盘的大小。
|
nsslapd-errorlog-logminfreediskspace
|
指定在清除旧日志之前允许达到的最低可用磁盘空间。
当可用磁盘空间量低于此属性指定的值时,最旧的错误日志将被删除,直到释放出足够的磁盘空间来满足此属性的设置。如果由于磁盘已满而不能写入错误日志,那么服务器将会关闭。
|
nsslapd-infolog-area
|
指定需要记录通知消息的组件。
除非需要对某个组件进行调试,否则请保留 0(默认值)。在生产服务器上应避免一次为多个组件进行设置。
|
nsslapd-infolog-level
|
指定所使用的信息记录的级别。
除非在调试某个组件时,仅设置 nsslapd-infolog-area 无法生成足够的详细信息,否则请保留 0(默认值)。
|
有关单个配置属性的详细信息,请参阅 Sun ONE Directory Server 参考手册。
多主服务器复制更改日志记录
Directory Server 使用一个复制更改日志在副本间启用同步。有关更改日志的详细讨论,请参阅 Sun ONE Directory Server 部署指南。有关配置的详细信息,请参阅 Sun ONE Directory Server 参考手册。表 8-5 提供了特定属性的更多建议。
表 8-5    多主服务器更改日志记录的调整建议
配置条目 DN 和配置属性
|
简短说明和调整建议
|
dn:cn=changelog5,cn=config
nsslapd-cachememsize
|
指定更改日志数据库缓存大小。
请考虑更改默认的 10 MB 以进行高容量部署。
|
dn:cn=changelog5,cn=config
nsslapd-changelogdir
|
指定更改日志数据库的路径和文件名。
请考虑将更改日志放在单独的磁盘或磁盘子系统中,并使用单独的控制器。使用大的 I/O 缓冲区可能会有所帮助。
|
dn:cn=changelog5,cn=config
nsslapd-changemaxage
|
指定更改日志中条目的最大存留期。
将 0(默认值,表示无最大存留期)更改为一个时间间隔,达到此时间间隔后复制的服务器完全同步,并整理更改日志。
|
dn:cn=changelog5,cn=config
nsslapd-changemaxentries
|
指定更改日志中条目的最大数量。
将此设置从 0(默认值,表示不存在最大值)更改为某个数值,足以使修整更改日志之前允许复制服务器完全同步。
|
dn:cn=changelog5,cn=config
nsslapd-cachesize
|
指定更改日志数据库缓存中条目的最大数量。
将此设置从 -1(默认值,表示不存在最大值)更改为条目刷新之前更改日志中保留的条目的最大数量。
|
有关单个配置属性的详细信息,请参阅 Sun ONE Directory Server 参考手册。
回退更改日志记录
Directory Server 附带了一个回退更改日志插件,启用后可以记录供应商服务器上的更改;记录的格式与以前的 Directory Server 4.x 版本兼容,并且可通过 LDAP 访问。回退更改日志插件默认情况下是禁用的,除兼容性需要外不应启用。请参阅 Sun ONE Directory Server 参考手册 以了解详细信息。表 8-6 提供了针对特定属性的进一步建议。
表 8-6    回退更改日志记录的调整建议
配置条目 DN 和配置属性
|
简短说明和调整建议
|
dn:cn=Retro Changelog Plugin,cn=plugins,cn=config
nsslapd-changelogdir
|
指定回退更改日志的路径和文件名。
请考虑将回退更改日志放在单独的磁盘或磁盘子系统中,并使用单独的控制器。使用大的 I/O 缓冲区可能会有所帮助。
|
dn:cn=Retro Changelog Plugin,cn=plugins,cn=config
nsslapd-changelogmaxage
|
指定回退更改日志中条目的最大存留期。
将此设置从 0(默认值,表示不存在最大存留期)更改为某个时间间隔,经过此时间间隔后,使用回退更改日志的客户机处理完生成的日志条目。
|
dn:cn=Retro Changelog Plugin,cn=plugins,cn=config
nsslapd-changelogmaxentries
|
指定回退更改日志中条目的最大数量。
将此设置从 0(默认值,表示不存在最大值)更改为修整之前回退更改日志中保留的条目的最大数量。
|
有关单个配置属性的详细信息,请参阅 Sun ONE Directory Server 参考手册。
事务日志记录
Directory Server 通过事务日志记录来维护数据库的完整性。当接受更新操作 - add、modify、delete 或 modrdn 时,Directory Server 会将有关该操作的日志消息写入事务日志中。默认情况下启用的持久事务日志记录可确保数据的完整性。其具体方法是:确保将每个更新操作都提交到磁盘上的事务日志中,然后再将更新操作的结果代码返回给客户机应用程序。在发生系统崩溃的情况下,Directory Server 会使用事务日志来恢复数据库。由于事务日志有助于异常关闭的数据库的恢复,所以应考虑将事务日志和目录数据库存储在不同的磁盘子系统中。
事务日志记录会引发大量磁盘操作,特别是在启用持久性的情况下。这很可能成为更新操作的主要性能瓶颈。将事务日志和数据库分别存储在不同的 RAID 系统(如 Sun StorEdge 磁盘阵列)中,不仅有助于在发生系统崩溃的情况下更好地保护数据完整性,还可以提高更新操作的性能。表 8-7 提供了针对特定属性的进一步建议。
表 8-7    事务日志记录的调整建议
配置条目 DN 和配置属性
|
简短说明和调整建议
|
dn:cn=config,cn=ldbm database,cn=plugins,cn=config
nsslapd-db-checkpoint-interval
|
指定一个时间间隔,让 Directory Server 按此间隔定点检查事务日志,确保整个数据库系统与磁盘同步,并对事务日志进行清理。
请保留 60(默认间隔,以秒为单位),除非基于经验测试的数据库性能优化工作表明应采用不同的值。增大此属性的值可能会使更新操作的性能提高,但也意味着非正常关机之后的恢复过程将花费更长的时间,且事务日志会占用更多的磁盘空间。
|
dn:cn=config,cn=ldbm database,cn=plugins,cn=config
nsslapd-db-durable-transaction
|
指定在将结果代码发送给客户机之前是否应将更新操作提交到磁盘上的事务日志中。
对于数据完整性要求较高的部署,请保留 on(默认值)。对于某些部署,可以禁用持久的事务日志记录,以提高性能。不过,在禁用之后,那些已清空到文件系统但还没有记入磁盘的日志消息可能会在发生系统崩溃的情况下丢失。这意味着,在持久的事务日志记录被设置为 off 的情况下,即便客户机接收到了成功更新的结果代码,某些更新也可能是无法恢复的。
|
dn:cn=config,cn=ldbm database,cn=plugins,cn=config
nsslapd-db-logdirectory
|
指定事务日志的路径和文件名。
应考虑将事务日志存储在单独的快速磁盘或磁盘子系统中,并使用单独的控制器。
|
有关单个配置属性的详细信息,请参阅 Sun ONE Directory Server 参考手册 。