alinode 整套服务由 alinode 运行时、AgentX、命令集、服务平台四个部分组成,如需充分享受 alinode 整套解决方案带来的好处,需要您在自己的服务器上部署 AgentX、alinode 运行时和一组命令集。

为了便于部署,我们除了自助式部署外,还提供了交互式部署和从镜像部署两种方式。当您想了解每一步详细的细节时,请使用自助式部署;当您想轻松部署时,请使用交互式部署;当您还没有 ECS 实例时,可以使用镜像来部署,alinode 镜像里已经部署好了相关软件,仅需您输入 appid 和 secret 配置即可。

自助安装 alinode 服务

您可以通过如下步骤自助完成 alinode 服务的安装

安装 alinode 运行时

alinode是与 Node 社区版完全兼容的二进制运行时环境,我们推荐使用tnvm工具进行安装,它能自动识别您的操作系统和系统架构。其安装指令如下:

wget -O- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash

完成安装后,您需要将tnvm添加为命令行程序。根据平台的不同,可能是~/.bashrc~/.profile~/.zshrc等,请根据提示进行手工操作。如:

source ~/.bashrc

完成上述操作后,tnvm就成为当前 shell 环境中的命令了。执行 tnvm ls-remote alinode查看所有的 alinode 版本。

执行下面的命令安装一个版本:

tnvm install alinode-vx.x.x

执行下面的命令使用一个版本:

tnvm use alinode-vx.x.x

tnvm是一个覆盖nvm所有功能的命令功能,你也可以通过它来安装 Node 官方的版本。更多操作请参考 tnvm 的文档

完成 alinode 的安装后,您可以通过node -p 'process.alinode'来查看是否为 alinode 的版本。确认无误后您就可以使用任何启动普通 node 应用的方式来启动 alinode 应用了。

alinode 运行时默认不启用任何功能,所以您可以像普通的 node 进程一样来操作。当您需要 alinode 的内核级监控时,请于启动进程前,添加如下两个环境变量:

  export ENABLE_NODE_LOG=YES
  export NODE_LOG_DIR=/tmp/

上面的NODE_LOG_DIR 必须跟您的 AgentX 配置文件中的 logdir 字段保持一致, 且均必须使用绝对路径,例如 ~/alinode-logdir 是不能工作的, 同时需要确保该路径不需要 sudo 权限读写。

注意:如果您正在使用 pm2 ,请kill掉它的常驻进程,就是进程名叫做 PM2 God的那个,否则环境变量的设置无效。

安装命令集

命令集为一组 alinode 服务执行任务所需要的命令集合,alinode 服务有且仅有执行这些命令的权限。

命令集位于:https://github.com/aliyun-node/commands,您可以通过clone,或者直接下载压缩包的方式将命令集安装到服务器上的某个路径下即可。

部署 AgentX

AgentX 是为 alinode 服务而研发的常驻代理服务,可以帮助执行一些监控和诊断的操作。它同时是一个 npm 命令行工具,通过如下命令可以完成安装:

npm install agentx -g

安装完成后,会存在一个叫做agentx的命令。

此处也推荐阿里云上的 Node 用户使用 cnpm 来安装任何模块。

配置和运行 AgentX

AgentX 使用一个 JSON 格式的文件作为配置项

{
  "server": "120.55.151.247:8080",
  "appid": "您的应用ID",
  "secret": "您的应用Secret",
  "heartbeatInterval": 60,
  "reconnectDelay": 10,
  "reportInterval": 60,
  "logdir": "alinode生产的日志放置的绝对路径,与NODE_LOG_DIR路径保持一致。如:/tmp/",
  "cmddir": "命令集路径,绝对路径,如:/Users/jacksontian/commands",
  "error_log": [
    "",
    "您的应用在业务层面产生的异常日志的路径",
    "例如:/root/.logs/error.#YYYY#-#MM#-#DD#.log",
    "可选,可多个"
  ],
  "packages": [
    "",
    "可以输入多个package.json的路径,用于帮助模块依赖的版本检查",
    "可选"
  ]
}

请注意,请勿修改配置中的 server 字段的值。

配置中的#YYYY##MM##DD#是通配符,如果您的异常日志是按时间生成的,请使用它。

其中您的应用 ID 和您的应用 Secret 请在应用设置页面获取。

完成配置之后即可将 AgentX 启动:

nohup agentx /path/to/your/config.json &

运行起来之后,您就可以在应用主页看到连接上的实例。

请注意,有些服务器的shell存在一些问题,为了不影响agentx的运行,建议退出时用exit命令主动退出。

一键式安装 alinode 服务

通过如下命令下载一键式安装脚本:

wget -q https://raw.githubusercontent.com/aliyun-node/alinode-all-in-one/master/alinode_all.sh

通过如下方式运行脚本,然后根据提示一步一步即可完成 alinode 运行时,AgentX 和命令集的安装,以及配置 AgentX:

bash -i alinode_all.sh

配置完成以后,如何设置 alinode,以及如何使用 alinode 启动进程,请参见自助式部署部分。

直接安装 alinode 运行环境镜像

目前阿里云镜像市场提供了如下 alinode 服务镜像,您可以通过在 ECS 上直接使用此镜像。