梓悦生活

  • 🍟首页
  • 🍪免费资源
  • 🍓Wordpress
  • 🍋琐碎生活
  • 🍘关于
关注周围的人或事,体验人生历程
  1. 首页
  2. 免费资源
  3. 正文

哪吒监控面板搭建教程

2023/06/24 4487点热度 0人点赞 0条评论

准备工作​

搭建一个哪吒监控,你需要:

  1. 一台可以连接公网的 VPS,防火墙和安全策略需要放行 8008 和 5555 端口,否则会无法访问和无法接收数据。单核 512MB 内存的服务器配置就足以满足大多数使用场景
  2. 一个已经设置好 A 记录,指向 Dashboard 服务器 ip 的域名

如果你想使用 CDN,请准备两个域名,一个配置好 CDN 用作公开访问,CDN 需要支持WebSocket 协议;另一个域名不要使用 CDN,用作 Agent 端与 Dashboard 的通信
本文档分别以 "cdn.example.com" 和 "data.example.com" 两个域名来演示

  1. 一个 Github 账号(或:Gitlab、Jihulab、Gitee)

如果您位于中国大陆,访问 Github 有困难,我们建议您选择 Jihulab 作为 OAuth 提供商

本文档将以宝塔面板反代面板的过程作为范例,随着未来版本的变化,部分功能的入口可能会发生改变,本文档仅供参考

WARNING

本项目并不依赖宝塔,你可以选择使用你喜欢的任何服务器面板,如果你能力足够,可以手动安装 NginX 或 Caddy 来配置 SSL 和反代。
如果你认为没有必要使用 80、443 端口来访问 Dashboard,你甚至不需要安装 NginX 就可以直接使用安装脚本。

github项目地址:https://github.com/naiba/nezha

 

获取 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 和密码

在服务器中安装 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 ID
    Client Secret - 之前保存的密钥
    用户名 - OAuth 提供商中的用户名
    站点标题 - 自定义站点标题
    访问端口 - 公开访问端口,可自定义,默认 8008
    Agent的通信端口 - Agent与Dashboard的通信端口,默认 5555
  • 输入完成后,等待拉取镜像
    安装结束后,如果一切正常,此时你可以访问域名+端口号,如 “http://cdn.example.com:8008” 来查看面板
  • 将来如果需要再次运行脚本,可以运行:
./nezha.sh

来打开管理脚本

配置反向代理​

  • 在宝塔面板中新建一个站点,域名填写公开访问域名,如 “http://cdn.example.com“ ,然后点击“设置”进入站点设置选项,选择“反向代理” - “新建反向代理”
  • 自定义一个代理名称,在下方“目标 URL”中填入 http://127.0.0.1 然后点击“保存”
  • 打开刚刚新建的反向代理右边的“配置文件”,将配置文件替换为以下内容:
#PROXY-START/
location / {
    proxy_pass http://127.0.0.1:8008;
    proxy_set_header Host $http_host;
    proxy_set_header      Upgrade $http_upgrade;
}
location ~ ^/(ws|terminal/.+)$  {
    proxy_pass http://127.0.0.1:8008;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "Upgrade";
    proxy_set_header Host $http_host;
}
#PROXY-END/
  • 点击“保存”
  • 然后打开 https://github.com/settings/developers 修改之前创建的 OAuth ap­pli­ca­tion 信息:
Homepage URL :https://a.vvso.cn (替换为面板准备的域名)
Authorization callback URL:https://a.vvso.cn/oauth2/callback (替换为面板准备的域名)
  • 此时可以使用域名直接访问,若后台登录返回 github 的 404 页面,请重启一下面板即可。
  • 现在,你应该可以直接使用域名,如:“http://cdn.example.com“ 来访问面板了

在宝塔面板中配置 SSL​

首先,先暂时关闭反向代理
正如在其他网站中配置 SSL 证书一样,进入站点设置中的 “SSL”,你可以选择自动申请 Let´s Encrypt 证书或手动配置已有的证书
完成 SSL 的设置后,你需要回到 https://github.com/settings/developers ,编辑之前创建的验证应用程序,将之前我们填入的 "Homepage URL" 和 "Authorization callback URL" 中的域名全部从http改为https,如:"https://cdn.example.com" 和 "https://cdn.example.com/oauth2/callback" ,不更改此项可能会导致你无法登录面板后台。

报警通知

灵活通知方式

#NEZHA# 是面板消息占位符,面板触发通知时会自动替换占位符到实际消息

Body 内容是JSON 格式的:当请求类型为FORM时,值为 key:value 的形式,value 里面可放置占位符,通知时会自动替换。当请求类型为JSON时 只会简进行字符串替换后直接提交到URL。

URL 里面也可放置占位符,请求时会进行简单的字符串替换。

参考下方的示例,非常灵活。

  1. 添加通知方式
    • server酱示例
      • 备注:server酱
      • URL:https://sc.ftqq.com/SCUrandomkeys.send?text=#NEZHA#
      • 请求方式: GET
      • 请求类型: 默认
      • Body: 空
    • wxpusher示例
      • 备注: wxpusher
      • URL:http://wxpusher.zjiecode.com/api/send/message
      • 请求方式: POST
      • 请求类型: JSON
      • Body:
        {"appToken":"你的appToken","topicIds":[应用topicID],"content":"#NEZHA#","contentType":"1","uids":["你的uid"]}
  2. 添加一个离线报警
    • 备注:离线通知
    • 规则:
      [{"Type":"offline","Min":0,"Max":0,"Duration":10}]
    • 启用:√
  3. 添加一个监控 CPU 持续 10s 超过 50% 且 内存持续 20s 占用低于 20% 的报警
    • 备注:CPU+内存
    • 规则:
      [{"Type":"cpu","Min":0,"Max":50,"Duration":10},{"Type":"memory","Min":20,"Max":0,"Duration":20}]
    • 启用:√

配置tgbot

哪吒面板,顶部导航栏,点报警,添加通知方式

https://api.telegram.org/botXXXXXX/sendMessage?chat_id=YYYYYY&text=#NEZHA#

 

参数获取说明:botXXXXXX 中的 XXXXXX 是在 telegram 中关注官方 @Botfather ,输入/newbot ,创建新的机器人(bot)时,会提供的 token(在提示 Use this token to access the HTTP API:后面一行)这里 'bot' 三个字母不可少。创建 bot 后,需要先在 telegram 中与 BOT 进行对话(随便发个消息),然后才可用 API 发送消息。YYYYYY 是 telegram 用户的数字 ID。与机器人@userinfobot 对话可获得。

然后添加,报警规则,以下表示小鸡离线10s后就会报警通知到tgbot

[{"Type":"offline","Duration":10}]

 

报警规则说明

基本规则
type
cpu、memory、swap、disk
net_in_speed 入站网速、net_out_speed 出站网速、net_all_speed 双向网速、transfer_in 入站流量、transfer_out 出站流量、transfer_all 双向流量
offline 离线监控
load1、load5、load15 负载
process_count 进程数 目前取线程数占用资源太多,暂时不支持
tcp_conn_count、udp_conn_count 连接数
duration:持续秒数,秒数内采样记录 30% 以上触发阈值才会报警(防数据插针)
min/max
流量、网速类数值 为字节(1KB=1024B,1MB = 1024*1024B)
内存、硬盘、CPU 为占用百分比
离线监控无需设置
cover [{"type":"offline","duration":10, "cover":0, "ignore":{"5": true}}]
0 监控所有,通过 ignore 忽略特定服务器
1 忽略所有,通过 ignore 监控特定服务器
ignore: {"1": true, "2":false} 特定服务器,搭配 cover 使用
特殊:任意周期流量报警
可以用作月流量报警type
transfer_in_cycle 周期内的入站流量
transfer_out_cycle 周期内的出站流量
transfer_all_cycle 周期内双向流量和
cycle_start 统计周期开始日期(可以是你机器计费周期的开始日期),RFC3339 时间格式,例如北京时间为2022-01-11T08:00:00.00+08:00
cycle_interval 每隔多少个周期单位(例如,周期单位为天,该值为 7,则代表每隔 7 天统计一次)
cycle_unit 统计周期单位,默认hour,可选(hour, day, week, month, year)
min/max、cover、ignore 参考基本规则配置
示例: ID 为 3 的服务器(ignore 里面定义),以每月 15 号为统计周期,周期内统计的出站月流量 达到 1TB 时报警 [{"type":"transfer_out_cycle","max":1000000000000,"cycle_start":"2022-01-11T08:00:00.00+08:00","cycle_interval":1,"cycle_unit":"month","cover":1,"ignore":{"3":true}}]

 

文章转载自:https://nezha.wiki/guide/dashboard.html

标签: 云监控 哪吒监控 探针
最后更新:2023/07/19

Meteor

关注周围的人或事,体验人生历程!

点赞
< 上一篇
下一篇 >

文章评论

razz evil exclaim smile redface biggrin eek confused idea lol mad twisted rolleyes wink cool arrow neutral cry mrgreen drooling persevering
取消回复

文章目录
  • 准备工作​
  • 获取 Github/Jihulab 的 Client ID 和密钥​
  • 在服务器中安装 Dashboard​
  • 配置反向代理​
  • 在宝塔面板中配置 SSL​
  • 报警通知
    • 配置tgbot
  • 报警规则说明
最新 热点 随机
最新 热点 随机
[教程]AWS免费EC2注册/使用/添加IPV6/SSH连接/删除实例 使用VestaCP搭建邮局(含DKIM,DMARC教程) [教程]利用宝塔面板邮局管理器搭建Roundcube Webmail自建邮局 [测评]喵云互联绍兴电信NAT套餐1测评 iperf3 网络性能测试 [收藏]13 个免费 PPT 模板网站汇总
[测评]喵云互联绍兴电信NAT套餐1测评[教程]利用宝塔面板邮局管理器搭建Roundcube Webmail自建邮局iperf3 网络性能测试使用VestaCP搭建邮局(含DKIM,DMARC教程)[教程]AWS免费EC2注册/使用/添加IPV6/SSH连接/删除实例
利用.htaccess拒绝spam机器人评论 Azure虚拟机开通后需要做的那些事 谷歌联合webiz为泰国中小企业提供企业站点及in.th、co.th两种免费域名 解决新浪SDK报错Error(1.0.5 1107071739)的方法 国内主机屋稳定免费ASP/PHP可绑米空间 定期清理wordpress数据库wp-commentmeta表文件
最近评论
b2b系统 发布于 1 年前(12月29日) 感谢分享
Meteor 发布于 2 年前(10月20日) 哈哈,友链一直都在,后来换了主题后忘记修改显示数量了,现在恢复好了。
弋牧 发布于 2 年前(10月12日) 这里已经看不到我的友连了吗?
彩鸽 发布于 2 年前(10月04日) 写的不错
B2B海外商城系统 发布于 2 年前(09月21日) 感谢分享
标签聚合
虚拟主机 活动 Linux技巧 wordpress 宝塔 VPS 域名解析 技巧
友情链接
  • Anders Norén
  • Appurse
  • CSS参考手册
  • DeeTeam-迪提姆
  • Fatesinger
  • FreeSSL
  • gandi
  • Internetbs
  • LogoMaker
  • Meteor's Blog
  • PM唐杰
  • SSL For Free
  • WPEX-Themes
  • 优品PPT
  • 免费顶级域名
  • 博客大全
  • 印记
  • 弋牧
  • 挖站否
  • 闫宝龙博客

COPYRIGHT © 2023 梓悦生活. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang