跳转到内容

查看系统日志 ​

出问题时,日志是第一手证据。完成后,你知道某类问题该看哪一份日志、怎么在界面里搜索和下载、什么时候该切到命令行用 journalctl,以及怎么把日志同时发到另一台日志服务器。

界面里的日志 ​

打开 诊断 → 系统日志(Diagnostics → System Logs),有两个标签:日志(Logs)和 远程(Remote)。

在 日志 标签页:

  1. 从顶部的下拉框选一个日志,下拉框的占位文字是「选择一个系统日志……」。
  2. 表格显示时间和消息两列,默认最新的在前,每页 15 行。
  3. 搜索框在服务器端过滤,适合找关键字,例如用户名、设备名、错误码。
  4. 点 下载(Download)可以把当前选中的那份日志保存下来,求助时用得上。

界面最多读取日志末尾的 100000 行,更早的内容要用命令行看。

下拉框里有哪些日志 ​

OMV 8 里,大部分日志是系统日志服务(systemd 日志)按条件过滤出来的视图,只有少数是文件。

下拉项(官方中文)内容什么时候看
系统日志(Syslog)全部日志,不过滤不确定看哪份时先看这份
验证(Authentication)登录和认证:Web 界面、SSH、sudo登录失败、账户被锁、有人在猜密码
内核(Kernel)内核消息硬盘 I/O 错误、USB 设备掉线、网卡链路变化、内存不足杀进程
启动(Boot)本次启动以来的日志刚开机后服务没起来
守护进程(Daemon)系统服务产生的日志某个服务异常
消息(Messages)按优先级和设施过滤后的一部分消息比系统日志少,找错误以系统日志和内核为准
S.M.A.R.T.smartd 对硬盘的检查结果硬盘告警
Rsync - 任务/var/log/rsync.log,rsync 任务和 USB 备份的输出备份没成功
Rsync - 服务器rsync 守护进程的日志别的机器往你这备份出问题
SMB/CIFS - 审核共享上的文件操作审核记录要先在共享里启用审核文件操作,见 SMB 进阶
更新管理/var/log/apt/term.log,apt 的终端输出更新失败

装了插件会增加新的日志,例如 restic、backup、NUT。备份插件另有 /var/log/omv-backup.log,Compose 的恢复日志是 /var/log/omv-compose-restore.log。

按症状找日志 ​

症状先看
Web 界面或 SSH 登录失败验证
共享连不上、要密码系统日志,搜 smbd;见SMB 访问被拒绝
硬盘不见了、文件系统变只读内核,搜 I/O error、ata、sd、usb;再看 S.M.A.R.T.
更新失败更新管理
备份任务失败Rsync - 任务,或插件自己的日志
机器莫名重启启动,以及下面的 journalctl -b -1
点应用报错系统日志和守护进程,搜 engined,见应用配置时报错

用 journalctl 补充 ​

界面只能看过滤后的内容、最近的 100000 行。需要看某个服务、某个时间段或上一次启动,用 OMV 的 shell,以 root 身份执行,下面都是只读命令:

sh
# 本次启动以来的错误
journalctl -p err -b

# 某个服务最近 100 行,服务名例如 smbd、nginx、openmediavault-engined、ssh
journalctl -u <服务名> -n 100

# 上一次启动的日志(前提是日志被持久化保存)
journalctl -b -1

# 实时跟踪,按 Ctrl+C 退出
journalctl -f

# 内核消息,带可读时间
dmesg -T | tail -n 50

journalctl -b -1 能不能用,取决于日志是不是持久化保存的。装了 writecache 并把日志存储设成 volatile 时,日志在内存里,重启就没了,见 writecache 插件。OMV 还把日志占用上限设成了 1 GB。

转发到远程日志服务器 ​

远程 标签页可以把系统日志转发给另一台 syslog 服务器,这样机器重启或损坏后,日志还在别处:

  1. 勾选 已启动,作用是「启用 syslog 远程日志到指定的主机」。
  2. 填写 主机、端口(默认 514)和 协议(UDP 或 TCP,默认 UDP)。
  3. 保存,点黄色提示条上的 应用。

UDP 不保证送达,想要可靠一些选 TCP。这个页面只有这三项,没有加密选项,所以只转发到你信任的局域网里的日志服务器。

隐私 ​

日志里有主机名、IP、用户名、共享名,有时还有文件路径。发到论坛或提 issue 之前先脱敏,见如何有效求助。

自动告警也来自日志 ​

OMV 会盯着日志里的几类事件并发邮件:登录失败导致账户被锁(验证 事件),以及内核日志里的块设备 I/O 错误(杂项 事件,8.5.10 起)。想收到这些,要先配好邮件通知,并在 系统 → 通知 → 事件(System → Notification → Events)里勾选对应项。

检查结果 ​

  1. 在下拉框里分别打开 系统日志、验证、内核,每份都能看到近期的内容。
  2. 用搜索框找一个你认识的关键字,比如你的用户名。
  3. 下载一份日志,在电脑上能打开。
  4. 在 shell 里运行 journalctl -p err -b,看看本次启动以来有没有你该关心的错误。
  5. (可选)配置远程日志,在日志服务器上确认收到了消息。

常见问题 ​

日志表格是空的。 先换一份日志试试;某份日志对应的服务没运行或没有产生过消息时是空的,例如 SMB 审核日志在没启用审核时就是空的。

找不到更早的日志。 界面只读末尾 100000 行,日志占用也有上限。用 journalctl --since 指定时间范围,更早的可能已被清理。

日志里一直在刷同一个错误。 先记下错误的时间和第一次出现的时间,再对照那个时间点前后做过什么操作。不要急着清空日志,那会销毁证据。

参考资料 ​

  • 日志的来源和过滤条件定义在 OMV 源码的 usr/share/openmediavault/engined/inc/90logfilespec.inc。
  • journald 的占用上限由 OMV 的 systemd-journald 部署状态设置,环境变量为 OMV_SYSTEMD_JOURNALD_SYSTEMMAXUSE。

OpenMediaVault 非官方中文使用指南,与 openmediavault 项目及其开发者无隶属关系。