哪吒探针V0 部署教程
本文最后更新于38 天前,其中的信息可能已经过时,如有错误请发送邮件到i@paff.cc

之前用的哪吒V1又双叒叕出问题了,这次好像是Cloudflare的锅。还是下定决心回到停更之后就一直稳定的V0版本 ^^
本文以Ubuntu为例

0.准备

0.1 在Cloudflare中添加DNS记录

我将使用status.kirino.de作为哪吒监控的域名。
登录Cloudflare控制面板并进入DNS设置页面
进入 DNS 设置页面后,点击 Add record 按钮,填写以下信息:

类型: A(对应 IPV4 地址), AAAA(对应 IPV6 地址),在本例中为 A

名称: 子域,在本例中为 status,也可完整填写为 status.kirino.de

代理状态: 启用或关闭(按照个人需求启用或关闭)
填写完成后,点击 Save 按钮,保存记录。

在左侧找到网络标签页并进入。找到gRPC与WebSockets并设置为启用(显示为✅)。


0.2 创建GitHub OAuth App或其他OAuth2

登录GitHub后,访问Developer settings

点击New OAuth App

如下图所示,填写以下信息:

Application name: 任意填写,在本例中为 NeZha Monitor

Homepage URL: 你的域名,在本例中为 https://status.kirino.de

Authorization callback URL: 你的域名 + /oauth/callback,在本例中为 https://status.kirino.de/oauth/callback

填写完成后点击 Register application 按钮,完成注册。


完成注册后将自动跳转到你的 OAuth App 信息页面,在该页面中获取并记录 Client IDClient Secret
如下图所示,Client ID 将直接展示在页面中,而 Client Secret 需要手动生成。

点击 Generate a new client secret 按钮,生成 Client Secret


Client secret只会展现一次,因此您应该立即记录下来。

1.哪吒监控面板端安装

1.1 依赖安装

登录您的服务器,本章内容均在您的服务器终端完成。
安装脚本依赖的curl与后续编辑配置文件使用的nano和docker

sudo apt update
sudo apt install -y curl nano
curl -fsSL https://get.docker.com | bash -s docker

1.2 一键脚本安装

curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh  -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh

尝试访问 ip:8008

能访问就进行下一步,反向代理

2.Caddy反向代理

本文使用 Caddy 自动签发 SSL 证书,无需手动申请,十分便捷。

2.1 配置前

如已安装 Nginx、Apache2 ,请先卸载。本文将使用 Caddy 配置 SSL。

    sudo apt autoremove -y nginx apache2

2.2 安装 Caddy

apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' | sudo tee /etc/apt/sources.list.d/caddy-stable.list
apt update
apt install caddy

2.3 配置 SSL

编辑 Caddyfile

sudo nano /etc/caddy/Caddyfile

删除或注释所有内容,填入以下内容:

status.kirino.de {
         tls i@kirino.de
         encode gzip
         reverse_proxy localhost:8008
}

请把其中的status.kirino.de改为哪吒监控域名;i@kirino.de 改为你的邮箱,用于签发 SSL 证书;8008 请修改为哪吒监控的端口号(默认为 8008)。

2.4 启动 Caddy

sudo systemctl start caddy

访问自己的域名,哪吒探针已经搭建完成


以下是可选项目

使用 Cloudflare Access 作为 OAuth2 提供方

相较于 Github,Cloudflare Access 对于中国大陆用户更加友好。如您当前使用 Github、Gitlab、Gitee 作为管理员账户登录时遇到问题,您可以考虑切换 Cloudflare Access 作为 OAuth2 提供方
$示例配置: $

Oauth2:
  Admin: 701b9ea6-9f56-48cd-af3e-cbb4bfc1475c
  ClientID: 3516291f53eca9b4901a01337e41be7dc52f565c8657d08a3fddb2178d13c5bf
  ClientSecret: 0568b67c7b6d0ed51c663e2fe935683007c28f947a27b7bd47a5ad3d8b56fb67
  Endpoint: "https://xxxxx.cloudflareaccess.com"
  Type: cloudflare

$配置说明:$

参数获取方式
AdminMy Team -> Users -> <具体用户> -> User ID
ClientID/ClientSecretAccess -> Application -> Add an Application -> SaaS -> OIDC
EndpointAccess -> Application -> Application URL -> 只保留协议+域名的部分,路径不需要

$新建 SaaS-OIDC 应用流程$

前往Zero Trust Dashboard,选择或新建一个账户(Account),然后按照以下步骤操作:

My Team -> Users -> 点击<具体用户> -> 获取 User ID 并保存 (如果是第一次使用 Zero Trust,Users 列表会为空,可暂时跳过这一步;你需要完成一次验证后,用户才会出现在 Users 列表中);

Access -> Applications -> Add an Application;

选择SaaS,在 Application 字段中输入自定义的应用名称(例如 nezha),选择OIDC后点击 Add application;

Scopes 选择 openid, email, profile, groups;

在 Redirect URLs 中填写你的 Dashboard Callback 地址,例如 https://dashboard.example.com/oauth2/callback;

分别记录 Client ID、Client Secret 和 Issuer 地址中的协议与域名部分,例如 https://xxxxx.cloudflareaccess.com;

编辑 Dashboard 配置文件(通常位于 /opt/nezha/dashboard/data/config.yaml),参照示例配置修改 OAuth2 设置,并重启 Dashboard 服务。

$身份验证策略配置$

在完成Dashboard设置后,您还需要在Zero Trust Dashboard中配置身份验证策略,路径为:Access -> Applications -> <应用名> -> Policies。您可以选择多种 SSO 验证方式,包括邮件 OTP 验证、硬件密钥验证等,详细配置请参考 Cloudflare Zero Trust 文档

$策略配置示例(One-time PIN)$
默认使用邮件 OTP 验证方式:

  1. Access -> Applications -> <应用名> -> Policies -> Add a policy;
  2. 设置一个 Policy Name,例如 OTP,Action 设置为 Allow;
  3. 在 Configure rules 下新增一条 Include 规则,Selector 选择 Emails,在文本框中输入你的邮箱地址;
  4. 点击 Save policy 保存策略。

$测试策略$

  1. 在配置正确的情况下,访问 Dashboard 登录界面,会显示为 使用 Cloudflare 账号登录,点击登录会跳转到 Cloudflare Access 登录页面;
  2. 输入前面配置的 Email 地址,点击 Send me a code,输入收到的验证码,即可登录 Dashboard;
  3. 如果在之前的步骤中,未在 Admin 中未填写 User ID,登录后会提示错误信息:“该用户不是本站点管理员,无法登录”。此时需要在 My Team -> Users 中找到对应的用户,点击用户名获取 User ID 并填写到 Dashboard 配置文件里的 Admin 部分,重启 Dashboard 服务后再次尝试登录。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇