故障排除 (AEN 4.1.0)

概览

这是 Anaconda Enterprise Notebooks 部署的故障排除指南。

正常操作

服务器

Anaconda Enterprise Notebooks Server 安装在 /opt/wakari/wakari-server.

您可以通过以下方式获取服务器进程的状态:

# service wakari-server status 
wk - server                         RUNNING     pid  20758 ,  uptime  5  days ,  0 : 30 : 23 
worker                            RUNNING     pid  20757 ,  uptime  5  days ,  0 : 30 : 23

或者:

root@server # ps -Hu wakari
  PID TTY 时间 CMD
20756?00:02:26 .supervisord
20757?00:05:58 mtq-worker
20758?00:00:08 周服务器
20765?00:02:00 周服务器
20766?00:01:55 周服务器
20767?00:02:20 周服务器
20770?00:02:02 周服务器
主管 细节
描述 管理wakari-worker和多个进程wk-server
用户 wakari
配置 /opt/wakari/wakari-server/etc/supervisord.conf
日志 /opt/wakari/wakari-server/var/log/supervisord.log
控制 service wakari-server
港口 没有任何
周服务器 细节
描述 处理用户交互并将作业传递到 wakari 网关。对它的访问由 nginx 管理。
用户 wakari
命令 /opt/wakari/wakari-server/bin/wk-server
配置 /opt/wakari/wakari-server/etc/wakari/
控制 service wakari-server
日志 /opt/wakari/wakari-server/var/log/wakari/server.log
港口 5000(仅在本地主机上)
瓦卡里工人 细节
描述 从异步执行任务 wk-server
用户 wakari
日志 /opt/wakari/wakari-server/var/log/wakari/worker.log
控制 service wakari-server
nginx 细节
描述 提供静态文件并充当所有其他请求的代理,这些请求传递给在端口 5000 上运行的 wk-server 进程。
用户 nginx
配置 /etc/nginx/nginx.conf /opt/wakari/wakari-server/etc/conf.d/www.enterprise.conf
日志 /var/log/nginx/woc.log /var/log/nginx/woc-error.log
控制 service nginx status
港口 80

Nginx 至少运行两个进程: - 以 root 用户身份运行的主进程 - 以 nginx 用户身份运行的工作进程

网关

Anaconda Enterprise Notebooks Gateway 安装在 /opt/wakari/wakari-gateway.

您可以通过以下方式获取网关进程的状态:

# service wakari-gateway status 
wk - gateway                        RUNNING     pid  1137 ,  uptime  5  days ,  1 : 59 : 28

或者:

root@gateway # ps -Hu wakari
  PID TTY 时间 CMD
 第1136章 00:01:59 .supervisord
 第1137章 00:00:02 周网关
主管 细节
描述 管理wk-gateway流程。
用户 wakari
配置 /opt/wakari/wakari-gateway/etc/supervisord.conf
日志 /opt/wakari/wakari-gateway/var/log/supervisord.log
控制 service wakari-gateway
港口 没有任何
瓦卡里网关 细节
描述 将来自 Anaconda Enterprise Notebooks Server 的请求传递到计算节点。
用户 wakari
配置 /opt/wakari/wakari-gateway/etc/wakari/wk-gateway-config.json
日志
/opt/wakari/wakari-gateway/var/log/wakari/gateway.application.log
/opt/wakari/wakari-gateway/var/log/wakari/gateway.log
工作目录 / (根)
港口 8089(网络缓存)

计算节点

Anaconda Enterprise Notebooks Compute 安装在 /opt/wakari/wakari-compute.

您可以通过以下方式获取计算节点进程的状态:

# service wakari-compute status 
wk - compute                        RUNNING     pid  22050 ,  uptime  3  days ,  1 : 03 : 19

或者:

root@compute # ps -Hu wakari
  PID TTY 时间 CMD
 1150?00:02:01 .supervisord
 第1152章 00:00:01 周计算

wk-compute 将按顺序加载每个配置文件:

  • /etc/wakari/config.json
  • /etc/wakari/compute-launcher-config.json
  • ./compute-launcher-config.json
  • -c选项指定的配置文件

如果在多个文件中指定了一个选项,则遇到的最后一个优先。

主管 细节
描述 管理wk-compute流程。
用户 wakari
配置 /opt/wakari/wakari-compute/etc/supervisord.conf
日志 /opt/wakari/wakari-compute/var/log/supervisord.log
控制 service wakari-compute
工作目录 /opt/wakari/wakari-compute/etc
港口 没有任何
周计算 细节
描述 启动计算进程
用户 wakari
配置 /opt/wakari/wakari-compute/etc/wakari/wk-compute-launcher-config.json /opt/wakari/wakari-compute/etc/wakari/scripts/config.json
日志 /opt/wakari/wakari-compute/var/log/wakari/compute-launcher.application.log /opt/wakari/wakari-compute/var/log/wakari/compute-launcher.log
工作目录 / (根)
控制 service wakari-compute
港口 5002(射频)

项目和权限

项目位于计算节点上的 projectRoot 文件夹中(默认为 /projects)。项目目录在项目第一次启动时创建;启动项目脚本从 /opt/wakari/wakari-compute/lib/node_modules/wakari-compute-launcher/skeleton.

项目目录权限如下:

老板 RWX  用户  创建  项目
 RWX  所有者的组
其他 - X   允许 访问   公共 文件夹的
访问控制列表   RWX 用于 任何 其他 团队 成员

项目目录中的文件和子目录与项目目录具有相同的权限,除了:

  1. 公共文件夹及其中的所有内容都是世界可读的。
  2. 硬链接到根 anaconda 环境 ( /opt/wakari/anaconda) 的任何文件仍归rootwakari 用户所有。

项目文件和目录权限由启动项目脚本维护。项目中的所有文件和目录都将在项目启动时设置其权限,但属于rootor 的文件除外wakari(以避免更改 中链接文件的权限/opt/wakari/anaconda)。因此, wakari用户不应创建旨在与他人共享的项目,因为权限系统将无法正确管理wakari用户拥有的项目文件。

一般故障排除步骤

确保 Anaconda Enterprise Notebooks 服务设置为开机启动

(在所有 3 个组件上:服务器、网关和计算节点)

chkconfig  --列表 |  grep  wakari

如果它们丢失,您可以尝试添加它们:

chkconfig  --添加 [ wakari -服务器| wakari -网关| 家企业 wakari -计算]

然后可以使用以下restart命令安全地启动服务:

service  wakari -服务器 重启
service  wakari -网关 重启
service  wakari -计算 重启

这些命令需要在适当的节点上执行。

确保所有服务都在运行

(见上面的正常操作)。

# service wakari-server status 
wk - server                         RUNNING     pid  20758 ,  uptime  5  days ,  0 : 30 : 23 
worker                            RUNNING     pid  20757 ,  uptime  5  days ,  0 : 30 : 23

root @server  # service nginx status 
nginx  ( pid   26303 )  is  running ...

# service wakari-gateway status 
wk - gateway                        RUNNING     pid  1137 ,  uptime  5  days ,  1 : 59 : 28

# service wakari-compute status 
wk - compute                        RUNNING     pid  22050 ,  uptime  3  days ,  1 : 03 : 19

如果缺少任何进程,请使用上述命令重新启动它们。

检查无关进程

使用以获得下运行的进程的完整列表,用户帐户。ps -Hu wakariwakari

root@server # ps -Hu wakari
  PID TTY 时间 CMD
20756?00:02:26 .supervisord
20757?00:05:58 mtq-worker
20758?00:00:08 周服务器
20765?00:02:00 周服务器
20766?00:01:55 周服务器
20767?00:02:20 周服务器
20770?00:02:02 周服务器

root@server # ps -f -C nginx
UID PID PPID C STIME TTY TIME CMD
根 26303 1 0 12:18 ? 00:00:00 nginx:主进程/usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx 26305 26303 0 12:18?00:00:00 nginx:工作进程

root@gateway # ps -Hu wakari
  PID TTY 时间 CMD
 第1136章 00:01:59 .supervisord
 第1137章 00:00:02 周网关

root@compute # ps -Hu wakari
  PID TTY 时间 CMD
 1150?00:02:01 .supervisord
 第1152章 00:00:01 周计算

什么是正常的:

  • wk-server、wk-gateway 和 wk-compute 进程应该具有由 报告的 PID supervisorctl
  • nginx 主进程应该有 PID 报告 。service nginx status
  • 如果您在一台机器上安装了多个 Anaconda Enterprise Notebooks 组件,则所有已安装组件的进程将显示在该机器上。
  • 在 Compute 节点上,用户当前正在运行的任何 Anaconda Enterprise Notebooks 应用程序都将出现。例如:
root@compute # ps -Hu wakari
  PID TTY 时间 CMD
 1150?00:00:00 .supervisord
 第1152章 00:00:00 周计算
 1340?00:00:00 狂欢
 第1341章 00:00:00 笔记本包装

如果存在额外的 wk-server、wk-gateway、wk-compute 或 supervisord 进程,请使用kill命令删除它们。然后使用上述方法重新启动服务。service SERVICE_NAME restart

检查服务器之间的连通性

服务器到网关

在服务器上,导航到管理/数据中心。对于列表中的每个数据中心,检查从服务器到该网关的连接(在本例中,网关是http://gateway.example.com:8089):

root @server  # curl --connect-timeout 5 http://gateway.example.com:8089 > /dev/null

计算节点的网关

在服务器上,导航到管理员/企业资源。对于列表中的每个计算资源,打开它并检查 URL 字段的内容以确保它以“http”或“https”开头。检查从相应网关到该 URL 的连接。例如,如果 URL 是 http://compute.example.com:5002

root @gateway  # curl --connect-timeout 5 http://compute.example.com:5002 > /dev/null

服务器网关

此路径由网关配置命令使用 wk-gateway-configure。首先,确保网关链接到配置文件中的正确服务器,并且指定了完整的服务器 URL。然后检查与服务器的连接。

root @gateway  # grep WAKARI_SERVER /opt/wakari/wakari-gateway/etc/wakari/wk-gateway-config.json 
  "WAKARI_SERVER" :  "http://wakari.example.com" ,

root @gateway  # curl --connect-timeout 5 http://wakari.example.com > /dev/null 
root @gateway  # curl --connect-timeout 5 http://error.example.com > /dev/null
卷曲 7  无法  连接  错误例子com 端口 80  连接被 拒绝

如果连接失败,请检查以下项目:

  • 确保在服务器上正确配置网关(数据中心)和计算节点(企业资源)。
  • 验证进程是否正在侦听配置的端口:
@server  #netstat的-plt
活动 的互联网 连接  服务器
 的Recv - Q 发送- Q 本地 地址               外国 地址             状态       的PID /节目 名称
的TCP         0       0  * HTTP                       * *                          LISTEN       26409 / nginx的
TCP         0       0  * SSH                        * : *                               986 / sshd
TCP         0       0 本地主机SMTP               * *                          LISTEN       1063 /
TCP         0       0  * commplex -             * *                          LISTEN       26192 /
TCP         0       0 本地主机27017              * *                          LISTEN       29261 / mongod的
TCP         0       0  * SSH                        * *                         聆听      986 / sshd
tcp         0       0 本地主机smtp               * *                          LISTEN       1063 /
  • 检查两台主机上的防火墙设置/日志以确保数据包没有被阻止或丢弃。

检查配置文件语法

使用此命令验证配置文件是否包含有效的 JSON:

root @server   # python -m json.tool /opt/wakari/wakari-server/etc/wakari/*.json 
root @gateway  # python -m json.tool /opt/wakari/wakari-gateway/etc/wakari/*上传.json
@compute  #蟒-m json.tool /opt/wakari/wakari-compute/etc/wakari/*.json

如果文件正确,将显示内容。如果文件中有语法错误,则会显示该消息 。编辑配置文件,确保 JSON 语法正确。No JSON object could be decoded

检查文件所有权

验证 /opt/wakari/anaconda 中的所有文件都属于 user/group wakari

root @server  # 查找 /opt/wakari/anaconda \! -user wakari -print 
root @server  # find /opt/wakari/anaconda \! -group wakari -print

如果输出中列出了任何文件,请修复其所有权:

chown  - R  wakari : wakari  / opt / wakari / anaconda

验证是否启用了 POSIX ACL

acl必须在包含项目根目录的文件系统上启用该选项。

首先,确定项目根目录。如果配置了自定义 projectRoot,您可以通过以下方式确定它:

root @compute  # grep projectRoot /opt/wakari/wakari-compute/etc/wakari/config.json

如果不是,则项目根目录为/projects.

mount列出的选项或默认选项tune2fs 应表明该acl选项已启用。

root @compute  # fs=`df /projects | 尾-1 | cut -d " " -f 1` 
root @compute  # mount | grep $fs 
/ dev / vda  on  /  type  ext4  ( rw ) 
root @compute  # tune2fs -l $fs | grep 选项
默认 挂载 选项    user_xattr  acl

清除浏览器 Cookie

当 Anaconda Enterprise Notebooks 配置更改或软件升级时,浏览器中保留的 cookie 可能会导致问题。清除 cookie 并重新登录可以帮助解决问题。

具体问题

问题 原因 解决方案
浏览器显示“重定向过多” Cookie 已过期 清除浏览器的 cookie 和缓存,然后重试。
supervisorctl 错误:“unix:////opt/wakari/wakari-server/etc/supervisor.sock 没有这样的文件” “supervisord”未在服务器上运行 如上所述,确保在 crontab 中包含 supervisord。然后手动启动supervisord。
删除项目时未找到数据中心消息 数据中心已被移除 以 root 身份运行 /opt/wakari/wakari-server/bin/wk-server-admin remove-project --db-only <user> <project>
忘记管理员密码   使用 ssh 以 root 身份登录服务器,并运行命令. 然后,您可以使用您选择的新密码以用户身份登录 Anaconda Enterprise Notebooks 。/opt/wakari/wakari-server/bin/wk-server-admin add-user wakari --admin -p <new password> -e <your email>wakari

日志

Anaconda Enterprise Notebooks 日志文件的默认位置是 /opt/wakari/install/var/log。

Anaconda Enterprise Notebooks 安装程序登录到 /tmp/wakari_{server,gateway,compute}.log。

如果日志文件变得太大,它们可以被删除。要将日志设置为或多或少详细,Jupyter Notebook 系统有一个设置 'Application.log_level'。将 'Application.log_level' 设置为 'ERROR' 将使日志比默认的更简洁,但仍然提供相当丰富的信息。

杀死了 supervisord 和“错误:此套接字已关闭。”

当主管守护进程“supervisord”被杀死时,发送到标准输出“stdout”和标准错误“stderr”的信息被保存在一个最终填满的管道中。然后尝试启动任何应用程序失败,并显示错误消息“此套接字已关闭”。

为防止出现此问题,请始终干净地关闭并重新启动进程,并且不要在未先关闭 wk-compute 和其他使用它的进程的情况下关闭或杀死 supervisord。

要从此问题中恢复,请关闭进程“wk-compute” 。然后重启 supervisord 和 wk-compute 进程:sudo kill -9

须藤 //初始化d / wakari -计算 停止
sudo  / etc / init . d / wakari -计算 开始

服务错误 502:无法连接到应用程序管理器

当网关节点显示此错误时,意味着计算资源没有响应。

当进程“wk-compute”已关闭时会导致此错误。要从此问题中恢复,请重新启动 supervisord 和 wk-compute 进程:

须藤 //初始化d / wakari -计算 停止
sudo  / etc / init . d / wakari -计算 开始

Amazon Web Services 上的“502 通信错误”

如果您看到显示“502 通信错误:此网关无法与 Wakari 服务器通信”和 Wakari 服务器的 IP 地址的页面,请将 AEN 网关配置为使用服务器的 DNS 主机名。在 Amazon Web Services (AWS) 上,这将是 Amazon Elastic Compute Cloud (EC2) 实例的 DNS 主机名。