哪吒监控
准备工作
搭建一个哪吒监控,你需要:
一台可以连接公网的 VPS,防火墙和安全策略需要放行 8008 和 5555 端口,否则会无法访问和无法接收数据。单核 512MB 内存的服务器配置就足以满足大多数使用场景
一个已经设置好 A 记录,指向 Dashboard 服务器 ip 的域名
TIP
如果你想使用 CDN,请准备两个域名,一个配置好 CDN 用作公开访问,CDN 需要支持WebSocket 协议;另一个域名不要使用 CDN,用作 Agent 端与 Dashboard 的通信
本文档分别以 "cdn.example.com" 和 "data.example.com" 两个域名来演示
一个 Github 账号(或:Gitlab、Jihulab、Gitee)
TIP
如果您位于中国大陆,访问 Github 有困难,我们建议您选择 Jihulab 作为 OAuth 提供商
本文档将以宝塔面板反代面板的过程作为范例,随着未来版本的变化,部分功能的入口可能会发生改变,本文档仅供参考
WARNING
本项目并不依赖宝塔,你可以选择使用你喜欢的任何服务器面板,如果你能力足够,可以手动安装 NginX 或 Caddy 来配置 SSL 和反代。
如果你认为没有必要使用 80、443 端口来访问 Dashboard,你甚至不需要安装 NginX 就可以直接使用安装脚本。
获取 Github/Jihulab 的 Client ID 和密钥
哪吒监控接入 Github、Gitlab、Jihulab、Gitee 作为后台管理员账号
首先我们需要新建一个验证应用,以 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,新建的密钥仅会显示一次,请妥善保存
JihuLab 的应用创建入口为:https://jihulab.com/-/profile/applications
Redirect URL
中应填入回调地址在下方
范围
中勾选read_user
和read_api
创建完成后,保存好应用程序 ID 和密码
Client ID
e9e99260a03a49f6404d
Client secrets
4e9f2b9507d87a951423bb2792c37231e0911b52
在服务器中安装 Dashboard
在面板服务器中,运行安装脚本:
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
如果你的面板服务器位于中国大陆,可以使用镜像:
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
等待Docker安装完毕后,分别输入以下值:
OAuth提供商
- Github,Gitlab,Jihulab,Gitee 中选择一个Client ID
- 之前保存的 Client IDClient Secret
- 之前保存的密钥用户名
- OAuth 提供商中的用户名站点标题
- 自定义站点标题访问端口
- 公开访问端口,可自定义,默认 8008Agent的通信端口
- Agent与Dashboard的通信端口,默认 5555输入完成后,等待拉取镜像
安装结束后,如果一切正常,此时你可以访问域名+端口号,如 “http://cdn.example.com:8008” 来查看面板将来如果需要再次运行脚本,可以运行:
./nezha.sh
来打开管理脚本
CSS:
<style>
.nav-bar {
padding:0;
}
.nav-menu li a {
background-color:#2f405a;
}
.info-body ul {
font-size:12px;
width:auto;
align-content:center;
justify-items:stretch;
}
.info-body ul li {
margin:.2em;
padding:.2em;
}
ul {
padding-inline-start:0;
}
.server-info-container {
border-radius:6px;
border:1px solid #d9d9d9;
}
server-info-container {
display:flex;
}
img {
padding:4px 0;
}
#app {
grid-template-columns:repeat(4,1fr);
grid-gap:2em;
justify-content:center;
margin:1em auto;
}
.info-body ul li img {
border:0 solid rgba(0,0,0,.25);
border-radius:0;
}
body[data-theme=dark] .info-body ul li img {
border:0 solid rgba(255,255,255,.3);
}
body[data-theme=dark] .info-body .ui.progress.warning>.progress-bar {
background-color:#fcbd5e !important;
}
/* 隐藏上传下载图标*/
.info-body ul li:nth-child(10):before {
content:"下载";
font-family:"Font Awesome 5 Free";
font-weight:900;
}
.info-body ul li:nth-child(11):before {
content:"上传";
font-family:"Font Awesome 5 Free";
font-weight:900;
}
</style>
<script>
/* 设置模式 light dark*/
window.onload = function() {
$.showConfirmButton=false;
document.getElementsByTagName("BODY")[0].setAttribute('data-theme','dark');
}
</script>