支持
 
支持 获取报价
 
 
 
 

如何在 Linux 中配置 syslog 服务器

最后更新于:
 

什么是 syslog 服务器?

syslog 服务器 是一个系统,配置为接收、存储和分析由 Linux 服务器、网络设备、防火墙和应用程序发送的 syslog 消息。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 银行

奖项与认可

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
全面日志管理的单一视窗