温馨提示×

什么是linux syslog服务

小樊
41
2026-09-20 01:02:01
栏目: 智能运维

Linux syslog 服务是 Linux 系统中用于集中收集、记录和管理系统及应用程序日志的日志系统。它的作用是把分散在各个程序、内核、服务的消息统一记录下来,方便排查问题和监控系统状态。


一、什么是 syslog

syslog 最早源自 BSD Unix,是一套日志消息标准(协议),后来成为类 Unix 系统(包括 Linux)的通用日志方案。

在 Linux 中,“syslog 服务”通常指:

  • syslog 守护进程(如 syslogd、rsyslogd、syslog-ng)
  • 一套日志格式和分发规则

二、syslog 能做什么

  1. 收集日志
    • 内核日志(kernel)
    • 系统服务日志(cron、sshd、dhcp 等)
    • 应用程序日志
  2. 分类日志
    • 按 设施(facility):如 auth、mail、kern、daemon
    • 按 级别(severity):如 debug、info、warning、error
  3. 存储或转发
    • 写入本地文件(如 /var/log/messages)
    • 发送到远程日志服务器
    • 按条件过滤、丢弃或报警

三、核心概念

1. Facility(日志来源)

常见设施:

  • kern:内核
  • auth / authpriv:认证相关
  • daemon:系统守护进程
  • mail:邮件系统
  • cron:定时任务
  • local0~local7:自定义用途

2. Severity(日志级别)

从低到高(严重度递增):

debug < info < notice < warning < err < crit < alert < emerg

3. 日志格式示例

Jun 10 10:22:15 hostname sshd[1234]: Accepted password for root

包含:

  • 时间
  • 主机名
  • 服务名
  • 进程 ID
  • 消息内容

四、常见的 syslog 实现

1. 传统 syslogd

  • 早期使用
  • 功能较简单

2. rsyslog(最常用)

  • 现代 Linux 默认(RHEL/CentOS/Ubuntu)
  • 支持:
    • 正则过滤
    • 远程日志(TCP/UDP)
    • 数据库写入
  • 配置文件:/etc/rsyslog.conf

3. syslog-ng

  • 功能强大
  • 常用于企业环境

五、常见日志文件位置

文件 内容
/var/log/messages 系统通用日志
/var/log/syslog Ubuntu 通用日志
/var/log/auth.log 登录、认证
/var/log/kern.log 内核日志
/var/log/cron 定时任务

六、简单示例

rsyslog 规则示例

# 所有 auth 相关错误日志
auth.err    /var/log/auth.err

# 把 mail 日志发送到远程服务器
mail.*      @192.168.1.10:514

七、和 systemd 的关系

现代 Linux 常使用 systemd + journald:

  • journald 收集日志
  • 可通过 journalctl 查看
  • rsyslog 可从 journald 读取并写文件
journalctl -u sshd

八、一句话总结

Linux syslog 服务是系统的“黑匣子”,负责把系统运行过程中发生的一切记录下来,供管理员查看和分析。

如果你愿意,我也可以帮你:

  • 配置 rsyslog 远程日志
  • 分析某个日志文件
  • 对比 syslog 和 journald

0 踩