傻瓜式部署哪吒监控:一步一步教你轻松上手

本文最后更新于 83 天前, 如有失效请评论区留言.

傻瓜式部署哪吒监控:一步一步教你轻松上手

在这个信息化时代,监控系统已经成为了保障服务稳定性和性能的重要工具。今天,我们将介绍如何傻瓜式地部署哪吒监控,让你轻松上手,不再为监控问题烦恼,小白也可以轻松上手

先上几个成果预览图:

总体监控大图

链路监控大图

概览图

部署起来大概,分三大部分,其中是前两步,第三步可选

控制端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

配置文件

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"

效果可见 运维探针

Sponsor

Like this article? $1 reward

Comments