Linux 日志收集器:syslog,syslog-ng,rsyslog

发布时间 2023-06-06 16:03:18作者: 武平宁

参考:https://www.cnblogs.com/zhaoyong631/p/14441090.html

基本上,它们都是相同,它们都允许在中央存储库中记录来自不同类型系统的数据。
但是它们是三个不同的项目,每个项目都试图通过更多的可靠性和功能性来改进前一个项目。

参考:https://zhuanlan.zhihu.com/p/616172049

一台服务器的日志对系统工程师来说是至关重要,一旦服务器出现故障或被入侵,需要查看日志来定位问题。

  • syslog 配置示例

配置格式:facility.priority action

 # Define where logs should be stored
auth,authpriv.*                      /var/log/auth.log
*.*;auth,authpriv.none               -/var/log/syslog
daemon.*                             -/var/log/daemon.log
kern.*                               -/var/log/kern.log
mail.*                               -/var/log/mail.log
user.*                               -/var/log/user.log

# Define where logs should be forwarded
*.*                                  @logserver.example.com
  • syslog-ng 配置示例
source s_network {
    network(
        ip(0.0.0.0)
        port(514)
        transport(udp)
    );
};

filter f_facility {
    facility(kern);
};

filter f_level {
    level(debug..err);
};

destination d_syslog {
    file("/var/log/syslog-ng/syslog.log");
};

log {
    source(s_network);
    filter(f_facility);
    filter(f_level);
    destination(d_syslog);
};
  • rsyslog 配置示例
# /etc/rsyslog.conf

# 过滤规则
:msg, contains, "error" /var/log/error.log
:msg, contains, "warning" /var/log/warning.log

# 默认规则
*.* /var/log/syslog

  • facility 标识日志的来源
# facility 的取值范围是 0 到 23,各个值表示的意义如下:

    0:kernel messages
    1:user-level messages
    2:mail system
    3:system daemons
    4:security/authorization messages
    5:messages generated internally by syslogd
    6:line printer subsystem
    7:network news subsystem
    8:UUCP subsystem
    9:clock daemon
    10:security/authorization messages
    11:FTP daemon
    12:NTP subsystem
    13:log audit
    14:log alert
    15:clock daemon (note 2)
    16:local use 0 (local0)
    17:local use 1 (local1)
    18:local use 2 (local2)
    19:local use 3 (local3)
    20:local use 4 (local4)
    21:local use 5 (local5)
    22:local use 6 (local6)
    23:local use 7 (local7)
  • priority 标识日志的消息的严重程度
# priority 的取值范围是 0 到 7,各个值表示的意义如下:

    0:Emergency:系统不可用
    1:Alert:必须立即采取行动
    2:Critical:临界状态
    3:Error:错误消息
    4:Warning:警告消息
    5:Notice:普通重要消息
    6:Informational:信息性消息
    7:Debug:调试信息
  • action 示日志记录器如何处理日志消息的方法
在日志系统中,syslog action 是一种指示日志记录器如何处理日志消息的方法。通常,syslog action 包括以下几个方面:

    日志消息接收:指示日志记录器从哪里接收日志消息,可以是 UDP 或 TCP 协议的网络端口,也可以是文件或数据流等。
    日志消息格式:指示日志记录器如何解析和处理日志消息,通常需要指定消息的格式、优先级、时间戳等信息。
    日志消息过滤:指示日志记录器如何过滤和筛选日志消息,可以根据优先级、来源、内容等进行过滤。
    日志消息存储:指示日志记录器如何存储日志消息,可以是本地文件、数据库、远程存储等。
    日志消息转发:指示日志记录器如何转发日志消息到其他系统或设备,例如发送邮件、短信、推送通知等。
    日志消息告警:指示日志记录器如何设置告警规则,当出现特定的日志消息时,触发告警通知。
    日志消息分析:指示日志记录器如何分析和统计日志消息,例如生成报表、图表、趋势分析等。

syslog action 可以根据实际需求进行定制和配置,可以帮助日志记录器更好地管理和处理日志消息。它可以提高日志系统的可用性、安全性和可靠性,同时也可以帮助管理员更好地了解系统的运行状态和问题,及时发现和解决问题。

  • syslog协议消息格式
    <优先级>时间戳 主机名 进程ID: 消息内容