syslog-ng,通过创建文件来创建日志记录序列

syslog-ng,通过创建文件来创建日志记录序列

我被指派在 Linux 设备上配置 syslog-ng,使其以某种方式运行。我对使用 syslog-ng 还很陌生,所以请在回复时考虑到这一点。

以下语句解释了配置的先决条件:

  • 发送数据到指定IP(这里无法显示)
  • 如果无法访问上述 IP 的设备,则缓冲到内存
  • 当内存满了,缓冲到文件
  • 当文件已满时,创建一个新文件,一旦创建了 5 个文件,就开始覆盖第一个文件(就像循环过程一样)

我需要的帮助是了解如何配置 syslog-ng 来执行内存和文件先决条件。

任何帮助深表感谢!

答案1

所有这些都应该在 syslog-ng.conf 文件中配置。您需要单独配置您的源。首先您需要本地日志:

destination i_assume_you_already_have_this {
    file("/var/log/whatever");
};

您想使用目标块发送到远程服务器:

destination a_name {
    syslog("10.1.2.3" transport("tcp"));
};

以及将本地日志发送到此目的地的相关条目:

log {
    source(i_assume_you_already_have_this); destination(a_name);
};

通过在远程目标块中添加类似这样的内容来启用磁盘缓冲+内存缓冲:

disk-buffer(
    mem-buf-length(<size in bytes>)
    disk-buf-size(<size in bytes>)
    reliable(no)
)

默认情况下,syslog-ng 不支持基于大小的日志轮换。您需要使用 logrotate 和 postrotate 来重新加载 syslog-ng。您需要在 logrotate 配置中添加类似以下内容:

/var/log/whatever {
   rotate 5
   size <some size>
   postrotate
      /etc/init.d/syslog-ng reload >/dev/null
   endscript
} 

您可以在手册中找到很多此类信息,网址为:https://www.syslog-ng.com/technical-documents/doc/syslog-ng-open-source-edition/3.16/administration-guide

相关内容