温馨提示×

怎样配置ubuntu syslog

小樊
65
2026-07-05 18:08:00
栏目: 智能运维

在 Ubuntu 上配置 syslog,通常指的是配置 rsyslog(Ubuntu 默认使用的 syslog 服务)。下面从安装、配置文件、常见配置示例、重启服务、验证几个方面说明。


一、确认 rsyslog 是否已安装并运行

1. 检查是否安装

dpkg -l | grep rsyslog

如果没有安装:

sudo apt update
sudo apt install rsyslog

2. 检查服务状态

sudo systemctl status rsyslog

如未启动:

sudo systemctl enable rsyslog
sudo systemctl start rsyslog

二、rsyslog 配置文件结构

主配置文件

/etc/rsyslog.conf

额外配置目录(推荐)

/etc/rsyslog.d/

Ubuntu 默认会加载:

$IncludeConfig /etc/rsyslog.d/*.conf

三、基础配置示例

1. 允许接收远程 syslog(UDP / TCP)

编辑配置文件:

sudo nano /etc/rsyslog.conf

取消注释或添加以下内容:

# 提供 UDP syslog 接收
module(load="imudp")
input(type="imudp" port="514")

# 提供 TCP syslog 接收
module(load="imtcp")
input(type="imtcp" port="514")

生产环境建议使用 TCP,更可靠。


2. 按设施(facility)和级别(level)记录日志

示例:将 auth 日志记录到单独文件

sudo nano /etc/rsyslog.d/auth.conf

内容:

auth.*    /var/log/auth.log

3. 将所有日志写入一个文件

*.*    /var/log/all.log

⚠️ 不建议长期使用,日志量会非常大。


4. 过滤日志级别

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

示例:只记录 error 及以上

*.err    /var/log/error.log

四、日志轮转(非常重要)

Ubuntu 使用 logrotate 管理日志大小。

查看 rsyslog 的轮转配置

cat /etc/logrotate.d/rsyslog

示例:

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

五、重启 rsyslog 使配置生效

sudo systemctl restart rsyslog

六、验证 syslog 是否工作

1. 手动发送测试日志

logger "This is a test syslog message"

2. 查看日志

tail -f /var/log/syslog

或:

journalctl -f

七、常见场景示例

✅ 接收远程 Linux 设备 syslog

*.*    /var/log/remote.log

✅ 按 IP 区分远程日志

if $fromhost-ip startswith '192.168.1.' then /var/log/network.log
& stop

八、安全建议

  • 不要开放 514 端口到公网
  • 使用 TCP + 防火墙
  • 可结合 TLS(imtcp + gtls)
  • 日志文件权限:
sudo chmod 640 /var/log/auth.log

如果你有具体需求(例如:接收防火墙/交换机日志、Docker 日志、集中式日志服务器),可以告诉我,我可以给你一份完整可直接用的配置。

0 踩