查看日志#

日志在事情出错时非常有用,可以帮助我们拼凑出问题所在。它们包含了软件各个部分在出现问题之前运行情况的详细记录,可以帮助我们理解问题并进行修复。

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

警告

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

安装程序日志#

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

JupyterHub 日志#

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

sudo journalctl -u jupyterhub

此命令显示来自 JupyterHub 本身的日志。有关浏览日志的提示,请参阅 journalctl 提示

Traefik Proxy 日志#

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