alinode使用初始化步骤较为复杂,没有办法一行代码完成。本文分享下如何一步一步部署alinode。
申请试用资格
alinode的主页http://alinode.aliyun.com/提供公测试用申请,但用户数量是按天开放的,所以如果抢不到试用名额,凌晨时候申请一定能成功。目前alinode还没有收费,趁这个机会能够体验下alinode高级功能。
创建应用
申请到试用资格的用户可以在控制台http://alinode.aliyun.com/dashboard创建一个逻辑上的应用,每个用户可以创建多个应用。每个应用可以映射到多台服务器上,也就是说一个应用可以连接多个agentx。 创建应用后,可以拿到应用的appid和secret。点击应用设置可以看到。如图:
appid和secret: 这两个信息都是极度机密,打死也不要告诉他人。
安装agentx
agentx是alinode用来做命令执行和数据监控的agent工具。与某些agent不同的是,agentx是完全开源的,每个用户都能查看每行代码。另外agentx能执行的命令是有限的,这些命令也是完全开源的。
安装命令:
$ npm install agentx -g
执行agentx -v
可以查看版本号。
agentx需要与alinode的服务相连,这里需要一些特定的配置。配置文件是一个json格式的文件,以下为示例:
{
"server": "120.55.151.247:8080", // alinode服务的地址,请不要修改
"appid": "您的应用ID", // 上文创建的应用的app id
"secret": "您的应用Secret", // 上文创建的应用的app secret
"heartbeatInterval": 60, // 不用修改
"reconnectDelay": 10, // 不用修改
"reportInterval": 60, // 不用修改
"logdir": "alinode生产的日志放置的路径,与NODE_LOG_DIR路径保持一致。如:/tmp/", // 如果不知道,就用 /tmp
"cmddir": "命令集路径,绝对路径,如:/Users/jacksontian/commands", // 命令集路径
"error_log": [
"异常日志路径,如:/root/.logs/error.#YYYY#-#MM#-#DD#.log"
] // 可以配置一个异常日志的路径,其中#YYYY#、#MM#、#DD#是通配符,自动解释为当前时间的数据。如果不了解,将这里设置为空数组
}
将上述示例的注释清理掉后,确保语法没有错误,保存为config.json,或者以.json结尾的任意文件名。其中cmddir的路径可以设置为%HOME%/commands。
安装命令集
运行agentx
设置好配置和安装好命令集后,执行:
$ nohup agentx /path/to/your/config.json &
注意nohup和最后的&不能丢,表示长期运行这个命令。
完成上述操作后,1分钟后即可在你的应用页面查看到一些数据。比如:
绿色的小灯表示agentx正常连接中。
当前正在执行的Node进程列表:
一些系统级的数据:
安装alinode运行时
安装alinode运行时通过tnvm安装即可,速度是分钟级。
安装tnvm
wget -qO- https://raw.githubusercontent.com/aliyun-node/tnvm/master/install.sh | bash
完成安装后,您需要将tnvm添加为命令行程序。根据平台的不同,可能是~/.bashrc,~/.profile或~/.zshrc等,请根据提示进行手工操作。如:
source ~/.bashrc
完成上述操作后,tnvm就成为当前shell环境中的命令了。
选择alinode版本
执行tnvm ls-remote alinode
查看所有的alinode版本。
执行下面的命令安装一个版本:
tnvm install alinode-vx.x.x
执行下面的命令使用一个版本:
tnvm use alinode-vx.x.x
alinode运行时是完全兼容社区node版本的运行时,无需修改任何代码才能使用。
运行alinode
通过tnvm安装alinode后,即可用alinode来启动你的应用。在设置以下环境变量会启用alinode的特别功能:
export ENABLE_NODE_LOG=YES # 开启alinode的node log功能,使得agentx可以监控虚拟机级别的性能数据
export NODE_LOG_DIR=/tmp/ # 指定生成的node log路径。可选。如果设置的话,请保持与agentx配置中的logdir值一致。
然后就可以像平常运行node一样启动你的应用:node xxx.js
总结
完成以上设置后,一分钟后就可以从alinode的dashboard看到更为细致的进程级别性能数据。如:
我看图多就加精了…应该是干货…
mark
那么多人为内存泄漏,性能问题,竟然没人关注这货? 自豪地采用 CNodeJS ionic
值得一试 自豪地采用 CNodeJS ionic
有需要的同学请联系我
赞
正好需要,感谢朴大大
等了好久啦,谢谢瓢大大
@DoubleSpout 用上了吗。
@JacksonTian 新上的项目打算使用,还没用上,到时候有问题找你哈
@DoubleSpout 旧项目也可以用的。又不用改任何代码。
嗯哼,我们正在改版。人肉置顶
mark 一记
@fanghongjia 不要光mark呀
@thesadboy 不是这里退出的吧。这里没有这个文件是能容错的。
@thesadboy 这是因为没有设置 ENABLE_NODE_LOG=YES这个环境变量
看错了,你把错误信息, agentx -v node -p 'process.alinode’ 结果贴一下? 或者加旺旺群 1406236180
@thesadboy 错误日志我们是打印了出来的。但是不会退出。
@JacksonTian 为什么启动的时候报错了。自助式部署和交互式部署都报同样的错。
/usr/local/lib/node_modules/agentx/node_modules/nounou/index.js:16 var deamon = new EventEmitter(); ^ TypeError: object is not a function at module.exports (/usr/local/lib/node_modules/agentx/node_modules/nounou/index.js:16:16) at Object.<anonymous> (/usr/local/lib/node_modules/agentx/start_client.js:28:1) at Module._compile (module.js:456:26) at Object.Module._extensions…js (module.js:474:10) at Module.load (module.js:356:32) at Function.Module._load (module.js:312:12) at Function.Module.runMain (module.js:497:10) at startup (node.js:119:16) at node.js:906:3
@imhered 你的本地的版本是不是太低了。0.8?
@thesadboy 详细问题我们旺旺沟通吧。。
@JacksonTian 我就第一次装啊,按照你上面给的方法,一步一步走的。到这里 $ nohup agentx /path/to/your/config.json & 启动时候就包这个错了
@imhered 看这个报错,应该是你启动agentx的node版本太低。
@JacksonTian node版本太低? 我的是0.10.32,这个版本都支持不了吗?
@imhered 是比较低。
@JacksonTian 0.10.32都不支持啊,io和node合并前,不都是0.1x版本吗?那最低多少版本支持?
@imhered 是0.12.x
楼主好流弊 佩服
来自炫酷的 CNodeMD
这么多详细的监控图,不装一个试试多可惜呀
果然过了零点就可以申请,Mark
6
即将要改版。欢迎尝试。
谢谢
是否会推出ARM版呢? 这样就能愉快的运行在树莓派了!
@Srar 暂时木有办法啦。
@JacksonTian 好吧 谢了
准备来一发试一试
@holyselina 欢迎
已经被安利了, 在我司阿里云的ESC上已经启用alinode了, 很棒!
@zkaip 么么哒
@JacksonTian 我再用tnvm 报了 这个错:
$ tnvm lookup
sort: string comparison failed: Illegal byte sequence
sort: Set LC_ALL=‘C’ to work around the problem.
sort: The strings compared were Node.js upkeep release to provide alinode-<H2>\304\372\313\371\307\353\307\363\265\304\315\370ַ\243\250URL\243\251\316\336\267\250\273\361\310\241</H2> with Node.js ' and
Node.js upkeep release to provide alinode- with Node.js '.
又遇到过么你们
@sensoroDj 你的shell是?
是不是没有 UTF-8 locale? @sensoroDj 顺便补充下,PM2环境的,部署时需要杀掉 pm2 的后台进程。@朴灵 可以更新下文案。
@JacksonTian 是zsh
@yjhjstz 估计就是你说的这个问题了 我的pm2在开着,UTF-8 locale这个我应该有
就是pm2的问题 ,这两者是冲突的么!不能同时使用么?
@sensoroDj 不是冲突,是pm2的常驻进程的问题,你设置了一堆环境变量,但是如果不kill了pm2的常驻进程,它就根本不叼你。
alinode有运行时的吗?服务器上不能直接安装node
@younth 有啊, tnvm install alinode-v1.5.2 tnvm use alinode-v1.5.2
怎么联系
@captainblue2013 旺旺群: 1406236180 邮件:alinode@service.aliyun.com
我很好奇node社区里有多少阿里的用户 感觉很多😁
来自酷炫的 CNodeMD
@yjhjstz 这install下来的是可执行的node吗 在机器上可以直接执行这个程序吗
@younth 是的。
mark 自豪地采用 CNodeJS ionic