查看日志#

日志在出现问题时,对于拼凑出哪里出了问题非常有用。它们包含在事情变糟之前,单个软件部件正在做什么的取证记录,可以帮助我们理解问题以便我们能够修复它。

TLJH 从 JupyterHub、Traefik 代理以及每个单独用户的笔记本服务器收集日志。所有日志都可以通过 journalctl 访问。安装程序还会将日志写入磁盘,以帮助解决安装程序未成功的情况。

警告

如果您向他人提供日志片段以帮助调试您可能遇到的问题,请务必先从片段中删除任何私人信息(例如用户名)!

安装程序日志#

JupyterHub 安装程序将日志消息写入 /opt/tljh/installer.log。如果安装因任何原因失败,这非常有用。

JupyterHub 日志#

JupyterHub 负责用户身份验证以及启动/停止用户笔记本服务器。当 JupyterHub 出现一般性系统问题(而不是特定用户的笔记本的特定问题)时,查看 JupyterHub 日志是很好的第一步。

sudo journalctl -u jupyterhub

此命令显示 JupyterHub 本身的日志。有关导航日志的提示,请参阅 journalctl 提示

Traefik 代理日志#

Traefik 必要时将流量重定向到 JupyterHub / 用户笔记本服务器并处理 HTTPS。如果您在浏览器中只能看到一行神秘的错误消息,或者您在使用 HTTPS 时遇到问题,请查看此项。

sudo journalctl -u traefik

此命令显示 Traefik 的日志。有关导航日志的提示,请参阅 journalctl 提示

用户服务器日志#

每个用户都有自己的笔记本服务器,并且此服务器也会生成日志。当用户可以启动其服务器但在之后遇到问题时,查看这些日志可能很有用。

sudo journalctl -u jupyter-<name-of-user>

此命令显示给定用户的笔记本服务器的日志。您可以从管理页面右上角的“用户”按钮获取所有用户的列表。有关导航日志的提示,请参阅 journalctl 提示

journalctl 提示#

journalctl 有很多选项可以使您的管理员生活更轻松。以下是一些关于有效使用 journalctl 的基本提示。

  1. 当查看完整日志(通过 sudo journalctl -u <some-name>)时,输出通常不适合一屏。因此,它使用 less 进行分页。这允许您上下滚动、搜索特定单词等。一些常见的键盘快捷键是

    • 箭头键上下左右移动

    • G 导航到日志末尾

    • g 导航到日志开头

    • / 后跟要搜索的字符串,然后按 enter 键,从屏幕当前位置到日志末尾搜索日志。如果有多个结果,您可以使用 n 键跳转到下一个搜索结果。使用 ? 而不是 / 从当前位置向后搜索

    • qCtrl + C 退出

    如果您愿意,还有许多 其他命令和选项 可以探索。

  2. 在任何 journalctl 命令中添加 -f 以查看实时日志输出,该输出会随着新日志行的写入而更新。这在主动调试问题时非常有用。

    例如,要查看 JupyterHub 的实时日志,您可以运行

    sudo journalctl -u jupyterhub -f