Linux syslog 是一种系统日志机制,用于收集、存储和转发系统及应用程序的日志信息。它是 Linux/Unix 系统中最传统、最核心的日志体系之一。
syslog 有两层含义:
一种协议(Syslog Protocol)
定义在 RFC 5424 / RFC 3164 中,用于在网络中传输日志消息。
一套实现(syslog 服务)
Linux 系统中负责接收、处理、存储日志的后台服务,例如:
rsyslog(最常见)syslog-ngsyslogdsyslog 主要用于:
日志来源通常分为:
| 来源 | 说明 |
|---|---|
| kernel | 内核日志 |
| service | 系统服务(sshd、cron、nginx 等) |
| application | 应用程序 |
| network | 网络设备(交换机、路由器) |
syslog 定义了 8 个日志级别(数字越小越严重):
| 级别 | 名称 | 含义 |
|---|---|---|
| 0 | emerg | 系统不可用 |
| 1 | alert | 必须立即处理 |
| 2 | crit | 严重错误 |
| 3 | err | 错误 |
| 4 | warning | 警告 |
| 5 | notice | 正常但重要的事件 |
| 6 | info | 一般信息 |
| 7 | debug | 调试信息 |
表示日志的“来源分类”:
| Facility | 说明 |
|---|---|
| auth / authpriv | 认证相关 |
| cron | 定时任务 |
| daemon | 系统守护进程 |
| kern | 内核 |
| 邮件系统 | |
| syslog | syslog 自身 |
| local0–local7 | 自定义用途 |
在 Debian / Ubuntu / CentOS / RHEL 中:
/var/log/syslog # Debian/Ubuntu 主日志
/var/log/messages # CentOS/RHEL 主日志
/var/log/auth.log # 认证日志(Ubuntu)
/var/log/kern.log # 内核日志
syslog() 或写入 /dev/logtail -f /var/log/syslog
journalctl -f
journald 管理日志journald 可:
journalctl)systemd-journald → rsyslog → /var/log/*
Linux syslog 是系统和程序用来“写日记”的机制,用来记录发生了什么,方便你排查问题、监控系统和保证安全。
如果你愿意,我也可以: