简介
hclient-cli 是官方推出的一个面向无图形界面的机器的接入方案。
有这个工具的情况下,我们可以让我们远端的服务器接入到懒猫的网络中,访问懒猫上的数据资源。
使用
官方库文档有接口的使用说明,这里就不再阐述,我提交了一个 PR,对官方的接口简单的用 bash 脚本封装了一下,减少使用过程中的输入量。同时还包含了一个构建 Docker 镜像的方案,其实就是把 cli 程序加入到镜像中。
目前我的远端服务是 Docker 容器形式运行的,因此这里分享一下 Docker 使用样例。
这里的远端应用以我的远端服务器上的青龙面板为例。
首先给出一个 Docker 容器启动命令示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| docker run -itd \ --privileged \ --name lazycat \ --hostname lazycat_in_docker \ --restart always \ --network lnmp \ --ip 172.20.0.66 \ -p 127.0.0.1:7777:7777 \ -p 127.0.0.1:61090:61090 \ -v /data/cfg:/app/cfg \ ety001/lazycat-cli:latest \ /app/hclient-cli \ -api-addr "172.20.0.66:7777" \ -http-addr "172.20.0.66:61090"
|
- 请注意不要暴露你的 7777 管理端口和 61090 代理端口给全局网络
- 容器启动后,所有 lnmp 网络中的容器可以通过
172.20.0.66:61090
代理访问懒猫资源。
- 宿主机可以通过
127.0.0.1:7777
管理,通过 127.0.0.1:61090
代理访问。
在宿主机中,调用 cmd.sh
(在我的那个 PR 中)完成懒猫网络的登陆。
1 2 3
| ./cmd.sh add_box ./cmd.sh add_tfa ./cmd.sh client_info
|
登陆成功后,打开远端的青龙面板,安装依赖 axios
和 https-proxy-agent
。之后增加环境变量配置如下:
1 2 3
| LAZYCAT_PROXY=http://172.20.0.66:61090 INFLUXDB_TOKEN=xxxx INFLUXDB_URL=http://influxdb.ecat.heiyu.space:8086
|
创建一个新的测试 js 脚本如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
| const axios = require('axios'); const { HttpsProxyAgent } = require('https-proxy-agent');
const proxy = process.env.LAZYCAT_PROXY; const agent = new HttpsProxyAgent(proxy);
// 自定义 HTTP 客户端,使用 axios 和代理 const customHttpClient = axios.create({ httpAgent: agent, httpsAgent: agent, });
const token = process.env.INFLUXDB_TOKEN; const url = process.env.INFLUXDB_URL; const org = 'default'; const bucket = 'steem';
// 定义 Flux 查询 const fluxQuery = ` from(bucket: "${bucket}") |> range(start: -1h) |> filter(fn: (r) => r._measurement == "price") |> filter(fn: (r) => r._field == "lowest_ask") `;
// 发送查询请求 async function queryData() { try { const response = await customHttpClient.post( `${url}/api/v2/query?org=${org}`, { query: fluxQuery, type: 'flux', }, { headers: { Authorization: `Token ${token}`, 'Content-Type': 'application/json', }, } ); console.log('查询结果:', response.data); } catch (error) { console.error('查询数据时出错:', error.response ? error.response.data : error.message); } }
queryData();
|
调试运行,成功获取到懒猫微服上的 Influxdb
中的数据。
