VPS监控:哪吒监控

  1. 目录
  2. 简介
  3. 安装
    1. 获取 Github 的 Client ID 和密钥
    2. 运行面板安装脚本
  4. 管理面板配置
    1. 服务器
    2. 服务
    3. 任务
    4. 告警
    5. 设置
  5. 参考链接
  6. 结束语

目录

简介

  • 开源、轻量、易用的服务器监控、运维工具。
  • 一键安装:支持一键安装面板和监控服务,使用方便。主流系统包括Linux、Windows、MacOS、OpenWRT以及群晖均受支持。
  • 实时监控:支持同时监控多个服务器的状态,提供历史延迟图表,并可监控网页、端口可用性和SSL证书状态。支持故障和流量等状态告警,可通过Telegram、邮件、微信等多种通知方式进行提醒。
  • 轻松运维:可使用API获取服务器状态,支持WebSSH、DDNS和流量监控,可设置定时和触发任务并批量执行服务器任务。

安装

哪吒监控接入 Github、Gitlab、Gitee 作为后台管理员账号。

获取 Github 的 Client ID 和密钥

  1. 打开Developer Settings,依次选择OAuth Apps - New OAuth App 新建授权应用。
  2. 填写应用信息。
  3. Register application 注册应用。
  4. 保存页面中的 Client ID,然后点击 “Generate a new client secret“,创建一个新的 Client Secret,新建的密钥仅会显示一次,请妥善保存。

运行面板安装脚本

# 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 或告警规则触发的任务,每次触发执行一次。
    • 计划 - (使用触发任务类型时不生效)设置计划时间,时间的格式为: * * * * * * 分别对应 秒 分 时 天 月 星期,详情见计划表达式格式
      如: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. 隐藏服务中的状态文字
    <style>
    .service-status .delay-today-text{display: none;visibility: hidden;}
    </style>
  4. 设置页面宽度
    <style>
    .container {
        width: 1540px;
    }
    </style>

参考链接

https://bigdata.icu/tools/soft/nezha.html
https://nezha.wiki

结束语

  • 未完待续…

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 tujide.lv@foxmail.com

文章标题:VPS监控:哪吒监控

字数:266

本文作者:Tujide.lv

发布时间:2024-04-23, 14:25:00

最后更新:2024-07-27, 09:16:53

原始链接:https://lvzhiqiang.top/2024/04/23/st-monitoring-nezha.html

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

×

喜欢就点赞,疼爱就打赏