查看日志#
日志在出现问题时,对于拼凑出哪里出了问题非常有用。它们包含在事情变糟之前,单个软件部件正在做什么的取证记录,可以帮助我们理解问题以便我们能够修复它。
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
的基本提示。
当查看完整日志(通过
sudo journalctl -u <some-name>
)时,输出通常不适合一屏。因此,它使用 less 进行分页。这允许您上下滚动、搜索特定单词等。一些常见的键盘快捷键是箭头键上下左右移动
G
导航到日志末尾g
导航到日志开头/
后跟要搜索的字符串,然后按enter
键,从屏幕当前位置到日志末尾搜索日志。如果有多个结果,您可以使用n
键跳转到下一个搜索结果。使用?
而不是/
从当前位置向后搜索q
或Ctrl + C
退出
如果您愿意,还有许多 其他命令和选项 可以探索。
在任何
journalctl
命令中添加-f
以查看实时日志输出,该输出会随着新日志行的写入而更新。这在主动调试问题时非常有用。例如,要查看 JupyterHub 的实时日志,您可以运行
sudo journalctl -u jupyterhub -f