Bladeren bron

add:VPS监控:哪吒监控v1

lvzhiqiang 1 jaar geleden
bovenliggende
commit
b348adf27c
1 gewijzigde bestanden met toevoegingen van 266 en 0 verwijderingen
  1. 266 0
      source/_posts/st-monitoring-nezha.md

+ 266 - 0
source/_posts/st-monitoring-nezha.md

@@ -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>
+
+## 结束语
+
+- 未完待续...