为什么 journactl 会记录所有sudo命令,某些服务却只记录重启信息
时间: 2023-07-07 18:22:01 浏览: 96
journald 记录日志的信息量和级别可以通过配置文件 `/etc/systemd/journald.conf` 进行控制。默认情况下,journald 会记录大部分系统活动的日志,包括 sudo 命令的详细信息,但是某些服务可能只记录重要的事件,比如重启信息。
这是因为 journald 可以为每个日志条目设置一个日志级别。日志级别分为 8 个级别,从低到高分别是:
- emerg:紧急情况,系统不可用。
- alert:应该被立即改正的情况,如系统数据库被破坏,ISP连接丢失。
- crit:重要情况,如硬盘错误,备用连接丢失。
- err:错误情况,如操作失败,丢失数据,不能执行某个操作。
- warning:警告情况,如磁盘空间不足,DHCP服务器无响应。
- notice:普通重要情况,如进程启动。
- info:信息消息,如系统启动,关闭。
- debug:调试消息,用于开发目的。
默认情况下,journald 记录所有日志级别的信息,但是可以通过配置文件中的 `MaxLevelStore` 选项来限制 journald 记录的最高日志级别。例如,如果你想要 journald 只记录 `err` 级别及以上的日志信息,可以将 `MaxLevelStore` 设置为 `err`:
```
MaxLevelStore=err
```
此外,每个服务也可以通过 `systemd-journald.service` 单元文件中的 `SystemCallFilter` 选项来控制记录的信息。该选项可以限制 journald 记录的系统调用,从而限制记录的信息。如果服务只需要记录重要的事件,可以将 `SystemCallFilter` 设置为只记录系统调用 `write, futex, sigreturn`:
```
SystemCallFilter=~@clock,@cpu-emulation,@debug,@module,@obsolete,@raw-io,read,write,futex,sigreturn
```
综上所述,journald 记录的信息量和级别可以通过配置文件和服务单元文件进行控制,从而满足不同的需求。
阅读全文