借助Cloudflare Argo Tunnel隧道,在PaaS容器云平台部署哪吒探针
准备材料
- GitHub 账户
- CloudFlare 账户,并准备一个域名
- PaaS 容器云账户(以下使用Koyeb为演示平台)
部署步骤
1.打开F佬的CF Argo Tunnel生成网:https://fscarmen.cloudflare.now.cc ,按照下图步骤获取隧道信息
2.进入CloudFlare控制台,在相应的域名 DNS 记录里加上客户端上报数据(tcp)和 ssh(可选)的域名,打开小云朵以启用 CDN
3.转到 网络 选项,将 gRPC 开关打开
4.设置新的OAuth授权应用,打开:https://github.com/settings/applications/new ,设置应用程序。面板域名加上 https://
开头,回调地址再加上 /oauth2/callback
结尾
5.获取 GitHub 的 PAT (Personal Access Token): https://github.com/settings/tokens/new
6.创建 GitHub 用于备份的私库: https://github.com/new
7.打开Koyeb,创建一个新的APP。类型选择Docker
8.输入镜像名称:fscarmen/argo-nezha:latest
9.按照下图设置,下表为参考变量
变量名 | 是否必须 | 备注 |
---|---|---|
GH_USER | 是 | github 的用户名,用于面板管理授权 |
GH_CLIENTID | 是 | 在 github 上申请 |
GH_CLIENTSECRET | 是 | 在 github 上申请 |
GH_REPO | 否 | 在 github 上备份哪吒服务端数据库文件的库 |
GH_EMAIL | 否 | github 的邮箱,用于备份的 git 推送到远程库 |
GH_PAT | 否 | github 的 PAT |
ARGO_JSON | 是 | 从 https://fscarmen.cloudflare.now.cc 获取的 Argo Json |
DATA_DOMAIN | 是 | 客户端与服务端的通信 argo 域名 |
WEB_DOMAIN | 是 | 面板 argo 域名 |
SSH_DOMAIN | 否 | ssh 用的 argo 域名 |
SSH_PASSWORD | 否 | ssh 的密码,只有在设置 SSH_JSON 后才生效,默认值 password |
10.等待1-2分钟,待出现Healthy即为成功部署。这时可以使用Argo的域名或者是PaaS平台的域名访问探针面板
VPS 部署实例
- 注意: ARGO_JSON= 后面需要有单引号,不能去掉
- 如果 VPS 是 IPv6 only 的,请先安装 WARP IPv4 或者双栈: https://github.com/fscarmen/warp
- 备份目录为当前路径的 dashboard 文件夹
docker 部署
1 | docker run -dit \ |
docker-compose 部署
1 | version: '3.8' |
客户端接入
通过gRPC传输,无需额外配置。使用面板给到的安装方式,举例
1 | curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh install_agent data.seales.nom.za 443 eAxO9IF519fKFODlW0 --tls |
SSH 接入
- 以 macOS + WindTerm 为例,其他根据使用的 SSH 工具,结合官方官方说明文档: https://developers.cloudflare.com/cloudflare-one/connections/connect-apps/use_cases/ssh/#2-connect-as-a-user
- 官方 cloudflared 下载: https://github.com/cloudflare/cloudflared/releases
- 以下输入命令举例
1 | <file path>/cloudflared access ssh --hostname ssh.seales.nom.za |
自动还原备份
- 把需要还原的文件名改到 github 备份库里的
README.md
,定时服务会每分钟检测更新,并把上次同步的文件名记录在本地/dbfile
处以与在线的文件内容作比对
下图为以还原文件名为 dashboard-2023-04-23-13:08:37.tar.gz
作示例
手动还原备份
- ssh 进入容器后运行,github 备份库里的 tar.gz 文件名,格式: dashboard-2023-04-22-21:42:10.tar.gz
1 | bash /dashboard/restore.sh <文件名> |
完美搬家
- 备份原哪吒的
/dashboard
文件夹,压缩备份为dashboard.tar.gz
文件
1 | tar czvf dashboard.tar.gz /dashboard |
- 下载文件并放入私库,这个私库名要与新哪吒
完全一致,并把该库的 README.md 的内容编辑为 dashboard.tar.gz
- 部署本项目新哪吒,完整填入变量即可。部署完成后,自动还原脚本会每分钟作检测,发现有新的内容即会自动还原,全程约 3 分钟
主体目录文件及说明
1 | . |
鸣谢下列作者的文章和项目:
- 热心的朝阳群众 Robin,讨论哪吒服务端与客户端的关系,从而诞生了此项目
- 哪吒官网: https://nezha.wiki/ , TG 群: https://t.me/nezhamonitoring
- 共穷国际老中医: http://solitud.es/
- Akkia’s Blog: https://blog.akkia.moe/
- HiFeng’s Blog: https://www.hicairo.com/
- 用 Cloudflare Tunnel 进行内网穿透: https://blog.outv.im/2021/cloudflared-tunnel/
免责声明:
- 本程序仅供学习了解, 非盈利目的,请于下载后 24 小时内删除, 不得用作任何商业用途, 文字、数据及图片均有所属版权, 如转载须注明来源。
- 使用本程序必循遵守部署免责声明。使用本程序必循遵守部署服务器所在地、所在国家和用户所在国家的法律法规, 程序作者不对使用者任何不当行为负责。
项目地址
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 六爺的博客!
评论