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