服务器端的安装和配置

安装下一代系统日志工具实际上并不难,如果从软件包来安装更是如此。如果是Debian,运行apt-get install syslog-ng;如果是红帽系统,运行yum install syslog-ng。访问http://www.balabit.com/downloads/files?path=/syslog-ng/sources/3.2.4/source/syslog-ng_3.2.4.tar.gz,即可安装该工具。接下来是下载、解包、配置、编译和安装。一旦安装好了下一代系统日志工具,我们就可以配置服务器端了。

全局选项

你要做的头一件事就是找到下一代系统日志工具的配置文件。默认安装文件针对Debian变种版本)是/etc/syslog-ng/syslog-ng.conf。在编辑任何配置文件之前,进行变更之前先拷贝一份原始配置文件是个好方法。这完全是为了以免出现问题,你需要找回原始配置文件。我往往把自己的原始配置文件标以.orig这里是syslog-ng.conf.orig)。你已备份好了配置文件,现在就用自己喜欢的编辑器打开它,可以入手了。

long_hostnames默认值:off)——我在本文中使用下一代系统日志工具OSE版本3.1,我其实在全局配置指南中找不到long_hostname。我会使用默认值为off的long hostnames长主机名),使用完全符合标准的域名。

flush_lines默认值:0)——设置一次向目的地发送几行消息。如果设成0,一收到消息就发送,但是要牢记:如果这个值设得偏高,会增加消息延迟。这个选项在下一代系统日志工具的客户端上很有用。在发送到目的地之前,你要将XX条消息保留在客户端上,那样即使收到来自服务器的众多流量,也不至于拥塞那台主要的下一代系统日志工具服务器。

use_dns默认值:no)——选项包括:yes、no和persist_only。这个选项的选择取决于你和你的环境。如果你的下一代系统日志工具在防火墙后面,无法访问外界,那么选择‘yes’很合适。如果可以访问外界,就设置成‘no’,以便阻止可能出现的拒绝服务DoS)攻击。 我将该选项设成了‘persist_only’,因而会检查我那台下一代系统日志工具服务器上的/etc/hosts文件,以解析主机名,又不依赖DNS服务器。

use_fqdn默认值:no)——你的选择是设为“完全符合标准的域名”。由于使用家庭网络,我只有一个内部域名。于是我设置为默认值‘no’。如果设置成‘yes’,你的客户端主机名会显示为‘hostA.domain.com’,而不是‘hostA’。

owner默认值:root)——输出文件的所有人
group默认值:adm)——输出文件群组
perm默认值:0640)——输出文件的权限。设置为默认值640,所有人有权读写,群组有权读取,其他人没有权限。
stats_freq默认值:0)——两个STATS关于丢失日志消息的统计消息)消息之间间隔的时间以秒为单位)。0表示禁用发送STATS消息。
bad_hostname默认值:^gconfd$)——含有不该作为hostnames来处理的主机名的正则表达式,本文中是gconfd。如果你有好多台服务器,我会建议hostnames,当然除非你记得域中的每一个IP地址。
这些是“默认”的全局配置选项,但你还可以使用其他众多选项。我还使用下列选项:
normalize_hostnamesyes)——该选项把所有主机名转换成小写。我的一些设备使用大写主机名,有时候我会迷上某个新主机,并把主机名的第一个字母转换成大写。该选项可以把所有字符转换成小写,以便阅读。
keep_hostnameyes)——如果要进行转发或透过外部服务器传送,该选项就会保留主机名,那样主机最终到达中央服务器后,主机名会一并到达,而不是依赖DNS或/etc/hosts)。如果你使用$HOST宏指令,应该启用该选项。

在更大、更重要的环境不是小型办公环境)下,我会设置stats_freq600)和stats_level2),以便从服务器获取统计消息。在大多数小型办公环境下,你可能搜索来自三五个设备的系统日志数据;这种情况下,实际丢失数据的可能性相当小。在更庞大的企业环境下,可能有几百个设备向中央系统日志服务器报告,启用统计功能让系统管理员能够检查统计消息和可能丢失的消息。

你的全局配置选项看起来如下:
options {(off);
flush_lines(0);
use_dns(persist_only);
use_fqdn(no);
owner("root");
group("adm");
perm(0640);
stats_freq(0);
bad_hostname("^gconfd$");
normalize_hostnames(yes);
keep_hostname(yes);
};


相关内容