Loading... **哪吒监控** 一站式轻监控轻运维系统。支持系统状态、HTTP(SSL 证书变更、即将到期、到期)、TCP、Ping 监控报警,计划任务和在线终端。  开源地址: [https://github.com/naiba/nezha](https://github.com/naiba/nezha) 预览地址: [https://ops.naibahq.com/](https://ops.naibahq.com/) ### 功能说明 计划任务:备份脚本、服务重启,等定期运维任务。 使用此功能可以定期结合 restic、rclone 给服务器备份,或者定期某项重启服务来重置网络连接。 报警通知:负载、CPU、内存、硬盘、带宽、流量、月流量、进程数、连接数实时监控。 服务监控:HTTP、SSL证书、ping、TCP 端口等。 自定义代码:改LOGO、改色调、加统计代码等。 ### 部署教程 #### 一. 设置域名解析 可以直接用 `ip+端口`方式访问,为了安全及后期维护迁移方便,强烈建议设置用域名访问。准备两个域名,用本站域名举例: * 域名1:`tz.dmgls.com` 作为面板访问域名,套 CDN(保护源站IP不泄露)。 * 域名2:`a.dmgls.com` 不套CDN,指向面板服务器 IP,作为客户端与面板连接使用。 两个域名都解析到部署面板服务器的IP。 #### 二. 创建 GitHub OAuth Apps 需要有Github账号,没有的话先注册一个。这一步让Github账号用作面板后台登录验证。 ##### 1. 创建 OAuth Apps 打开 [Github Developer settings](https://github.com/settings/developers) ,点击 `New OAuth App` 按钮  #### 2. 填写站点名称和 URL 信息 请参考图片填写,把 `tz.dmgls.com` 更换成自己面板域名,填写好以后点击 `Register application`。 <pre><a class="btn-copy-code"><i class="fas fa-copy"></i></a><code>https://tz.dmgls.com https://tz.dmgls.com/oauth2/callback</code></pre>  #### 3. 获取 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 ``` 国内镜像加速: ```shell curl -L https://cdn.jsdelivr.net/gh/naiba/nezha@master/script/install.sh -o nezha.sh && chmod +x nezha.sh CN=true sudo ./nezha.sh ```  ### 四. 设置域名访问 #### 1. 设置反向代理 在宝塔面板中新建站点,我这里是 `tz.dmgls.com `然后设置反代。  反向代理配置文件: ``` 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; } ``` #### 2. 配置 SSL 证书 直接在宝塔面板中一键获取 `Let's Encrypt` 免费证书。如果域名托管在 Cloudflare,也可以使用CF生成的免费长期证书,填在面板中使用。然后开启强制 HTTPS 即可。 现在就可以直接通过域名访问哪吒探针了,现在我们来配置被监控的服务器。 ### 五. 部署哪吒探针客户端(被监控) #### 1. 在哪吒面板中生成客户端连接 **密钥** 打开哪吒面板,点击登录后台,通过GitHub账号验证后进入管理后台,添加服务器,创建好以后记下生成的 **密钥**   #### 2. 一键安装客户端 键入后按提示 **安装监控Agent** ,依次输入 **域名2** (我这里是 `b.moththe.com`), 上一步骤中生成的连接 **密钥** 等相关信息。 ``` curl -L https://raw.githubusercontent.com/naiba/nezha/master/script/install.sh -o nezha.sh && chmod +x nezha.sh sudo ./nezha.sh ```  有多台被监控机器时,按照此步骤在控制面板添加服务器。其他功能可自行在哪吒面板后台摸索。 ## 常见问题 #### 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` 同步一下面板部署所在的服务器的时间。 ### 增强配置 通过执行 `./nezha-agent --help` 查看支持的参数,如果你使用一键脚本,可以编辑 `/etc/systemd/system/nezha-agent.service`,在 `ExecStart=` 这一行的末尾加上 * `--report-delay` 系统信息上报的间隔,默认为 1 秒,可以设置为 3 来进一步降低 agent 端系统资源占用(配置区间 1-4) * `--skip-conn` 不监控连接数,机场/连接密集型机器推荐设置,不然比较占 CPU([shirou/gopsutil/issues#220](https://github.com/shirou/gopsutil/issues/220)) * `--skip-procs` 不监控进程数,也可以降低 agent 占用 * `--disable-auto-update` 禁止**自动更新** Agent(安全特性) * `--disable-force-update` 禁止**强制更新** Agent(安全特性) * `--disable-command-execute` 禁止在 Agent 机器上执行定时任务、打开在线终端(安全特性) * `--tls` 启用 SSL/TLS 加密(使用 nginx 反向代理 Agent 的 grpc 连接,并且 nginx 开启 SSL/TLS 时,需要启用该项配置) <hr class="content-copyright" style="margin-top:50px" /><blockquote class="content-copyright" style="font-style:normal"><p class="content-copyright">版权属于:大漠孤狼</p><p class="content-copyright">本文链接:<a class="content-copyright" href="https://www.dmgls.com/1282.html">https://www.dmgls.com/1282.html</a></p><p class="content-copyright">转载时须注明出处及本声明</p></blockquote> Last modification:December 17th, 2021 at 10:56 am © 允许规范转载 Support 如果觉得我的文章对你有用,请随意赞赏 Appreciate the author