xChar
·5 months ago

由于我以前秉承着鸡蛋不放一个篮子里面,并且商家做一些活动卖一些年付机器也比较划算,就不停的买小鸡,最多手里有二十几台机器 性能机杜甫小鸡都有。以前基本不给小鸡上针,手里捏着一二十台也懒得去聚合到一起管理,我觉得也没多大用处,顶多这个服务器上跑了某个程序挂了域名,弄个监控告警就完事了。

现在目前还有十几台小鸡,最近挂上了哪吒探针 看着莫名的爽。

:p[Snipaste_2024-04-07_09-02-38]{.center}

去年年初在CLOUDCONE买的几台垃圾小鸡,到今年年初自动扣信用卡了,由于是年费不得不用了,好在现在也都利用起来了。

在线时间都比较新,用前我都喜欢重装一下系统。

搭建教程:

哪吒探针官方文档:https://nezha.wiki/

GitHub:https://github.com/naiba/nezha

准备好一台vps小鸡作为面板端,再准备几台vps小鸡作为监控端。

解析两条域名到面板端,一条可以套CDN作为面板端访问,一条不能套作为通信端的通信(使用服务器IP也是可以的),CDN 需要支持WebSocket 协议。

准备nginx反向代理用于域名访问,宝塔面板来反向代理也是可以的。

搭建面板端

获取 Github 的 Client ID 和密钥

因为哪吒监控接入 Github、Gitlab、Gitee 作为后台管理员账号,所以我们需要创建一个第三方登录应用。

这里使用GitHub作为演示(先打开GitHub页面登录):

再打开:https://github.com/settings/developers 依次选择“OAuth Apps” - “New OAuth App”

:p[2024040403125724]{.center}

Application name - 随意填写Homepage URL - 填写面板的访问域名

如:"http://cdn.example.com" (你的域名)Authorization callback URL - 填写回调地址

如:"http://cdn.example.com/oauth2/callback" (不要忘记/oauth2/callback

:p[2024040403132190]{.center}

点击 “Register application”

保存页面中的 Client ID,然后点击 “Generate a new client secret“,创建一个新的 Client Secret,新建的密钥仅会显示一次,请妥善保存。请看下图:

:p[2024040403140181]{.center}

在服务器中安装面板端

在面板服务器中,运行安装脚本:

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

如果你的面板服务器位于中国大陆,可以使用镜像:

curl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
  • 等待Docker安装完毕后,分别输入以下值:

  • OAuth提供商 - Github,Gitlab,Gitee 中选择一个

  • Client ID - 之前保存的 Client ID

  • Client Secret - 之前保存的密钥

  • 用户名 - OAuth 提供商中的用户名

  • 站点标题 - 自定义站点标题

  • 访问端口 - 公开访问端口,可自定义,默认 8008

  • Agent的通信端口 - Agent 与 Dashboard 的通信端口,默认 5555

  • 输入完成后,等待拉取镜像

  • 安装结束后,如果一切正常,此时你可以访问域名+端口号,如 “http://cdn.example.com:8008” 来查看面板

  • 将来如果需要再次运行脚本,可以运行:

./nezha.sh

来打开管理脚本。

配置反向代理

在宝塔面板中新建一个站点,域名填写公开访问域名,如 “http://cdn.example.com“ ,然后点击“设置”进入站点设置选项,选择“反向代理” - “新建反向代理”

自定义一个代理名称,在下方“目标 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/

点击“保存”现在,你应该可以直接使用域名,如:“http://cdn.example.com“ 来访问面板了。

搭建监控端

目前哪吒监控已支持在 Windows 和 Linux上一键安装 Agent,你可以很轻松的在服务器上部署它。

准备工作

你需要提前在管理面板中设置好通信域名,此域名不可以接入CDN,这里以示例通信域名 “data.example.com” 来做演示
进入后台管理面板,转到“设置”页,在“未接入 CDN 的面板服务器域名/IP”项中填入通信域名,然后点击"保存"

在 Linux 中一键安装 (Ubuntu、Debian、CentOS)

首先在管理面板中添加一台服务器

点击新添加的服务器旁,绿色的 Linux 图标按钮,复制一键安装命令

在被控端服务器中运行复制的一键安装命令,等待安装完成后返回到 Dashboard 主页查看服务器是否上线。

在 Windows 中一键安装

首先在管理面板中添加一台服务器

点击新添加的服务器旁,绿色的 Windows 图标按钮,复制一键安装命令

进入 Windows 服务器,运行 PowerShell,在 PowerShell 中运行复制的安装命令

如遇到确认「执行策略变更」请选择 Y

等待安装完成后返回 Dashboard 主页查看服务器是否上线

其他方式安装 Agent(监控端)

在 Linux 中安装

首先在管理面板中添加一台服务器

在被控服务器中,运行脚本(位于中国大陆的服务器请使用镜像):

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

如果你的被控服务器位于中国大陆,可以使用镜像:

curl -L https://gitee.com/naibahq/nezha/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
  • 选择“安装监控 Agent”
  • 输入通信域名,如:”data.example.com“
  • 输入面板通信端口( gRPC 端口),默认为 5555
  • 输入 Agent 密钥,Agent 密钥在管理面板中添加服务器时生成,可以在管理面板中的“服务器”页中找到
  • 等待安装完成后返回 Dashboard 主页查看服务器是否上线

在 Windows 中手动安装

请参考社区文章:哪吒探针 - Windows 客户端安装

国内无法安装监控端

如果你使用官方的镜像脚本去安装可能会出现和我一样的情况:

:p[Snipaste_2024-04-07_08-38-10]{.center}
:p[Snipaste_2024-04-07_08-38-28]{.center}

以下内容来自nezha.sh

NZ_BASE_PATH="/opt/nezha"
NZ_AGENT_PATH="${NZ_BASE_PATH}/agent"
NZ_AGENT_SERVICE="/etc/systemd/system/nezha-agent.service"
  1. "/opt/nezha" 为面板核心的存放目录,包括Dashboard 和 Agent
  2. "/opt/nezha/agent" 结合上文,此目录就为代理端核心文件的存放位置
  3. "/etc/systemd/system/nezha-agent.service"
  4. 对Liunx系统比较熟悉的小伙伴就会知道这个文件决定的哪吒代理端的开机启动

操作步骤

请自行从:https://api.github.com/repos/nezhahq/agent/releases/latest 上下载nezha-agent到本地,选择你的系统版本的压缩包 解压出来会有一个二进制的文件。

在服务器上创建"/opt/nezha/agent"目录,将nezha-agent放入 然后执行:

chmod +x nezha-agent

"/etc/systemd/system/" 目录新建一个nezha-agent.service文件,把下面的代码替换然后保存进去:

[Unit]
Description=Nezha Agent
After=syslog.target
#After=network.target
#After=nezha-dashboard.service

[Service]
# Modify these two values and uncomment them if you have
# repos with lots of files and get an HTTP error 500 because
# of that
###
#LimitMEMLOCK=infinity
#LimitNOFILE=65535
Type=simple
User=root
Group=root
WorkingDirectory=/opt/nezha/agent/
ExecStart=/opt/nezha/agent/nezha-agent -s 1.1.1.1:5555 -p 密钥
Restart=always
#Environment=DEBUG=true

# Some distributions may not support these hardening directives. If you cannot start the service due
# to an unknown option, comment out the ones not supported by your version of systemd.
#ProtectSystem=full
#PrivateDevices=yes
#PrivateTmp=yes
#NoNewPrivileges=true

[Install]
WantedBy=multi-user.target

1.1.1.1:5555和密钥替换成你自己的,最后执行下面的命令:

systemctl daemon-reload
systemctl enable nezha-agent
systemctl restart nezha-agent

最后刷新哪吒探针的后台就能看见小鸡上线啦。

Loading comments...