IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

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

    ysicing (i@ysicing.me)发表于 2024-10-08 13:17:12
    love 0

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

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

    先上几个成果预览图:

    总体监控大图

    链路监控大图

    概览图

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

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

    效果可见 运维探针



沪ICP备19023445号-2号
友情链接