|
@@ -0,0 +1,266 @@
|
|
|
|
|
+---
|
|
|
|
|
+title: VPS监控:哪吒监控
|
|
|
|
|
+date: 2024-04-23 14:25:00
|
|
|
|
|
+categories:
|
|
|
|
|
+- 运维
|
|
|
|
|
+- Linux
|
|
|
|
|
+tags:
|
|
|
|
|
+- linux
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+# VPS监控:哪吒监控
|
|
|
|
|
+
|
|
|
|
|
+## 目录
|
|
|
|
|
+
|
|
|
|
|
+- [简介](#简介)
|
|
|
|
|
+- [安装](#安装)
|
|
|
|
|
+- [管理面板配置](#管理面板配置)
|
|
|
|
|
+- [参考链接](#参考链接)
|
|
|
|
|
+- [结束语](#结束语)
|
|
|
|
|
+
|
|
|
|
|
+## 简介
|
|
|
|
|
+
|
|
|
|
|
+- 开源、轻量、易用的服务器监控、运维工具。
|
|
|
|
|
+- 一键安装:支持一键安装面板和监控服务,使用方便。主流系统包括Linux、Windows、MacOS、OpenWRT以及群晖均受支持。
|
|
|
|
|
+- 实时监控:支持同时监控多个服务器的状态,提供历史延迟图表,并可监控网页、端口可用性和SSL证书状态。支持故障和流量等状态告警,可通过Telegram、邮件、微信等多种通知方式进行提醒。
|
|
|
|
|
+- 轻松运维:可使用API获取服务器状态,支持WebSSH、DDNS和流量监控,可设置定时和触发任务并批量执行服务器任务。
|
|
|
|
|
+
|
|
|
|
|
+## 安装
|
|
|
|
|
+
|
|
|
|
|
+> 哪吒监控接入 Github、Gitlab、Gitee 作为后台管理员账号。
|
|
|
|
|
+
|
|
|
|
|
+### 获取 Github 的 Client ID 和密钥
|
|
|
|
|
+
|
|
|
|
|
+1. 打开[Developer Settings](https://github.com/settings/developers),依次选择OAuth Apps - New OAuth App 新建授权应用。
|
|
|
|
|
+2. 填写应用信息。
|
|
|
|
|
+ - Application name - 随意填写。
|
|
|
|
|
+ - Homepage URL - 填写面板的访问域名,如:"https://monitor.lvzhiqiang.top"。
|
|
|
|
|
+ - Authorization callback URL- 填写回调地址,如:"https://monitor.lvzhiqiang.top/oauth2/callback"。
|
|
|
|
|
+3. Register application 注册应用。
|
|
|
|
|
+4. 保存页面中的 Client ID,然后点击 “Generate a new client secret“,创建一个新的 Client Secret,新建的密钥仅会显示一次,请妥善保存。
|
|
|
|
|
+
|
|
|
|
|
+### 运行面板安装脚本
|
|
|
|
|
+
|
|
|
|
|
+```bash
|
|
|
|
|
+# GitHub 源
|
|
|
|
|
+curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo ./nezha.sh
|
|
|
|
|
+# Gitee 源
|
|
|
|
|
+curl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+1. 填写相关信息
|
|
|
|
|
+ - 请输入 OAuth2 提供商(github/gitlab/gitee,默认 github): - 直接回车,默认github。
|
|
|
|
|
+ - 请输入 Oauth2 应用的 Client ID: - 之前保存的 Client ID。
|
|
|
|
|
+ - 请输入 Oauth2 应用的 Client Secret: - 之前保存的密钥。
|
|
|
|
|
+ - 请输入 GitHub/Gitee 登录名作为管理员,多个以逗号隔开: - 填写你的用户名,不是你登陆的账号或者自定义的别名。
|
|
|
|
|
+ - 请输入站点标题: - 随意。
|
|
|
|
|
+ - 输入站点访问端口: (默认 8008) - 服务面板的访问端口,可自定义。
|
|
|
|
|
+ - 请输入用于 Agent 接入的 RPC 端口: (默认 5555) - 客户端和服务面板的通讯端口。
|
|
|
|
|
+2. 配置反向代理
|
|
|
|
|
+ - 在宝塔面板中新建一个站点,域名填写公开访问域名,如 "monitor.lvzhiqiang.top"。
|
|
|
|
|
+ - 然后点击"设置"进入站点设置选项,选择“反向代理” - "添加反向代理"。
|
|
|
|
|
+ - 自定义一个代理名称,在下方"目标 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/
|
|
|
|
|
+ ```
|
|
|
|
|
+3. 此时可以直接使用域名,如:"http://monitor.lvzhiqiang.top" 来访问面板。
|
|
|
|
|
+4. 将来如果需要再次运行脚本来打开管理脚本 ,可以运行:`bash ./nezha.sh`。
|
|
|
|
|
+
|
|
|
|
|
+## 管理面板配置
|
|
|
|
|
+
|
|
|
|
|
+### 服务器
|
|
|
|
|
+
|
|
|
|
|
+> 服务器区域负责管理 Agent,是哪吒探针中最基础的区域,也是其他功能的基础。
|
|
|
|
|
+
|
|
|
|
|
+1. 新增服务器
|
|
|
|
|
+ - 第一步是新增服务器,可以自定义名称、分组、排序和备注。
|
|
|
|
|
+ - 拥有相同分组的服务器会在受支持的主题中划分到一起进行显示,备注仅会在后台显示,无需担心泄露信息。
|
|
|
|
|
+2. 安装 Agent
|
|
|
|
|
+ - 点击新添加的服务器旁,绿色的 Linux 图标按钮,复制一键安装命令。
|
|
|
|
|
+ - 在被控端服务器中运行复制的一键安装命令,等待安装完成后返回到 Dashboard 主页查看服务器是否上线。
|
|
|
|
|
+
|
|
|
|
|
+### 服务
|
|
|
|
|
+
|
|
|
|
|
+> 服务区域是设置 Agent 监控外部网站或服务器的功能设置区,设置好的服务监控可以在主页中的 "服务" 页查看过去 30 天的可用性监控结果。
|
|
|
|
|
+
|
|
|
|
|
+1. 添加监控
|
|
|
|
|
+ - 名称 - 自定义一个名称,例如上海电信。
|
|
|
|
|
+ - 类型 - 选择一个监控类型,目前哪吒监控支持三种监控类型,分别是 “HTTP-GET”、“ICMP-Ping” 和 “TCP-Ping”。
|
|
|
|
|
+ - 目标 - 根据你选择的类型不同,目标的设置方法也不同
|
|
|
|
|
+ ```
|
|
|
|
|
+ HTTP-GET: 选择此类型,你应该输入一个URL作为目标,URL需添加 http:// 或 https:// 如果你的目标URL是 https:// ,将会同时监控该URL的SSL证书,当SSL证书到期或发生变更,会触发提醒。
|
|
|
|
|
+ ICMP-Ping: 选择此类型时,你应该输入一个域名或IP,不含端口号,例如:1.1.1.1 或 example.com
|
|
|
|
|
+ TCP-Ping: 选择此类型时,你应该输入一个域名或IP并包含端口号,例如:1.1.1.1:80 或 example.com:22
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 请求间隔: 设定 Agent 每次请求目标的时间间隔,以秒为单位。
|
|
|
|
|
+ - 覆盖范围: 选择一条规则来确定要使用哪些 Agent 来请求目标。
|
|
|
|
|
+ - 特定服务器: 配合覆盖范围使用,选择规则内需要排除的 Agent。
|
|
|
|
|
+ - 通知方式组: 选择你已经在 “告警” 页设置好的通知方式,点击这里了解详情。
|
|
|
|
|
+ - 启用故障通知: 根据需要选择是否接收目标故障通知,默认为不勾选。
|
|
|
|
|
+2. 延迟监控
|
|
|
|
|
+
|
|
|
|
|
+ | 地区 | 电信 | 移动 | 联通 | 教育 |
|
|
|
|
|
+ | ------ | --------------- | --------------- | --------------- | ------------- |
|
|
|
|
|
+ | 上海 | 202.96.209.133 | 183.194.219.220 | 210.22.97.1 | 202.120.2.119 |
|
|
|
|
|
+ | 北京 | 49.7.37.74 | 112.34.111.194 | 111.206.209.44 | 166.111.4.100 |
|
|
|
|
|
+ | 广州 | 183.47.126.35 | 120.233.18.250 | 157.148.58.29 | 202.116.64.8 |
|
|
|
|
|
+ | 河北 | 27.185.242.215 | 111.62.229.100 | 61.182.138.156 | |
|
|
|
|
|
+ | 山西 | 1.71.157.41 | 183.201.244.91 | 60.221.18.41 | |
|
|
|
|
|
+ | 辽宁 | 123.184.58.41 | 36.131.156.145 | 218.61.211.132 | |
|
|
|
|
|
+ | 吉林 | 123.172.127.217 | 111.27.127.176 | 122.143.8.41 | |
|
|
|
|
|
+ | 黑龙江 | 42.101.84.132 | 111.42.190.25 | 113.7.211.140 | |
|
|
|
|
|
+ | 江苏 | 58.215.210.220 | 36.156.92.132 | 122.96.235.165 | |
|
|
|
|
|
+ | 浙江 | 115.220.14.91 | 117.147.213.41 | 101.69.194.224 | |
|
|
|
|
|
+ | 安徽 | 223.247.108.251 | 112.29.198.100 | 112.132.208.41 | |
|
|
|
|
|
+ | 福建 | 106.126.10.28 | 112.50.96.88 | 36.248.48.139 | |
|
|
|
|
|
+ | 江西 | 106.227.22.132 | 117.168.150.249 | 116.153.69.224 | |
|
|
|
|
|
+ | 山东 | 144.123.160.140 | 120.220.145.91 | 112.240.56.143 | |
|
|
|
|
|
+ | 河南 | 171.15.110.220 | 111.7.99.220 | 123.6.65.101 | |
|
|
|
|
|
+ | 湖北 | 111.170.8.60 | 111.47.131.101 | 122.189.226.138 | |
|
|
|
|
|
+ | 湖南 | 113.240.117.108 | 120.226.192.91 | 116.162.28.220 | |
|
|
|
|
|
+ | 广东 | 183.36.23.111 | 183.240.65.191 | 112.90.211.100 | |
|
|
|
|
|
+ | 海南 | 124.225.43.220 | 111.29.29.219 | 153.0.226.35 | |
|
|
|
|
|
+ | 四川 | 118.123.218.220 | 183.220.151.41 | 101.206.163.49 | |
|
|
|
|
|
+ | 贵州 | 58.42.61.132 | 61.243.18.220 | 117.187.254.132 | |
|
|
|
|
|
+ | 云南 | 222.221.102.220 | 36.147.44.219 | 14.204.150.41 | |
|
|
|
|
|
+ | 陕西 | 124.115.14.100 | 111.19.148.100 | 123.139.127.132 | |
|
|
|
|
|
+ | 甘肃 | 118.182.228.91 | 117.157.16.41 | 59.81.94.53 | |
|
|
|
|
|
+ | 青海 | 223.221.216.219 | 111.12.152.170 | 116.177.237.137 | |
|
|
|
|
|
+ | 内蒙古 | 110.76.186.70 | 117.161.76.41 | 116.114.98.41 | |
|
|
|
|
|
+ | 广西 | 222.217.93.55 | 36.136.112.41 | 171.39.5.51 | |
|
|
|
|
|
+ | 西藏 | 113.62.176.89 | 117.180.234.41 | 43.242.165.35 | |
|
|
|
|
|
+ | 宁夏 | 222.75.44.220 | 111.51.155.214 | 116.129.226.28 | |
|
|
|
|
|
+ | 新疆 | 110.157.243.45 | 36.189.208.164 | 116.178.77.40 | |
|
|
|
|
|
+ | 天津 | 42.81.98.35 | 111.31.236.35 | 116.78.119.56 | |
|
|
|
|
|
+ | 重庆 | 119.84.131.101 | 221.178.81.101 | 113.207.69.190 | |
|
|
|
|
|
+
|
|
|
|
|
+### 任务
|
|
|
|
|
+
|
|
|
|
|
+> 1. 在任务区域中,可以设置计划任务,触发任务,多服务器批量执行任务。
|
|
|
|
|
+> 2. 哪吒监控支持推送命令到 Agent 执行,因此此功能非常灵活,使用此功能可以定期结合 restic、rclone 给服务器备份,定期重启某项服务来重置网络连接。也可以配合告警通知,在触发告警时执行某项任务,如 CPU 在长时期处于高占用的情况下运行某个脚本。
|
|
|
|
|
+
|
|
|
|
|
+- 添加计划任务
|
|
|
|
|
+ - 名称 - 自定义一个任务名称。
|
|
|
|
|
+ - 任务类型 - 选择任务的类型。
|
|
|
|
|
+ 计划任务 - 按下方设置的计划时间,周期性执行任务。
|
|
|
|
|
+ 触发任务 - 仅被 API 或告警规则触发的任务,每次触发执行一次。
|
|
|
|
|
+ - 计划 - (使用触发任务类型时不生效)设置计划时间,时间的格式为: * * * * * * 分别对应 秒 分 时 天 月 星期,详情见[计划表达式格式](https://pkg.go.dev/github.com/robfig/cron/v3#hdr-CRON_Expression_Format)。
|
|
|
|
|
+ 如:0 0 3 * * * 对应为 每天3点。
|
|
|
|
|
+ - 命令 - 你可以在这里设置需要执行的命令,就像写 Shell/Bat 脚本一样,但是不推荐换行,多个命令使用 &&/& 连接。
|
|
|
|
|
+ 例如执行定期重启命令,可以在这里输入 reboot。
|
|
|
|
|
+ - 覆盖范围 和 特定服务器 - 跟“服务”页中的设置类似,选择规则来确定哪些 Agent 执行计划任务。
|
|
|
|
|
+ 使用触发任务类型时,可选择由触发的服务器执行。
|
|
|
|
|
+ - 通知方式组 - 选择你已经在 “告警” 页设置好的通知方式。
|
|
|
|
|
+ - 推送成功的消息 - 勾选此项,任务执行成功后会触发消息通知。
|
|
|
|
|
+
|
|
|
|
|
+### 告警
|
|
|
|
|
+
|
|
|
|
|
+> 哪吒监控支持对服务器的负载、CPU、内存、硬盘、流量、月流量、进程数、连接数进行监控,并在其中某项达到用户设定值时发送告警通知。
|
|
|
|
|
+
|
|
|
|
|
+- 基本规则
|
|
|
|
|
+
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 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:
|
|
|
|
|
+ - 0 监控所有,通过 ignore 忽略特定服务器
|
|
|
|
|
+ - 1 忽略所有,通过 ignore 监控特定服务器
|
|
|
|
|
+ - 例如:[{"type":"offline","duration":10, "cover":0, "ignore":{"5": true}}]
|
|
|
|
|
+ - ignore: 选择忽略特定服务器,搭配 cover 使用,内容为服务器 id 和布尔值,例如:{"1": true, "2":false}
|
|
|
|
|
+ ```
|
|
|
|
|
+- 流量监控规则
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 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 参考基本规则配置
|
|
|
|
|
+ ```
|
|
|
|
|
+---
|
|
|
|
|
+- 通知方式
|
|
|
|
|
+ - API接口
|
|
|
|
|
+ ```
|
|
|
|
|
+ 名称:企业微信-jav
|
|
|
|
|
+ URL:https://jav.lvzhiqiang.top/coin/serverMonitorAlarm
|
|
|
|
|
+ 请求方式: POST
|
|
|
|
|
+ 请求类型: JSON
|
|
|
|
|
+ Body: {"内容": "#NEZHA#"}
|
|
|
|
|
+ ```
|
|
|
|
|
+ - 企业微信
|
|
|
|
|
+ ```
|
|
|
|
|
+ 名称:企业微信-群聊机器人
|
|
|
|
|
+ URL:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxx
|
|
|
|
|
+ 请求方式: POST
|
|
|
|
|
+ 请求类型: JSON
|
|
|
|
|
+ Body: {"msgtype":"markdown","markdown":{"content":"# 哪吒通知消息\n\n\"#NEZHA#\""}}
|
|
|
|
|
+ ```
|
|
|
|
|
+- 告警规则
|
|
|
|
|
+ - 离线通知
|
|
|
|
|
+ - [{"type":"offline","duration":10}]
|
|
|
|
|
+ - 流量告警
|
|
|
|
|
+ - [{"type":"transfer_all_cycle","max":1099511627776,"cycle_start":"2024-04-14T00:00:00+08:00","cycle_interval":1,"cycle_unit":"month","cover":1,"ignore":{"1":true}}]
|
|
|
|
|
+ - 网速报警
|
|
|
|
|
+ - [{"type":"net_out_speed","max":5242880,"duration":10,"ignore":{"3":true}}]
|
|
|
|
|
+ - CPU100%
|
|
|
|
|
+ - [{"type":"cpu","max":98,"duration":10}]
|
|
|
|
|
+ - CPU+内存
|
|
|
|
|
+ - CPU 持续 10s 超过 50% 且 内存持续 20s 占用低于 20% 的报警
|
|
|
|
|
+ - [{"type":"cpu","max":50,"duration":10},{"type":"memory","min":20,"duration":20}]
|
|
|
|
|
+
|
|
|
|
|
+### 设置
|
|
|
|
|
+
|
|
|
|
|
+1. 未接入 CDN 的面板服务器域名/IP
|
|
|
|
|
+ - 设置好通信域名,此域名不可以接入CDN,这里以示例通信域名 "monitor-data.lvzhiqiang.top" 来做演示。
|
|
|
|
|
+ - 进入后台管理面板,转到“设置”页,在“未接入 CDN 的面板服务器域名/IP”项中填入通信域名,然后点击"保存"。
|
|
|
|
|
+2. 调整最大TCPPing值
|
|
|
|
|
+ - 修改文件:/nezha/data/config.yaml,调整MaxTCPPingValue值。
|
|
|
|
|
+3. 隐藏服务中的状态文字
|
|
|
|
|
+ ```css
|
|
|
|
|
+ <style>
|
|
|
|
|
+ .service-status .delay-today-text{display: none;visibility: hidden;}
|
|
|
|
|
+ </style>
|
|
|
|
|
+ ```
|
|
|
|
|
+4. 设置页面宽度
|
|
|
|
|
+ ```css
|
|
|
|
|
+ <style>
|
|
|
|
|
+ .container {
|
|
|
|
|
+ width: 1540px;
|
|
|
|
|
+ }
|
|
|
|
|
+ </style>
|
|
|
|
|
+ ```
|
|
|
|
|
+
|
|
|
|
|
+## 参考链接
|
|
|
|
|
+
|
|
|
|
|
+<https://bigdata.icu/tools/soft/nezha.html>
|
|
|
|
|
+<https://nezha.wiki>
|
|
|
|
|
+
|
|
|
|
|
+## 结束语
|
|
|
|
|
+
|
|
|
|
|
+- 未完待续...
|