支持
 
支持 获取报价
 
 
 
 

如何在 Linux 中配置 syslog 服务器

最后更新于:
 

什么是 syslog 服务器?

syslog 服务器 是一个系统,用于接收、存储和分析由 Linux 服务器、网络设备、防火墙和应用程序发送的 syslog 消息。syslog 服务器将所有日志集中到一个位置,而不是单独检查每个设备上的日志,从而实现高效的故障排除、监控和安全审计。

Linux 支持多种 syslog 守护进程,包括:

  • Rsyslog 大多数现代发行版的默认守护进程
  • Syslog-ng 高级过滤和模块化
  • Systemd-journald: systemd 系统中使用的基于二进制的日志记录

syslog 服务器监听:

  • UDP 514:快速但不可靠
  • TCP 514:可靠的日志传输
  • TCP/TLS:安全加密的 syslog 传输

了解更多关于 syslog 的信息

Linux syslog 架构的工作原理

在配置 syslog 服务器之前,了解 syslog 在 Linux 中的流动方式非常重要。典型的 syslog 流程包括:

  1. 应用程序/服务生成日志
  2. Syslog 守护进程(rsyslog/syslog-ng/journald)收集、解析和处理日志
  3. 输出模块将日志转发到远程 syslog 服务器或本地存储

Linux syslog 守护进程如 rsyslog 支持 RFC 3164 和 RFC 5424。网络设备通常使用 RFC 3164,而现代 Linux 应用程序通常使用 RFC 5424,该协议包括优先级、设施、严重性、时间戳、主机名和结构化数据。

配置 syslog 服务器的先决条件

配置服务器之前:

  • 安装 syslog 守护进程,如 rsyslog、syslog-ng,或确保 systemd-journald 正在运行。
  • 检查日志源与 syslog 服务器之间的网络连接。
  • 确保防火墙规则允许入站 syslog 流量(UDP/TCP 514 或 TCP 6514)。
  • 使用 root 或 sudo 权限进行配置更改。
  • 启用时间同步(chrony 或 NTP)以保持准确的时间戳。

配置 Rsyslog 作为 syslog 服务器

Rsyslog 是大多数现代 Linux 发行版中的默认 syslog 守护进程。

步骤 1: 安装 rsyslog(如果尚未安装)

语法:

sudo apt install rsyslog     # Ubuntu/Debian
sudo yum install rsyslog   # RHEL/CentOS

第2步:启用UDP/TCP接收

编辑 /etc/rsyslog.conf 并取消注释:

语法:

module(load="imudp")
input(type="imudp" port="514")

module(load="imtcp")
input(type="imtcp" port="514")

第3步: 为远程日志创建自定义日志文件

将此内容添加到 /etc/rsyslog.d/remote.conf:

语法:

$template RemoteLogs,"/var/log/remote/%HOSTNAME%.log"
*.* ?RemoteLogs

第4步: 重启 rsyslog

sudo systemctl restart rsyslog

您的服务器现在已准备好通过UDP/TCP 514接收日志。

配置 syslog-ng 作为 syslog 服务器

syslog-ng 是一个灵活的高性能日志守护进程。

第1步: 安装 syslog-ng

语法:

sudo apt install syslog-ng
sudo yum install syslog-ng

第2步: 配置源、目标和日志路径

编辑 /etc/syslog-ng/syslog-ng.conf:

语法:

source s_net { udp(port(514)); tcp(port(514)); };

destination d_remote { file("/var/log/remote/$HOST.log"); };

log { source(s_net); destination(d_remote); };

第3步: 重启 syslog-ng

语法:

sudo systemctl restart syslog-ng

配置 systemd-journald 进行远程日志记录

虽然 systemd-journald 本身不支持远程日志接收,但它可以将日志转发到远程 syslog 服务器。自 systemd 254+ 版本起,systemd-journal-remote 支持原生远程日志接收;然而,在大多数生产环境中,尤其是需要多厂商日志聚合的环境,转发日志到 rsyslog 或 syslog-ng 仍然是标准做法。

第1步: 编辑 journald.conf

打开 /etc/systemd/journald.conf 并启用转发:

语法:

ForwardToSyslog=yes

第2步: 重启 systemd-journald

语法:

sudo systemctl restart systemd-journald

第3步: 配置 rsyslog/syslog-ng 接收转发的日志

(请根据上述步骤操作。)

为 syslog 打开防火墙端口

如果启用了 Firewalld,允许 syslog 流量,

语法:

sudo firewall-cmd --permanent --add-port=514/udp
sudo firewall-cmd --permanent --add-port=514/tcp
sudo firewall-cmd --reload

如果使用 UFW(Ubuntu/Debian)

sudo ufw allow 514/udp
sudo ufw allow 514/tcp

验证 syslog 服务器连接性

  1. 使用 logger 命令从客户端机器测试

    logger "Test message from client"
  2. 检查远程日志文件

    tail -f /var/log/remote/*.log
  3. 使用 netcat 测试端口连通性

    nc -vz <syslog-server-ip> 514
  4. 检查服务器上的日志:

    sudo tail -f /var/log/remote/*.log

如果日志出现,说明服务器已正确接收 syslog。

日志轮转

在 syslog 服务器上配置日志轮转,以防止日志文件无限增长并占用磁盘空间。对于高可用部署,考虑启用 rsyslog 磁盘辅助队列(例如,使用 queue.type="LinkedList"),该队列在网络中断期间本地缓冲日志,恢复连接后再转发。这有助于防止在不稳定或高流量环境中丢失日志。

解决 syslog 服务器问题

如果 syslog 未到达:

  1. 检查 rsyslog 是否在监听

    sudo ss -tulnp | grep 514
  2. 验证 SELinux

    允许 syslog 守护进程写入日志:

    sudo setsebool -P syslogd_disable_trans 0

    允许 rsyslog 绑定标准端口(UDP 和 TCP 514):

    sudo semanage port -a -t syslogd_port_t -p udp 514
    sudo semanage port -a -t syslogd_port_t -p tcp 514

    这些命令确保 SELinux 不会阻止日志写入或端口绑定,这些是 syslog 无法到达服务器的常见原因。

  3. 检查配置中的拼写错误

    sudo rsyslogd -N1
  4. 验证客户端配置

    确保客户端具有正确的转发规则:

    *.*   @<server-ip>:514     # UDP
    *.*   @@<server-ip>:514    # TCP

    一旦您的 syslog 服务器启动并运行,下一步是让日志易于搜索、关联和审计。

配置完 syslog 服务器后:使用 EventLog Analyzer 增强监控

在 Linux 中设置 syslog 服务器确保设备可以将日志转发到集中目的地,但查看、过滤、关联和分析这些日志仍需大量手动工作。

EventLog Analyzer 将您配置的 syslog 服务器转变为完整的 syslog 监控解决方案。它不再依赖终端中的 grep 过滤器、临时脚本或分散的日志文件,而是将所有接收的 syslog 事件整合到统一的日志管理控制台。它根据严重性、设施和来源等属性自动解析日志,使得解读来自路由器、防火墙、服务器和应用程序的大量数据更加容易。

功能 您的 Linux syslog 服务器 使用 EventLog Analyzer
日志收集 已配置 syslog 源的自动发现
查看日志 tail -f 和 grep 支持实时流式传输的可搜索仪表板
过滤 手动正则表达式模式 通过 IP、严重性、设施的点选过滤器
威胁检测 不可用 具有实时警报的关联规则
合规报告 手动日志导出 针对 PCI DSS、HIPAA、ISO 27001 的预构建报告
保留与归档 手动日志轮换配置 自动化、加密、防篡改的归档

安全且集中式的 syslog 收集

EventLog Analyzer 内置的 syslog 监听器(UDP/TCP/TLS)安全接收来自分布式环境的日志,并提供消息速率、设备贡献和数据包流状态等指标。配置好 Linux syslog 服务器后,无需单独的收集器或额外配置。

从基础日志转发到智能分析:

  • 集中式日志可视化 将来自 Linux 系统 和网络设备的 syslog 消息汇聚到单一仪表板,无需手动浏览 /var/log 文件。
  • 自动解析与分类: EventLog Analyzer 将原始 syslog 结构化为可读字段,帮助您快速理解问题,无需命令行解码。
  • 即时过滤 使用 IP、严重性、关键字或事件类型应用实时过滤,几秒内筛选相关日志。
  • 实时故障排除: 查看带有元数据的流式 syslog 事件,提供类似 tail -f 的实时故障排除体验,并具备可操作的智能。
  • 威胁检测 通过关联规则检测登录失败激增、配置篡改、异常访问尝试和横向移动。
  • 合规报告 将 syslog 事件映射到 PCI DSS、GDPR、HIPAA、ISO 27001 等法规,生成审计准备报告。

配置好 Linux syslog 服务器后,EventLog Analyzer 提供集中可视化、强大的威胁检测和自动化工作流,将原始 syslog 转化为可操作的洞察。

常见问题解答

要在 Linux 中配置 syslog 服务器,请安装或启用如 rsyslog 的 syslog 守护进程,打开其配置文件(此处为 /etc/rsyslog.conf),启用 imudp 或 imtcp 等模块以接收远程日志。然后定义日志路由规则,设置日志目录权限,重启服务,并允许防火墙通过端口 514。这样即可将您的 Linux 机器变成中央 syslog 接收器。

使用 logger 命令:

logger "Test message"

如果启用了远程转发,使用以下命令向 syslog 服务器发送测试消息:

logger -n <server_ip> -P 514 "Test message".

然后检查目标日志文件中是否有该消息。

syslog 配置文件通常位于,

  • /etc/rsyslog.conf
  • /etc/rsyslog.d/*.conf
  • /etc/syslog-ng/syslog-ng.conf

运行 systemctl status rsyslog 查看 syslog 服务是否处于活动状态。此外,您可以检查 /var/log/ 下的日志文件,或使用 ps aux | grep rsyslog 确认 rsyslog 进程是否运行。

要将日志发送到远程 syslog 服务器,编辑 /etc/rsyslog.conf(或 /etc/rsyslog.d/ 中的文件),添加如下转发规则:

*.* @<server_ip>:514 for UDP or
*.* @@<server_ip>:514 for TCP.

保存文件并重启 rsyslog 以应用更改。

接下来是什么?

配置好您的 syslog 服务器了吗?现在使用 EventLog Analyzer 集中管理并分析您的日志。通过 30 天免费试用体验该解决方案,或获取个性化的网络演示。

EventLog Analyzer 受信赖于

洛斯阿拉莫斯国家银行 密歇根州立大学
松下 Comcast
俄克拉荷马州立大学 IBM
埃森哲 美国银行
印孚瑟斯
安永

客户评价

  • 丹佛信用合作社使用 EventLog Analyzer 超过四年,用于内部用户活动监控。EventLog Analyzer 作为网络取证工具和合规尽职调查工具,提供了极大价值。该产品可以快速扩展以满足我们动态的业务需求。
    Benjamin Shumaker
    IT 副总裁 / ISO
    丹佛信用合作社
  • 我喜欢该应用程序的最大优点是结构良好的 GUI 和自动化报告。这对网络工程师在单一仪表板上监控所有设备非常有帮助。预设报告设计巧妙。
    Joseph Graziano, MCSE CCA VCP
    高级网络工程师
    Citadel
  • EventLog Analyzer 是我们信息技术需求中一个优秀的事件日志报告和警报解决方案。它减少了我们筛选事件日志的时间,并几乎实时提供管理员定义的警报通知。
    Joseph E. Veretto
    运营审查专家
    信息系统办公室
    佛罗里达州交通部
  • Windows事件日志和设备Syslogs是计算机或网络上发生情况的实时摘要。EventLog Analyzer是一款经济实用且易于使用的工具,通过推送实时和定时的警报与报告,让我了解网络中的动态。它是一款高级软件入侵检测系统应用。
    Jim Lloyd
    信息系统经理
    First Mountain 银行

奖项与认可

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
综合日志管理的单一控制面板