Skip to content

Commit

Permalink
Mention community project Broker for Nezha (#89)
Browse files Browse the repository at this point in the history
  • Loading branch information
uubulb authored Aug 13, 2024
1 parent f02c88c commit b16ebc0
Show file tree
Hide file tree
Showing 5 changed files with 82 additions and 2 deletions.
6 changes: 4 additions & 2 deletions docs/.vitepress/config.mts
Original file line number Diff line number Diff line change
Expand Up @@ -215,7 +215,8 @@ function getCaseSidebarZhCN() {
{ text: '3. 自建多用户多语言 Telegram 服务器状态查询机器人', link: '/case/case3.html' },
{ text: '4. Fake-agent,监控数据作弊器', link: '/case/case4.html' },
{ text: '5. 使用 Argo 隧道的哪吒服务端', link: '/case/case5.html' },
{ text: '6. Nezha Mobile - Nezha Dashboard 的 iOS 客户端', link: '/case/case6.html' }
{ text: '6. Nezha Mobile - Nezha Dashboard 的 iOS 客户端', link: '/case/case6.html' },
{ text: '7. Broker for Nezha', link: '/case/case7.html' }
]
}
]
Expand Down Expand Up @@ -290,7 +291,8 @@ function getCaseSidebarEnUS() {
{ text: '3. Self-hosted, multi-user, multi-lingual server status query Telegram bot', link: '/en_US/case/case3.html' },
{ text: '4. Fake-agent, monitoring data cheater', link: '/en_US/case/case4.html' },
{ text: '5. Nezha server over Argo tunnel', link: '/en_US/case/case5.html' },
{ text: '6. Nezha Mobile - An iOS Client For Nezha Dashboard', link: '/en_US/case/case6.html' }
{ text: '6. Nezha Mobile - An iOS Client For Nezha Dashboard', link: '/en_US/case/case6.html' },
{ text: '7. Broker for Nezha', link: '/en_US/case/case7.html' }
]
}
]
Expand Down
40 changes: 40 additions & 0 deletions docs/case/case7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# Broker for Nezha - 拓展 Nezha 接入平台
贡献者:
+ [uubulb](https://github.com/uubulb)

Broker for Nezha 是一个 Nezha Agent 的修改版本,其通过分离 Agent 的数据收集和 gRPC 上报功能,可使小型设备接入 Nezha Dashboard。

项目地址:<https://github.com/uubulb/broker>

文档:[Broker for Nezha](https://broker.kuzu.uk/)

## 与原项目的不同
- 使用外置数据源,而不是从本地获取。
- 多数据源与多面板支持
- 仅支持 `TaskTypeCommand``TaskTypeTerminalGRPC` 两种任务类型,均通过 SSH 实现。其它任务类型暂无计划。

Broker for Nezha 需要与特定的数据收集软件一同使用。目前提供两种数据获取方式:
1. HTTP 主动获取(HTTP/1.1)
2. TCP 被动获取(推荐,可避免创建新连接)

如需获取现有的数据收集软件,可以参考项目 README。

因数据获取方式缺乏安全性,建议仅在信任的网络环境使用。

## 编写数据收集端
如需自行编写数据收集端,除实现基本 HTTP 服务器或 TCP 客户端外,还需要使用特定的数据格式才可被 Broker 正常接收。具体请参考:[数据类型](https://broker.kuzu.uk/configuration/type/)

## 效果参考
<figure>
<img src="/images/case7/dashboard.jpg" alt="Dashboard">
<figcaption style="font-size: 0.9em; color: gray; text-align: center;">
Dashboard
</figcaption>
</figure>
<br />
<figure>
<img src="/images/case7/webssh.jpg" alt="WebSSH">
<figcaption style="font-size: 0.9em; color: gray; text-align: center;">
WebSSH
</figcaption>
</figure>
38 changes: 38 additions & 0 deletions docs/en_US/case/case7.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
# Broker for Nezha - Advancing on more platforms
Contributor:
+ [uubulb](https://github.com/uubulb)

Broker for Nezha is a modified version of the Nezha Agent that separates data collection from gRPC reporting, enabling small devices to connect to the Nezha Dashboard.

Project link: <https://github.com/uubulb/broker>

Online Documentation: [Broker for Nezha](https://broker.kuzu.uk/)

## Difference from Nezha Agent
- Utilizes external data sources to report to **Nezha Dashboard**.
- Supports configuring multiple sources and connecting to multiple Dashboards.
- Currently supports two task types only: `TaskTypeCommand` and `TaskTypeTerminalGRPC`, implemented using SSH. Other task types are not planned.

Broker for Nezha needs to be used with specific data collection software. Currently, it provides two data acquisition methods:
1. HTTP (HTTP/1.1) - Active polling
2. TCP - Passive collection (recommended to avoid creating new connections)

For existing data collection software, refer to the project README. Due to security concerns, it's recommended to use this only in a trusted network.

## Writing a Data Collector
If you need to write your own data collector, you'll need to implement a basic HTTP server or TCP client and use a specific data format that Broker can recognize. For details, see: [Data types](https://broker.kuzu.uk/en/configuration/type/)

## Examples
<figure>
<img src="/images/case7/dashboard.jpg" alt="Dashboard">
<figcaption style="font-size: 0.9em; color: gray; text-align: center;">
Dashboard
</figcaption>
</figure>
<br />
<figure>
<img src="/images/case7/webssh.jpg" alt="WebSSH">
<figcaption style="font-size: 0.9em; color: gray; text-align: center;">
WebSSH
</figcaption>
</figure>
Binary file added docs/images/case7/dashboard.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/images/case7/webssh.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit b16ebc0

Please sign in to comment.