web服务接入beszel api
给我自己的web服务接入beszel的restful api
引言
一直以来都使用开源工具beszel作为我服务器的探针工具,这个工具部署简单,用起来也很方便,但他也有一个缺点,必须登录以后才能查看面板数据,正好最近闲的无聊,就开始研究在我自己的管理后台中接入beszel的api,方便自己查看。
一、创建账号
beszel后台使用的是pocketbase,所以我们可以选择先创建一个仅查看的账号:

二、授予权限
选到对应的服务器,授予这个用户权限:

三、调用接口
到这里我们的准备工作就完成了,因为我后端语言是go,没有pocketbase的SDK,所以我选择直接调用他的服务端接口。如果用的是nodejs作为后端,会简单很多,可以直接使用官方提供的SDK。
流程很简单,第一步是通过登录接口拿到用户token,这里用curl 示例
bash
复制代码
curl -X POST \
'https://example.com/api/collections/users/auth-with-password' \
-H 'Content-Type: application/json' \
-d '{
"identity": "<example@xx.com>",
"password": "<your_password>"
}'拿到token后请求系统列表:
bash
复制代码
curl -X GET \
'https://example.com/api/collections/systems/records?page=1&perPage=500' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <your_token>'此时我们可以获取到可以查看的系统列表数据:
列表中我们需要获取的数据就是id和info了,关于info的定义我们可以从项目的源代码中查看: https://github.com/henrygd/beszel/blob/main/internal/entities/system/system.go
json
复制代码
{
"items": [
{
...
"host": "",
"id": "your_system_id",
"info": {
"t": 2,
"u": 48235071,
"cpu": 1.14,
"mp": 60.79,
"dp": 24.34,
"v": "0.18.6",
"bb": 4755,
"la": [
0,
0,
0
],
"ct": 1
}
...
}
]
...
}这里只能获取到部分数据,我们还需要获取某个系统详细的信息:
bash
复制代码
curl -X GET \
'https://example.com/api/collections/system_details/records/<上一步获取到的id>' \
-H 'Content-Type: application/json' \
-H 'Authorization: Bearer <your_token>'
{
"arch": "x86_64",
"collectionId": "",
"collectionName": "system_details",
"cores": 2,
"cpu": "AMD EPYC 7K62 48-Core Processor",
"hostname": "localhost",
"id": "",
"kernel": "6.1.0-29-cloud-amd64",
"memory": 2075701248,
"os": 0,
"os_name": "Debian GNU/Linux 12 (bookworm)",
"podman": false,
"system": "",
"threads": 2,
"updated": "2026-08-17 11:34:15.518Z"
}然后将这两步获取到的数据组装好返回给前端就好了。
四、最终效果:

后期可以自己选择要不要接入图表,因为我目前只需要简单查看,就暂时不接入了。