redhat 运维 - 远程日志记录

远程日志记录
标准系统日志管理配置每周轮换日志文件,并保留四次轮换。通常希望维护日志的时间长于默认的四周,尤其是在建立与任务相关的系统性能趋势时,通过将日志消息发送到具有专用大容量存储的远程日志主机,管理员可以维护其系统的大型系统日志归档,而无需更改默认的日志轮换配置,该配置旨在防止日志过度消耗磁盘存储。
集中收集系统日志消息对于监控系统状态和快速识别问题也非常有用。它还为日志消息提供了一个备份位置,以防系统发生灾难性硬盘故障或其他问题,导致本地日志不再可用。在这些情况下,位于中央日志主机上的日志消息副本可用于帮助诊断导致问题的原因。
标准化的系统日志记录在 Red Hat Enterprise Linux 7 中由 rsyslog 服务实现。系统程序可以向本地 rsyslogd 服务发送 syslog 消息,然后该服务会根据其配置文件/etc/rsyslog.conf 中的设置,将这些消息重定向到/var/log、远程日志服务器或其他数据库中的文件。
日志消息有两个用于分类的特征。日志消息的功能表明了它是什么类型的消息。另一方面,优先级表示消息中记录的事件的重要性。
系统日志的优先级:

配置中央日志主机:
中央日志主机的实现需要在两台系统上配置 rsyslog 服务:发出日志消息的远程系统和接收消息的中央日志主机。
在中央日志主机上,需要配置 rsyslog 服务,以便接受来自远程主机的日志消息。
要在中央日志主机上配置 rsyslog 服务以接受远程日志,需要在/etc/rsyslog.conf 文件的 modules 部分取消对 TCP 或 UDP 接收行的注释。
就像这样:

TCP 为远程日志消息提供了更可靠的传递,但是 UDP 受到更多的操作系统和网络设备的支持。
默认情况下,/etc/rsyslog.conf 中包含的规则配置为支持在单个主机上记录消息。因此,它按功能对消息进行分类和打包。例如,邮件消息被集中到/var/log/maillog 中,而 crond 守护进程生成的消息被合并到/var/log/cron 中,以便于定位每种类型的消息。
实战:配置远程日志记录
本实验我们的目的:
能够将远程系统日志记录集中到一个中央日志主机。
首先需要我们以 root 用户身份登录上 servera,serverab;
在 servera 上配置 rsyslog 服务,以便它可以充当中央日志主机。为了获得更可靠的 syslog 消息传递,还需要将中央日志主机配置为使用 TCP 接受来自远程主机的消息传递。
为了更好地组织消息,创建一个新规则,将每个主机生成的 syslog 消息写入/var/log/loghost 目录下的单独子目录中。子目录将以每个主机的主机名命名。在每个主机的子目录中,将为每个系统日志工具的消息维护一个单独的日志文件。为了获得更好的性能,需要配置日志记录,以便在记录每个消息后不执行同步。为新日志文件配置日志循环。
将 serverb 配置为提供远程记录到中央日志主机。通过生成一条测试消息并验证它是否存在于 servera 的相应日志中来测试配置。
验证 rsyslog 服务正在运行,并且能够在引导时启动

在 servera 上配置 rsyslog 服务,以便使用 TCP 接受来自远程主机的 syslog 消息,并将消息写入每个主机的单独文件。
通过取消对以下行的注释,在/etc/rsyslog.conf 中启用 TCP 的 syslog 的接收

在“#### RULES ####”部分下,为动态日志文件名添加以下规则,然后创建一个规则来使用动态文件名按主机名和工具分隔日志消息。

重新启动 rsyslog 服务以使配置更改生效。

将以下条目添加到 /etc/logrotate.d/syslog 配置文件,以便将新的日志文件放入日志轮换计划中。

修改 servera 上的防火墙,以允许使用 TCP 传递来自远程主机的传入系统日志消息。
允许 TCP 在 514 端口上的传入流量。

重新加载 firewalld 以使防火墙更改生效。

将 serverb 配置为使用 TCP 协议将 syslog 消息远程发送到 servera。
在 serverb 上,将以下规则添加到/etc/rsyslog.conf 中,以便使用 TCP 在 514 端口上将所有 syslog 消息远程传递到 servera。

重新启动 serverb 上的 rsyslog 服务,以使配置更改生效。

验证从 serverb 到运行在 servera 上的中央日志主机的远程日志记录是否正常工作。
在 serverb 上,使用不同的工具生成几条 syslog 消息。

在 servera 上,验证 syslog 消息是否出现在/var/log/loghost/serverb 目录。


我们可以看道有这个日志文件,那么配置远程日志记录就成功了。
版权声明: 本文为 InfoQ 作者【阿柠xn】的原创文章。
原文链接:【http://xie.infoq.cn/article/20ba4ea81160629bda69459b7】。文章转载请联系作者。
评论