1、什么是探针
云探针可以监测服务器运行状态的,主要用途就是 监控服务器状态,在服务运行不正常时及时告警,以便尽快进行维护。
2、安装
2.1、准备 OAuth 应用
哪吒监控需要接入 Github、Gitlab、Jihulab 或 Gitee 作为后台管理员账号。
GitHub 创建流程:
新建一个验证应用(以 Github 为例):
登录 Github 后,打开
https://github.com/settings/developers
依次选择“OAuth Apps” - “New OAuth App”
配置项如下:
Application name
- 随意填写Homepage URL
- 填写面板的访问域名,如:"http://cdn.example.com"Authorization callback URL
- 填写回调地址,如:"http://cdn.example.com/oauth2/callback"
填好之后,点击 “Register application”
保存页面中的 Client ID,然后点击 “Generate a new client secret“,创建一个新的 Client Secret。
Gitee 创建流程:
打开:
https://gitee.com/oauth/applications/new
和 GitHub 应用类似:
其他平台:
如果是 JihuLab ,应用创建入口为:
https://jihulab.com/-/profile/applications
Redirect URL
中应填入回调地址,在下方范围中勾选 read_user
和 read_api
,创建完成后,保存好应用程序 ID 和密码。
2.2、安装面板端
如果在境外,执行:
1 | curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh |
如果你的面板服务器位于中国大陆,可以使用镜像:
1 | curl -L https://cdn.jsdelivr.net/gh/naiba/nezha@master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh |
清北科技 CDN同样支持前端、GitHub资源等加速,说明文档参考:
清北科技 CDN
https://cdn.tsinbei.com
如果没有 Docker 环境,将会安装;等待Docker安装完毕后,分别输入以下值:
- `OAuth提供商| - Github,Gitlab,Jihulab,Gitee 中选择一个
Client ID
: 之前保存的 Client IDClient Secret
: 之前保存的密钥- 用户名 : OAuth 提供商中的用户名
- 站点标题 : 自定义站点标题
- 访问端口 : 公开访问端口,可自定义,默认 8008
- Agent的通信端口 : Agent与Dashboard的通信端口,默认 5555
输入完成后,等待拉取镜像;
安装结束后,如果一切正常,此时你可以访问域名+端口号,如 “http://cdn.example.com:8008” 来查看面板。
面板端如果需要 HTTPS 或者使用标准端口,可以反向代理,不再赘述。
2.3、安装 Agent
参考文档:
一键安装 Agent
https://nezha.wiki/guide/agent.html
注意:如果你的系统是稀奇古怪的的非主流 Linux 发行版,例如 TencentOS 或它的新名字 OpenCloudOS,一键安装时下载 Agent 端会报错退出,这时只需要自行编写 Systemd 文件:
/usr/lib/systemd/system/nezha-agent.service
1 | [Unit] Description=Nezha Agent Service [Service] ExecStart=/opt/nezha/agent/nezha-agent -s <面板IP>:<面板端口> -p <Agent密钥> Restart=always [Install] WantedBy=multi-user.target |
替换信息后保存即可。
指令:
1 | systemctl start nezha-agent #启动 systemctl stop nezha-agent #停止 |
启动后可能需要等待几分钟才能在面板端看到Agent上线。
用这种方式启动的服务无法通过systemctl enable
开机自启动,不过可以:
1 | echo 'systemctl start nezha-agent' >> /etc/rc.d/rc.local |
把启动命令放到自启动脚本列表里。
3、接入 CDN
如果面板机只有 IPv4/IPv6,而 Agent 机器只有 IPv6/IPv4,通过<面板IP>:<面板端口>
无法连接,需要通过 CDN。
以接入 Cloudflare CDN 为例,首先需要在控制台中打开 gRPC:
Cloudflare gRPC 代理要求源站有 HTTPS,示例 Nginx 配置文件:
1 | server { listen 443 ssl http2; listen [::]:443 ssl http2; server_name <CDN 域名>; underscores_in_headers on; location / { grpc_read_timeout 300s; grpc_send_timeout 300s; grpc_socket_keepalive on; grpc_pass grpc://nezhagrpcservers; } ... SSL 证书等设置,此处省略 ... } upstream nezhagrpcservers { server localhost:<面板 gRPC 端口>; keepalive 1024; } |
然后将 CDN 域名解析到此服务器即可。
如果监听端口不为80
、443
,修改listen
两行后添加 Origin Rules:
另外,似乎 Nginx 仅一个网站监听在非标准端口时,不验证主机名。
Docker建站(十八)哪吒面板:开源轻量的云探针
评论