Ubuntu Syslog日志级别详解:如何设置
导读:Ubuntu Syslog 日志级别与设置指南 一 日志级别与设施速览 日志级别(Priority,数值越小越严重,范围 0–7): emerg(0 /panic:系统不可用,需立即处理 alert(1 :必须立即采取行动 crit(2...
Ubuntu Syslog 日志级别与设置指南
一 日志级别与设施速览
- 日志级别(Priority,数值越小越严重,范围 0–7):
- emerg(0)/panic:系统不可用,需立即处理
- alert(1):必须立即采取行动
- crit(2):严重错误,影响功能
- err(3):一般性错误
- warning(4):警告,潜在问题
- notice(5):正常但重要
- info(6):一般信息
- debug(7):调试信息,最详细
- 特殊关键字:none(不记录该设施的任何消息)
- 常用设施(Facility):
- kern(内核)、user(用户进程)、mail(邮件)、daemon(守护进程)
- auth / authpriv(认证与安全)、syslog(日志系统自身)
- cron(计划任务)、lpr(打印)、news、uucp
- local0–local7(自定义应用)
- 匹配规则要点:
- 选择器语法:facility.level
- 默认含义为“此级别及更严重”,可用操作符修改:=(仅此级别)、!(排除此级别及更严重)
- 多个选择器可用**; **分隔,后面的会覆盖前面的匹配结果。
二 在 rsyslog 中设置日志级别
- Ubuntu 默认使用 rsyslog。规则通常写在 /etc/rsyslog.conf 或 /etc/rsyslog.d/*.conf 中,语法为“选择器 + 动作”。常见动作包括写入文件(如 /var/log/*.log)、发送到远程主机(如 @192.0.2.10 或 @@192.0.2.10 表示 UDP/TCP)。修改后执行 sudo systemctl restart rsyslog 生效。
- 常用配置示例(写入本地并按级别过滤):
说明:# 记录所有设施的 warning 及以上到系统日志 *.warning /var/log/syslog # 仅记录内核的 emerg 级别 kern.=emerg /dev/console # 记录认证相关所有级别,但排除 mail 的所有级别 auth,authpriv.* /var/log/auth.log mail.none /var/log/auth.log # 将全部日志发送到远程 syslog 服务器(UDP 514) *.* @192.0.2.10:514- = 表示“仅此级别”;若省略,则含义为“此级别及更严重”。
- none 可用于排除某些设施的日志混入目标文件。
三 远程日志与接收端配置
- 作为客户端发送日志(示例见上节末尾的 @192.0.2.10:514)。
- 作为服务器接收日志(在接收端启用模块与端口监听,编辑 /etc/rsyslog.conf 或相应包含文件):
保存后重启 rsyslog:sudo systemctl restart rsyslog。注意防火墙放行 UDP/TCP 514。# 启用 UDP 514 接收 module(load="imudp") input(type="imudp" port="514") # 启用 TCP 514 接收 module(load="imtcp") input(type="imtcp" port="514")
四 与 systemd-journald 和应用程序的配合
- systemd-journald 与 rsyslog 可并行工作:journald 负责采集与持久化(由 /etc/systemd/journald.conf 控制,如 SystemMaxUse=、SystemMaxFileSize= 等),rsyslog 负责按设施/级别与文件、网络等动作进行转发与落盘。查看与轮转可用 journalctl 与 logrotate。
- 应用自身也常具备日志级别选项,例如:
- Nginx:在 /etc/nginx/nginx.conf 中设置 error_log /var/log/nginx/error.log warn; (可改为 debug 以开启调试)
- Apache:在配置中使用 LogLevel debug 修改应用配置后需重启对应服务。
五 实用排查与最佳实践
- 快速查看与过滤:
- 查看系统日志:journalctl -xe
- 按级别过滤:journalctl -p warning(或 err、info 等)
- 避免日志风暴:生产环境常将全局或多数设施设为 warning 或更高;调试阶段再临时下调到 info/debug。
- 精细分流:将 auth,authpriv 单独记录到 /var/log/auth.log,并对易产生大量日志的设施使用 .none 排除,保持关键日志可读。
- 变更生效:每次修改 rsyslog 配置后执行 sudo systemctl restart rsyslog;远程接收需确保网络与防火墙策略正确。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Syslog日志级别详解:如何设置
本文地址: https://pptw.com/jishu/774012.html
