温馨提示×

怎样配置Debian syslog

小樊
58
2026-08-18 02:33:41
栏目: 智能运维

在 Debian 系统中,syslog 服务通常由 rsyslog 提供(Debian 默认使用 rsyslog)。下面从安装、配置、日志位置、常见示例、重启与排错几个方面说明如何配置 Debian 的 syslog。


一、确认并安装 rsyslog

大多数 Debian 已默认安装:

dpkg -l | grep rsyslog

如未安装:

sudo apt update
sudo apt install rsyslog

启动并设置开机自启:

sudo systemctl enable rsyslog
sudo systemctl start rsyslog

查看状态:

systemctl status rsyslog

二、rsyslog 配置文件结构

1️⃣ 主配置文件

/etc/rsyslog.conf

2️⃣ 额外配置目录(推荐)

/etc/rsyslog.d/

系统会按字母顺序加载该目录下的 .conf 文件。


三、基础配置说明(rsyslog.conf)

典型规则格式:

facility.priority    action

示例说明

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

常见 facility

facility 含义
auth / authpriv 认证相关
cron 定时任务
daemon 守护进程
kern 内核
mail 邮件
user 用户程序
local0–local7 自定义

常见 priority(从低到高)

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

四、常见日志文件位置

日志 路径
系统通用 /var/log/syslog
启动相关 /var/log/messages
认证 /var/log/auth.log
定时任务 /var/log/cron.log
邮件 /var/log/mail.log

Debian 默认 系统日志通常在 /var/log/syslog


五、自定义日志规则示例

示例 1:将 SSH 日志单独存放

sudo nano /etc/rsyslog.d/ssh.conf
:programname, isequal, "sshd" /var/log/ssh.log
& stop

重启 rsyslog:

sudo systemctl restart rsyslog

示例 2:接收远程 syslog(集中日志服务器)

编辑 /etc/rsyslog.conf:

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

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

重启后,Debian 可作为日志服务器。


示例 3:将日志转发到远程服务器

*.* @@192.168.1.10:514
  • @ = UDP
  • @@ = TCP

六、日志轮转(logrotate)

rsyslog 本身不负责轮转,由 logrotate 管理:

/etc/logrotate.d/rsyslog

示例:

/var/log/syslog
{
    rotate 7
    daily
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate 1>/dev/null || true
    endscript
}

七、查看与测试

手动发送测试日志

logger "This is a test syslog message"

查看:

tail -f /var/log/syslog

八、常见问题排查

rsyslog 未启动

systemctl status rsyslog
journalctl -u rsyslog

配置文件错误

rsyslogd -N1

权限问题

确保日志目录可写:

ls -ld /var/log

九、Debian 12 注意事项(systemd)

Debian 12 中:

  • journald 也记录日志
  • rsyslog 从 journal 读取日志

查看 journal:

journalctl
journalctl -u ssh

十、总结

✅ Debian 默认使用 rsyslog
✅ 配置文件在 /etc/rsyslog.conf 和 /etc/rsyslog.d/
✅ 支持本地、远程、分类、集中日志
✅ 配合 logrotate 管理日志大小


如果你需要:

  • 配置为日志服务器
  • 只记录某个程序
  • 与 ELK / Graylog 对接
  • Docker / Kubernetes 场景

可以告诉我你的具体使用场景,我可以给你更精确的配置。

0 踩