linux syslog配置核心是facility(日志来源)与level(严重程度)组合构成选择器,决定日志记录范围和动作;facility如auth、daemon、local0–local7等标识源头,level如debug至emerg分级控制输出粒度,规则格式为facility.level action,需注意语法细节与匹配顺序。

Linux 中的 syslog 配置核心在于 Facility(设施)和 Level(级别)的组合控制——它决定了“谁产生的日志”和“什么严重程度的日志该被记录”,二者共同构成一条规则的选择器(selector),再配合动作(如写入文件、转发远程)完成日志分流。
Facility:日志来源分类
Facility 表示日志消息的产生源头,本质是系统或服务的逻辑类别。配置中用关键字标识,不区分大小写,常见且实用的包括:
- auth / authpriv:用户认证相关(login、su、ssh 登录尝试、密码错误等),authpriv 更敏感,通常只记录到 /var/log/secure
- daemon:常规守护进程(如 httpd、rsyslogd、dbus)产生的日志
- kernel(kern):内核自身输出的消息(如驱动加载、硬件检测),直接来自内核 ring buffer
- cron:计划任务执行情况(成功/失败、脚本输出),对应 /var/log/cron
- mail:邮件系统(sendmail、postfix)的连接、投递、拒绝等事件
- user:默认设施,当程序未显式指定 facility 时归入此类
- local0–local7:8 个预留通道,供自定义应用(如 Nginx、Zabbix Agent)主动调用 logger 或 syslog() 发送日志
Level:日志严重性分级
Level 描述事件紧急程度,按从低到高排序,**越高级别越严格,只记录等于或高于该级别的消息**。例如 auth.info 会记录 info、notice、warning、err 等,但不记录 debug。
- debug:调试信息,开发阶段使用,生产环境一般关闭
- info / notice:常规运行状态(如服务启动)、需关注但不干扰功能的提示(如证书即将过期)
- warning / warn:潜在问题(磁盘空间不足、配置项弃用),尚未导致故障
- err / error:明确错误(连接拒绝、权限 denied、模块加载失败)
- crit:关键组件异常(数据库连接中断、主进程崩溃)
- alert / emerg:必须立即人工介入(root 文件系统只读、SSH 被暴力破解成功)
注意:none 是特殊值,用于屏蔽某 facility 的全部日志(如 mail.none);* 在 level 位置表示“所有级别”(如 auth.*)。
使用ydata-profiling(前身为pandas-profiling)生成全面的数据质量报告,包含相关性分析、缺失值模式和基数检测。导出交互式HTML仪表板和JSON摘要。
配置规则写法与常见误区
在 /etc/rsyslog.conf 或 /etc/rsyslog.d/*.conf 中,一条典型规则格式为:
facility.level action
关键细节:
- facility 和 level 之间用英文句点
.连接,中间**不能有空格** - 多个 facility 可用逗号分隔(
auth,authpriv.info),多个 level 用分号(auth.info;auth.debug) - 使用
=可精确匹配单一级别(auth.=info仅记录 info 级别) - 以
;分隔多条规则时,后一条不会继承前一条的 facility —— 每条 selector 必须完整写出 - 规则顺序重要:rsyslog 自上而下匹配,**先匹配的规则优先生效**;若某条规则已将日志写入文件并加了
~(弃用符),后续同源日志将不再处理
实际配置建议
合理设置 Facility 和 Level 能显著降低日志噪音、提升排查效率:
- 对安全敏感服务(SSH、sudo),建议用
authpriv.warning记录警告及以上,避免刷屏式 info 日志 - 调试新部署的服务时,可临时启用
local5.debug并定向到独立文件,上线后调回local5.notice - 避免全局使用
*.info,它会把 kernel、mail、cron 全部混入 /var/log/messages,干扰主线程分析 - 用
rsyslogd -N1检查配置语法是否正确,再systemctl reload rsyslog生效










