开源地址: https://github.com/naiba/nezha

预览地址: https://ops.naibahq.com/

功能特性
计划任务:备份脚本、服务重启,等定期运维任务。
报警通知:CPU、内存、硬盘、带宽、流量实时监控。
服务监控:HTTP、SSL证书、ping、TCP 端口等。
自定义代码:改LOGO、改色调、加统计代码等。
**部署教程
一. 设置域名解析**
可以直接用 ip+端口方式访问,为了安全及后期维护迁移方便,强烈建议设置用域名访问。准备两个域名,用本站域名举例:

域名1:a.akkdiy.cn 作为面板访问域名,套 CDN(保护源站IP不泄露)。
域名2:b.akkdiy.cn 不套CDN,指向面板服务器 IP,作为客户端与面板连接使用。
两个域名都解析到部署面板服务器的IP。

二. 创建 GitHub OAuth Apps
需要有Github账号,没有的话先注册一个。这一步让Github账号用作面板后台登录验证。

1. 创建 OAuth Apps
打开 Github Developer settings ,点击 New OAuth App 按钮

2. 填写站点名称和 URL 信息
请参考图片填写,把 a.akkdiy.cn 更换成自己面板域名,填写好以后点击 Register application。

https://a.akkdiy.cn
http://a.akkdiy.cn/oauth2/callback
  1. 获取 OAuth Apps的 Client ID 和 Client secret
    参照下图创建 client id 和 clients secret 并记下来。

三. 部署哪吒探针面板端

  1. 放行对应端口
    放行8008、5555两个端口,这是默认的,如果你安装中改为其他端口,防火墙放行相应的端口。
  2. 一键安装脚本
    键入后按提示安装面板端,依次输入上面步骤获取的Client ID,Client secret 等相关信息。

    curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh
    sudo ./nezha.sh

    一键安装客户端
    键入后按提示 安装监控Agent,依次输入 域名2(我这里是b.akkdiy.cn), 上一步骤中生成的连接 密钥 等相关信息。

    curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh
    sudo ./nezha.sh

有多台被监控机器时,按照此步骤在控制面板添加服务器。其他功能可自行在哪吒面板后台摸索。

常见问题

0.如何使 OpenWrt/LEDE 自启动?来自 @艾斯德斯
首先在 release 下载对应的二进制解压 tar.gz 包后放置到 /root,然后 chmod +x /root/nezha-agent 赋予执行权限,然后创建 /etc/init.d/nezha-service

#!/bin/sh /etc/rc.common

START=99
USE_PROCD=1

start_service() {
 procd_open_instance
 procd_set_param command /root/nezha-agent -s 面板网址:接收端口 -p 唯一秘钥 -d
 procd_set_param respawn
 procd_close_instance
}

stop_service() {
    killall nezha-agent
}

restart() {
 stop
 sleep 2
 start
}

赋予执行权限 chmod +x /etc/init.d/nezha-service 然后启动服务 /etc/init.d/nezha-service enable && /etc/init.d/nezha-service start

  1. Centos8 中部署客户端或者面板端,一直显示 离线
    请关闭SElinux,打开配置文件 vi /etc/selinux/config ,将 SELINUX=enforcing 改为 SELINUX=disabled,重启机器 reboot,然后键入安装脚本选择 重启Agent。
  2. 修改服务器信息后变成 离线
    在安装客户端(被监控)的服务器上执行 systemctl restart nezha-agent 重启程序。
  3. 启动nezha-agent还是一直显示 离线
    检查配置有没有写对 cat /etc/systemd/system/nezha-agent.service | grep ExecStart。
  4. 如何进行数据迁移、备份恢复?
    数据储存在 /opt/nezha 文件夹中,迁移数据时打包这个文件夹,到新环境解压。然后执行一键脚本安装即可。
  5. 首页服务器随机闪烁掉线?
    执行 ntpdate 0.pool.ntp.org 同步一下面板部署所在的服务器的时间。
    6.TG机器人设置
    先申请一个机器人 @Botfather ,然后/newbot ,创建新的机器人(bot)时,会提供的 token(在提示 Use this token to access the HTTP API:后面一行)这里 'bot' 三个字母不可少;然后获取自己TG的数字Id, 和这个机器人 @userinfobot 对话可获得一串数字;这两个保存下来,一会备用。

进入面板机后台,报警——先添加通知方式,格式为

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

其中bot后面的XXX为机器人的token,chat_id为你自己TG的ID。

然后添加报警规则,常用的离线规则为

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

上面的语法为,被控机10秒内没有数据传至面板机,就视为离线,TG机器人就会通知你哪台机器离线,考虑到国内外机器的网络情况,这个数值太小,误报几率大,建议设置大一点,我设置的为300秒,相对准确,不会被骚扰。

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

设置后记得设为启动就行。

Last modification:December 29, 2021
If you think my article is useful to you, please feel free to appreciate