温馨提示×

linux syslog怎么用

小樊
41
2026-07-15 13:12:42
栏目: 智能运维

Linux 的 syslog 是用来记录系统日志的机制,几乎所有系统事件、服务报错、内核信息都会通过它记录。下面从概念 → 常用命令 → 配置 → 实战示例一步步说明。


一、syslog 是什么?

syslog 是一个日志标准协议,包括:

  • 日志产生者:程序、内核、服务
  • 日志收集者:syslog 服务(rsyslog / syslog-ng / journald)
  • 日志存储位置/var/log/

常见实现:

  • rsyslog(最常见)
  • syslog-ng
  • systemd-journald(现代系统)

⚠️ 现在大多数 Linux(CentOS 7+、Ubuntu 16+)实际用的是 rsyslog + systemd-journald


二、常见日志文件位置

/var/log/messages      # 通用系统日志(CentOS/RHEL)
/var/log/syslog        # 通用系统日志(Ubuntu/Debian)
/var/log/secure        # 安全、SSH 登录日志(CentOS)
/var/log/auth.log      # 认证日志(Ubuntu)
/var/log/cron          # 定时任务日志
/var/log/dmesg         # 内核启动日志
/var/log/kern.log      # 内核日志

三、查看 syslog 的常用命令

1️⃣ 实时查看日志(最常用)

tail -f /var/log/syslog
# 或
tail -f /var/log/messages

2️⃣ 查看最近 50 行

tail -n 50 /var/log/syslog

3️⃣ 搜索关键字

grep "error" /var/log/syslog
grep "sshd" /var/log/auth.log

4️⃣ 查看指定时间日志

grep "2025-01-20 10:" /var/log/syslog

四、使用 logger 手动写 syslog(非常实用)

基本用法

logger "这是一条测试日志"

查看:

tail /var/log/syslog

指定级别和分类

logger -p auth.warning "认证异常"
logger -p cron.info "定时任务执行"

常见级别(从高到低):

级别 含义
emerg 系统不可用
alert 必须立即处理
crit 严重错误
err 错误
warning 警告
notice 普通但重要
info 信息
debug 调试

五、rsyslog 配置文件(核心)

配置文件位置

/etc/rsyslog.conf
/etc/rsyslog.d/*.conf

规则格式

设施.级别    日志位置

示例:

*.info;mail.none;authpriv.none    /var/log/messages
authpriv.*                        /var/log/secure

常见设施:

  • auth / authpriv:认证
  • cron:定时任务
  • kern:内核
  • mail:邮件
  • user:用户程序
  • local0 ~ local7:自定义

六、远程 syslog(集中日志)

服务端(接收日志)

# /etc/rsyslog.conf
module(load="imudp")
input(type="imudp" port="514")

重启:

systemctl restart rsyslog

客户端(发送日志)

*.* @@192.168.1.10:514

七、systemd 系统(journalctl)

查看所有日志

journalctl

实时查看

journalctl -f

查看某服务日志

journalctl -u sshd

查看本次启动日志

journalctl -b

八、常见排错场景

SSH 登录失败

grep "Failed" /var/log/auth.log

服务启动失败

journalctl -u nginx

磁盘满导致日志写不进去

df -h

九、一句话总结

syslog = 系统日志机制
rsyslog 是默认实现
/var/log 是日志家
logger 用来写日志
journalctl 是 systemd 日志工具


如果你愿意,我可以:

  • ✅ 给你一个 rsyslog 配置实战示例
  • ✅ 教你 如何搭建日志服务器
  • ✅ 对比 syslog vs journald
  • ✅ 针对 CentOS / Ubuntu 单独说明

你现在用的是 CentOS 还是 Ubuntu?

0