在最近版本的红帽企业级Linux(RHEL)中用到了rsyslog。虽然这个日志解决方案和传统的BSD日志服务syslogd类似,但它还提供一些功能来保证日志信息到远程日志主机的可靠传输。本文中,你将会看到这些功能。
BSD syslog具有中央日志主机的可配置性。这在严肃执行日志管理的系统中是个不错的主意。在大型环境中,如果日志文件通过多个主机传播,它们追踪起来非常困难。但是,传统的syslog只提供通过UDP的远程记录,它不追踪连接和没有保证的主机上的日志信息到达。Rsyslog解决方案在三个远程日志解决方案中提供选择:UDP、TCP和***开发的RELP协议,RELP协议只能用于***版本的rsyslog。
当发出数据包时,UDP没有建立连接,这意味着这些信息的发出者只能相信该信息会到达其目的地。TCP协议在数据与其它主机交换之前就建立了连接。该解决方案简单且高效:TCP信息的接收者告知已收到,所以发信人在信息到达时会得到确认。由于其广泛的可用性和周密的信息管理,TCP成为更受青睐的选择。RELP协议相对来说还很新且没有普遍应用,这也是现阶段要避免使用的原因。
要启用UDP或者TCP日志,你需要启用一个特定模块。Rsyslog使用输入模块和输出模块来启用来自特定来源的日志信息接收并发送日志信息到特定输出目的地。要确保该中央日志主机能通过TCP接收日志信息,你需要在它的etc/rsyslogd.conf中包括以下两行:
$ModLoad imtcp
$InputTCPServerRun 514
这几行的***行负载输入模块tcp,第二行告诉rsyslog听从端口514上传入的TCP连接。接着,告诉主机必须将信息发送到远程主机。接下来的命令告诉本地主机将所有日志信息发送到一个中央日志主机,它在IP地址192.168.0.1下可用:
*.* @@192.168.0.1
在这一行中使用了syslog风格的设施和优先规定:设施*(发送到rsyslog程序的每一个事件)发送所有符合所有优先权的事件到中央日志主机。指示@@清楚指出,该日志主机听从TCP端口上接下来的信息。做为选择,如果你必须通过UDP发送信息,你可以使用@192.168.0.1。
如果你想运用新的RELP解决方案,你可以在中央日志主机上负载模块,通过在其rsyslogd.conf上囊括以下命令行:
$ModLoad imrelp
$InputRELPServerRun 2514
想要通过RELP发送信息,你需要在发送主机上添加以下命令:
*.* :omrelp:192.168.0.1:2514
注意,想要将它发送到RELP目标主机,需要使用一个无特权的数字,因为没有为RELP协议预留专门端口。
老式的syslog后台程序只能通过UDP发送日志信息。在新的rsyslog日志后台中,你可以在UDP、TCP和新的RELP协议中做选择。使用TCP或RELP更好地保证了该日志信息会到过目的地,两者中的任一种都比以前使用方法构建的日志环境要更为安全。
【编辑推荐】