前言
哪吒监控 一站式轻监控轻运维系统。支持系统状态、HTTP(SSL 证书变更、即将到期、到期)、TCP、Ping 监控报警,命令批量执行和计划任务。
宝塔服务器面板,一键全能部署及管理,送你3188元礼包,点我领取
预览
![图片[1]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz11-1024x263.png)
开源地址:https://github.com/naiba/nezha
预览地址:https://nz.1aii.cn
功能说明
使用此功能可以定期结合 restic、rclone 给服务器备份,或者定期某项重启服务来重置网络连接。
灵活通知方式
#NEZHA#
;是面板消息占位符,面板触发通知时会自动替换占位符到实际消息
Body 内容是JSON
;格式的:当请求类型为 FORM 时,值为;key:value
;的形式,value
;里面可放置占位符,通知时会自动替换。当请求类型为 JSON 时;只会简进行字符串替换后直接提交到URL
。
URL 里面也可放置占位符,请求时会进行简单的字符串替换。
参考下方的示例,非常灵活。
- 添加通知方式
- 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":[],"content":"#NEZHA#","contentType":"1","uids":["你的uid"]}
- telegram 示例;@haitau;贡献
- 名称:telegram 机器人消息通知
- URL:https://api.telegram.org/botXXXXXX/sendMessage?chat_id=YYYYYY&text=#NEZHA#
- 请求方式: GET
- 请求类型: 默认
- Body: 空
- URL 参数获取说明:botXXXXXX 中的 XXXXXX 是在 telegram 中关注官方 @Botfather ,输入/newbot ,创建新的机器人(bot)时,会提供的 token(在提示 Use this token to access the HTTP API:后面一行)这里 ‘bot’ 三个字母不可少。创建 bot 后,需要先在 telegram 中与 BOT 进行对话(随便发个消息),然后才可用 API 发送消息。YYYYYY 是 telegram 用户的数字 ID。与机器人@userinfobot 对话可获得。
- server 酱示例
- 添加一个离线报警
- 名称:离线通知
- 规则:
[{"Type":"offline","Duration":10}]
- 启用:√
- 添加一个监控 CPU 持续 10s 超过 50%;且;内存持续 20s 占用低于 20% 的报警
- 名称:CPU+内存
- 规则:
[{"Type":"cpu","Min":0,"Max":50,"Duration":10},{"Type":"memory","Min":20,"Max":0,"Duration":20}]
- 启用:√
- 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 周期开始日期(可以是你机器计费周期的开始日期)
- cycle_interval 小时(可以设为 1 月,30*24)
- min/max、cover、ignore 参考基本规则配置
- 示例: 3 号机器的每月 15 号计费的出站月流量 1T 报警;
[{"type":"transfer_out_cycle","max":1000000000000,"cycle_start":"2021-07-15T08:00:00Z","cycle_interval":720,"cover":1,"ignore":{"3":true}}]
进入 /monitor
页面点击新建监控即可,表单下面有相关说明。
默认主题更改进度条颜色示例
<style>
.ui.fine.progress>.bar{
background-color:pink!important;
}
</style>
DayNight 主题更改进度条颜色示例(来自@hyt-allen-xu)
<style>
.ui.fine.progress>.progress-bar{
background-color:#00a7d0!important;
}
</style>
默认主题修改 LOGO、移除版权示例(来自@iLay1678)
<style>
.right.menu>a{
visibility:hidden;
}
.footer.is-size-7{
visibility:hidden;
}
.itemimg{
visibility:hidden;
}
</style>
<script>
window.onload=function(){
varavatar=document.querySelector(".itemimg")
varfooter=document.querySelector("div.is-size-7")
footer.innerHTML="Poweredby你的名字"
footer.style.visibility="visible"
avatar.src="你的方形logo地址"
avatar.style.visibility="visible"
}
</script>
DayNight 移除版权示例(来自@hyt-allen-xu)
<script>
window.onload=function(){
varfooter=document.querySelector("div.footer-container")
footer.innerHTML="©2021你的名字&Poweredby你的名字"
footer.style.visibility="visible"
}
</script>
hotaru 主题更改背景图片示例
<style>
.hotaru-cover{
background:url(https://s3.ax1x.com/2020/12/08/DzHv6A.jpg)center;
}
</style>
教程开始:
一. 设置域名解析
可以直接用 ip+端口
方式访问,为了安全及后期维护迁移方便,强烈建议设置用域名访问。准备两个域名,用本站域名举例:
- 域名A:
a.1aii.cn
作为面板访问域名,套 CDN(保护源站IP不泄露,当然如果你不当心源站IP泄露的问题,也可以不套CDN,看个人需求)。 - 域名B:
b.1aii.cn
不套CDN,指向面板服务器 IP,作为客户端与面板连接使用。
两个域名都解析到部署面板服务器的IP。
二. 创建 GitHub OAuth Apps
需要有Github账号,没有的话先注册一个。这一步让Github账号用作面板后台登录验证。
1. 创建 OAuth Apps
打开 Github Developer settings ,点击 New OAuth App
按钮
![图片[2]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz21-1024x460.png)
2. 填写站点名称和 URL 信息
请参考图片填写,把 a.1aii.cn
更换成自己面板域名,填写好以后点击 Register application
。
- https://a.1aii.cn
- https://a.1aii.cn/oauth2/callback
![图片[3]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz31.png)
3. 获取 OAuth Apps的 Client ID
和 Client secret
参照下图创建 client id 和 clients secret 并记下来。
![图片[4]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz41.png)
三. 宝塔面板设置域名、证书与反代
1.添加域名,按照下图替换添加自己的域名
![图片[5]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz51.png)
2.域名证书申请
站点创建成功后,点击对应网站后方的设置按钮
![图片[6]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz61-1024x237.png)
在打开的窗口中按下图顺序申请SSL证书
![图片[7]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz71.png)
3.设置反向代理
1.在网站设置页面按照下图顺序操作
![图片[8]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz81.png)
2.点击配置文件按钮,修改反代配置文件
![图片[9]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz91.png)
location /
{
proxy_pass http://127.0.0.1:8008;
proxy_set_header Host $host;
}
location /ws
{
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 $host;
}
4.开放端口
在宝塔面板中依次放行8008与5555端口
![图片[10]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz101.png)
四.面板部署
连接面板服务器后,输入官方一键脚本,依次填写上面步骤获取的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
![图片[11]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz111.png)
五.服务端部署
1.打开浏览器,访问刚才在宝塔面板中创建站点的A域名,点击又上角的登录按钮,以GitHub账号登录。
2.登录成功后,点击右上角用户名,点击管理后台,在打开的页面中点击添加服务器
![图片[12]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz121.png)
3.记下生成的密钥
![图片[13]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz131-1024x263.png)
4.连接上需要被监控的服务器,键入一键代码,选择8后填写B域名以及密钥
curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh
sudo ./nezha.sh
![图片[14]-哪吒面板|哪吒探针、服务器状态监控面板教程-踩坑日记](https://1aii.cn/wp-content/uploads/2025/06/nz141.png)
返回前端刷新页面便可以看到刚才添加的服务器了。
至此,哪吒面板便配置完毕。多台服务器添加请重复第五步,更多面板功能大家自行摸索。
常见问题:
数据储存在 /opt/nezha
文件夹中,迁移数据时打包这个文件夹,到新环境解压。然后执行一键脚本安装即可
编辑/etc/systemd/system/nezha-agent.service
,在ExecStart=
这一行的末尾加上-kconn
就是不监控连接数,加上-kprocess
就是不监控进程数
- 直接执行
/opt/nezha/agent/nezha-agent -s 面板IP或非CDN域名:面板RPC端口 -p Agent密钥 -d
查看日志是否是 DNS 问题。 nc -v 域名/IP 面板RPC端口
或者telnet 域名/IP 面板RPC端口
检验是否是网络问题,检查本机与面板服务器出入站防火墙,如果单机无法判断可借助https://port.ping.pe/提供的端口检查工具进行检测。- 如果上面步骤检测正常,Agent 正常上线,尝试关闭 SELinux,如何关闭 SELinux?
首先在 release 下载对应的二进制解压 tar.gz 包后放置到/root
,然后chmod +x /root/nezha-agent
赋予执行权限,然后创建/etc/init.d/nezha-service
:
<strong>Nginx(宝塔):在你的 nginx 配置文件中加入以下代码</strong>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j" start="1">
<li class="alt">server{</li>
<li class=""></li>
<li class="alt">#原有的一些配置</li>
<li class="">#server_nameblablabla...</li>
<li class="alt"></li>
<li class="">location~^/(ws|terminal/.+)${</li>
<li class="alt">proxy_passhttp:<span class="comment">//ip:站点访问端口;</span></li>
<li class="">proxy_http_version<span class="number">1.1</span>;</li>
<li class="alt">proxy_set_headerUpgrade$http_upgrade;</li>
<li class="">proxy_set_headerConnection<span class="string">"Upgrade"</span>;</li>
<li class="alt">proxy_set_headerHost$host;</li>
<li class="">}</li>
<li class="alt"></li>
<li class="">#其他的locationblablabla...</li>
<li class="alt">}</li>
</ol>
</div>
<strong>CaddyServer v1(v2 无需特别配置)</strong>
<div class="dp-highlighter">
<div class="bar"></div>
<ol class="dp-j" start="1">
<li class="alt">proxy/wshttp:<span class="comment">//ip:8008{</span></li>
<li class="">websocket</li>
<li class="alt">}</li>
<li class="">proxy/terminal/*http:<span class="comment">//ip:8008{</span></li>
<li class="alt">websocket</li>
<li class="">}</li>
</ol>
</div>
Nginx(宝塔):在你的 nginx 配置文件中加入以下代码
server{
#原有的一些配置
#server_name blablabla…
location ~ ^/(ws|terminal/.+)$ {
proxy_pass http://ip:站点访问端口;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection “Upgrade”;
proxy_set_header Host $host;
}
#其他的 location blablabla…
}
CaddyServer v1(v2 无需特别配置)
proxy/wshttp://ip:8008{
websocket
}
proxy/terminal/*http://ip:8008{
websocket
}
开源地址:https://github.com/naiba/nezha
预览地址:https://nz.1aii.cn
暂无评论内容