rsyslog(本地)和远程日志记录

rsyslog(本地)和远程日志记录

我有几个 Linux 服务器,我想监控它们的日志文件。我认为设置一个可以捕获传入的 rsyslog 数据包的中央日志服务器会很棒。每个主机名都有自己的文件夹和日志集。

但是,是否可以让 rsyslog 在本地(在客户端)写入并写入远程中央日志服务器?我知道这会导致日志重复,但我担心的是,如果中央日志服务器需要重新启动或因维护/错误而关闭,我不想失去使用一些日志数据来诊断其他系统的能力。

答案1

简短回答:是的。这是可能的……而且会定期进行。

/etc/rsyslog.d较长的答案:在(即)中创建一个新文件60-remote.conf并添加单行:

*.* @remote.logging.server.net

(请确保将“remote.logging.server.net”替换为您要集中的实际远程服务器。)您还可以添加各种过滤器,以便仅向远程服务器发送警告和错误,而不是所有内容(*.*)。

答案2

即使不是很大的日志基础设施(例如:数十台服务器,每天共生成数百 MB 的 LOG)的配置也是一项相当具有挑战性的任务。

您的问题“触及”了几个关键点。我将从明确的问题开始,对它们进行阐述。

  1. 是否可以让 rsyslog 在本地(在客户端)写入并写入远程中央日志服务器

是的。当然。假设您有一个正在运行的 rsyslog-server,并且已经在本地进行日志记录,那么将这些日志发送到远程机器很简单,只需在当前配置末尾添加以下内容:

*.* @10.0.49.251

这意味着:“通过 UDP/514 向 10.0.49.251 发送匹配的 LOG 消息全部设施和全部优先事项“。不幸的是,尽管这是对您的问题的回答,但还有其他几件事需要考虑,因为您似乎对此类日志消息的“可靠转发”感兴趣。本文应该是进一步分析的一个良好起点。

  1. 我不想失去利用一些日志数据来诊断其他系统的能力。

我已经读过这个要求(不是丢失 LOG 消息)多次。每个系统管理员都希望如此。但不幸的是,事情非常复杂(本地文件系统可能会变满,并且可能会有本地存储日志消息的空间;日志转发意味着网络活动,具有大量“丢失”因素;等等),即使技术上可以实现,代价也非常高昂。我不会详细讨论它,因为这篇非常有趣的文章清楚地解释主要人物。

除上述内容外,让我补充一些与您在问题中所写内容相关的内容:

  1. 设置一个可以捕获传入的 rsyslog 数据包的中央日志服务器会很棒

从一个 Linux 机器到另一个 Linux 机器的常见 syslog 转发配置起来非常简单:rsyslog.conf 中的一行就足够了。无论如何,根据我的经验,您可能会发现一行简单的解构文本不足以满足您的分析需求。我们当然可以根据 syslog-facility、syslog-priority、syslog-tag、source-host 和消息进行“过滤”。但这些可能会有限制。Rsyslog 提供几处房产可用于“组装”要存储/转发的消息和/或解析收到的消息。此外,其中一些属性还可以表示其他子结构。这与RFC 5424。我并不是说您应该使用 JSON(让本地 rsyslog 准备 JSON 结构的消息并将其转发到您的中央日志服务器),但至少您应该仔细评估这种方法,特别是如果您计划“索引”您的 LOG 以用于分析目的。

  1. 每个主机名都有自己的文件夹和一组日志。

使用 rsyslog 可以非常简单地设置一个日志消息的环境自动地根据各种属性(例如 YEAR、MONTH、DAY 和 HOSTNAME)存储在文件中。这很简单:

template(name="DYNmail" type="string" string="/var/log/%$YEAR%/%$MONTH%/%$DAY%/%HOSTNAME:::lowercase%-mail.log")
[...]
if  ($syslogfacility-text == 'mail') then -?DYNmail;RSYSLOG_FORMAT
if  ($syslogfacility-text == 'mail') then stop

因此,通过三行配置,您将获得mail.*来自任何远程服务器的所有消息,这些消息将存储在名为 HOSTNAME-mail 的文件中,并按照 YEAR/MONTH/DAY 层次结构进行存储。包括自动日志轮换。很棒,不是吗?

  1. 我的主机运行 Debian 7 和 Debian 8。

无论你的 Debian 版本是什么,我建议你更新到最新的稳定版 rsyslog-release。主流发行版都有维护良好的存储库,包含 Debian。此外,如果您打算花一些时间使用 rsyslog-configuration/administration,我邀请您订阅相关的邮件列表,这非常积极且有价值。

相关内容