温馨提示×

怎样配置linux syslog

小樊
40
2026-07-15 13:10:44
栏目: 智能运维

在 Linux 中配置 syslog 主要取决于你使用的是 rsyslog(最常见)还是 syslog-ng。下面以 rsyslog 为主,系统地说明如何配置。


一、确认你使用的是哪种 syslog

ps -ef | grep syslog

常见情况:

  • /usr/sbin/rsyslogdrsyslog
  • /usr/sbin/syslog-ngsyslog-ng

目前大多数发行版(CentOS 7+/RHEL/Ubuntu)默认使用 rsyslog


二、rsyslog 配置文件结构

1️⃣ 主配置文件

/etc/rsyslog.conf

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

/etc/rsyslog.d/*.conf

建议把自定义规则放到 /etc/rsyslog.d/,不要直接改主配置文件。


三、rsyslog 基本配置示例

1️⃣ 查看默认配置(简化)

# 加载模块
module(load="imuxsock")
module(load="imjournal")

# 全局配置
global(workDirectory="/var/lib/rsyslog")

# 规则
*.info;mail.none;authpriv.none;cron.none    /var/log/messages
authpriv.*                                  /var/log/secure
mail.*                                      -/var/log/maillog
cron.*                                      /var/log/cron
*.emerg                                     :omusrmsg:*

四、rsyslog 规则语法详解

规则格式

facility.priority    action

1️⃣ facility(日志来源)

常见:

  • auth / authpriv:认证
  • cron:定时任务
  • daemon:守护进程
  • kern:内核
  • mail
  • user
  • local0local7(常用于应用程序)

2️⃣ priority(日志级别)

从低到高:

debug
info
notice
warning / warn
err / error
crit
alert
emerg / panic

示例:

  • *.info:所有 info 及以上
  • mail.err:仅 mail 的错误
  • local0.debug:debug 及以上

3️⃣ action(日志去向)

动作 示例
文件 /var/log/app.log
异步写 -/var/log/app.log
远程 @192.168.1.10
用户 :omusrmsg:root

五、常见配置案例

✅ 1. 自定义应用日志(推荐)

vim /etc/rsyslog.d/myapp.conf
local0.*    /var/log/myapp.log

应用示例(发送日志):

logger -p local0.info "myapp test log"

✅ 2. 日志按日期切割(rsyslog 7+)

module(load="imfile")

input(type="imfile"
      File="/var/log/myapp.log"
      StateFile="myapp.log.state"
      Tag="myapp")

通常配合 logrotate 使用。


✅ 3. 接收远程 syslog(集中日志服务器)

编辑 /etc/rsyslog.conf

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

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

重启:

systemctl restart rsyslog

客户端发送:

*.* @@192.168.1.10:514

六、常见日志文件说明

文件 内容
/var/log/messages 系统通用日志
/var/log/secure 认证、SSH
/var/log/cron 定时任务
/var/log/dmesg 内核启动
/var/log/syslog Ubuntu 常见

七、重启服务

systemctl restart rsyslog
systemctl enable rsyslog

八、排错建议

查看服务状态

systemctl status rsyslog

测试日志

logger "test syslog message"
tail -f /var/log/messages

查看端口监听

ss -lunp | grep 514

九、syslog-ng 简要说明(如需要)

配置文件:

/etc/syslog-ng/syslog-ng.conf

示例:

source s_src { system(); internal(); };
destination d_file { file("/var/log/my.log"); };
log { source(s_src); destination(d_file); };

如果你愿意,可以告诉我:

  • ✅ 你的 Linux 发行版
  • ✅ 是本地日志还是集中日志
  • ✅ 是否为 Docker / Kubernetes 环境

我可以给你 完全贴合你环境的配置示例

0