傻瓜式部署哪吒监控:一步一步教你轻松上手
傻瓜式部署哪吒监控:一步一步教你轻松上手
在这个信息化时代,监控系统已经成为了保障服务稳定性和性能的重要工具。今天,我们将介绍如何傻瓜式地部署哪吒监控,让你轻松上手,不再为监控问题烦恼,小白也可以轻松上手
先上几个成果预览图:
总体监控大图
链路监控大图
概览图
部署起来大概,分三大部分,其中是前两步,第三步可选
控制端Dashboard
推荐使用
docker
部署, 方便升级和迁移
要求
- 控制端服务器
需要公网
可被访问 - 已安装
docker
(可选) - 已经安装
caddy
, 也可以使用nginx、traefik等
安装docker
默认使用
root
用户
export DOWNLOAD_URL="https://mirrors.tuna.tsinghua.edu.cn/docker-ce"
# 如您使用 curl
curl -fsSL https://raw.githubusercontent.com/docker/docker-install/master/install.sh | sh
# 如您使用 wget
wget -O- https://raw.githubusercontent.com/docker/docker-install/master/install.sh | sh
或者执行我提供的脚本
curl https://c.ysicing.net/oss/scripts/docker.sh | bash
初始化docker
curl https://c.ysicing.net/oss/scripts/dockerconfig.sh | bash
哪吒配置文件
创建目录
mkdir nezha
touch nezha/config.yaml
哪吒的配置文件config.yaml
, 示例如下
AvgPingCount: 2
Cover: 0
DDNS:
AccessID: ""
AccessSecret: ""
Enable: false
MaxRetries: 3
Provider: webhook
WebhookHeaders: ""
WebhookMethod: POST
WebhookRequestBody: ""
WebhookURL: ""
Debug: false
EnableIPChangeNotification: false
EnablePlainIPInNotification: false
GRPCHost: agent.nzops.ysicing.net
GRPCPort: 5555
HTTPPort: 80
IPChangeNotificationTag: default
IgnoredIPNotification: ""
IgnoredIPNotificationServerIDs: {}
Language: zh-CN
Location: Asia/Shanghai
MaxTCPPingValue: 500
Oauth2:
Admin: admin
ClientID: 19507d56-xxxx
ClientSecret: gto_xxxx
Endpoint: https://gitea.local
Type: gitea
ProxyGRPCPort: 0
Site:
Brand: Monitor
CookieName: ops-dashboard
CustomCode: <script async src="https://umami.external.ysicing.net/script.js" data-website-id="c"></script>
DashboardTheme: default
Theme: default
ViewPassword: ""
TLS: false
这里说下几个比较重要的地方
GRPCHost
: agent连接地址Oauth2
配置的地方,我示例的是用Gitea,由于某些因素,哪吒监控只支持Oauth2方式,常见使用Github方式
哪吒监控接入 Github、Gitlab、Gitee、Gitea 作为后台管理员账号,这里主要已常见的Github和我自用的Gitea为例。
Github方式
登录 Github 后,打开 Oauth App
- Application name - 随意填写。
- Homepage URL - 填写面板的访问域名,如:"http://dashboard.example.com"(你的域名)。
- Authorization callback URL - 填写回调地址,如:"http://dashboard.example.com/oauth2/callback"(不要忘记
/oauth2/callback
)。
保存页面中的 Client ID,然后点击 “Generate a new client secret“,创建一个新的 Client Secret,新建的密钥仅会显示一次,请妥善保存。
配置文件
Oauth2:
Admin: ysicing #你的github账号
ClientID: 19507d56-xxxx # github clientid
ClientSecret: gto_xxxx # github client secret
Type: github
Gitea方式
登录你的Gitea 后, 访问https://你的gitea域名/user/settings/applications
- 应用名称: 随意填写。
- 重定向 URI: 填写回调地址,如:"http://dashboard.example.com/oauth2/callback"(不要忘记
/oauth2/callback
)。
配置文件
Oauth2:
Admin: ysicing #你的github账号
ClientID: 19507d56-xxxx # github clientid
ClientSecret: gto_xxxx # github client secret
Endpoint: https://gitea.local
Type: gitea
配置compose
推荐使用这个版本, 将下面的文件保存为
docker-compose.yaml
version: "3"
services:
nezha-dashboard:
image: registry.cn-shanghai.aliyuncs.com/naibahq/nezha-dashboard:v0.18.2
container_name: nezha-dashboard
restart: always
ports:
- 44544:80
- 44545:5555
volumes:
- ./nezha:/dashboard/data
启动Dashboard
docker compose -f docker-compose.yaml up -d
配置caddy反代
示例:
ops.ysicing.net
是控制UI域名,agent.ops.ysicing.net
是agent通信域名, 默认使用caddy v2版本
ops.ysicing.net {
tls root@ysicing.net
import LOG /var/log/caddy/nzops_ysicing_net.log
reverse_proxy 10.76.0.7:44544
}
agent.ops.ysicing.net {
tls root@ysicing.net
import LOG /var/log/caddy/nzops_agent_ysicing_net.log
reverse_proxy {
to 10.76.0.7:44545
transport http {
versions h2c 2
}
}
}
具体caddy安装参考caddy部署
到这里,哪吒监控面板部署完成了
部署Agent
服务器区域负责管理 Agent,是哪吒探针中最基础的区域,也是其他功能的基础。部署Agant前需要新增服务器
。
拥有相同分组的服务器会在受支持的主题中划分到一起进行显示,备注仅会在后台显示,无需担心泄露信息。
登陆控制端Dashboard,切到管理后台
添加完成复制密钥
到需要安装agent的节点执行如下脚本
export NZ_URL=控制URL
export NZ_TOKEN=复制的token
curl https://c.ysicing.net/oss/scripts/nezha.sh | bash
或者使用管理后台的一键脚本
部署仪表面板
通过管理后台创建API Token
services:
nezha-dash:
container_name: nezha-dash
image: ccr.ccs.tencentyun.com/k7scn/nezha-dash
restart: always
environment:
- NezhaBaseUrl="哪吒面包URL"
- NezhaAuth=your-nezha-api-token
ports:
- "3000:3000"
效果可见 运维探针