CentOS7 下搭建哪吒监控面板(附带监控端的安装)
本文最后更新于 298 天前,其中的信息可能已经有所发展或是发生改变。

1. Zabbix 痛点和其他监控面板的选型

虽然已经搭建了 Zabbix 用以监控业务服务器的运行状况,不过其仍存在部分痛点:

  1. 繁琐的 agent 节点添加流程,注定了它不适用于生命周期较短的边缘服务器。
  2. 需要双向开放端口用以通信。国外不少小厂商的控制面板上并不支持安全组相关的操作,因此“允许某 IP 连接本服务器的某端口”只能通过 iptables 等进行实现,耗费时间。

于是乎重新挑选了一下轻量级的监控面板,发现全球主机交流论坛上比较火两款监控(探针面板)是 ServerStatusnezha(哪吒),稍稍做了下对比:

项目 ServerStatus nezha(哪吒)
开源
语言 Python2.7 Go
前端面板
无需 agent 端开放端口
agent 对 server 的注册方式 agent 端执行安装脚本时手动填写 在前端面板上填写 agent 信息后,复制带参数的命令,去 agent 服务器上一键执行
前端面板主题切换 上传并替换 server 端文件 前端面板设置处切换

最终考虑哪吒监控面板添加 agent 节点更加简单,因此选用。

2. 哪吒监控面板的运作方式

不关注具体实现,简单来说哪吒监控主要做了 2 件事:

  1. agent 端将监控数据 Push 给 server 后端。
  2. server 后端处理和保存监控数据后,在前端需要时将其返回。

63860453786aa

3. 安装部署

3.1 安装前的准备工作

在进行哪吒监控的安装部署之前,还需要准备些东西:

  1. 两个域名,都解析到 server 端服务器的 IP 地址上。其中一个给前端面板用,另一个给 agent 端推送监控数据时用。我的是 nezha.ceshiku.cnnezha-api.ceshiku.cn需要注意的是nezha-api.ceshiku.cn 这种给 agent 端准备的域名,由于是用以解析 server 端服务器 IP 地址的,因此不能套 CDN!
  2. 在 GitHub 创建 OAuth App 后获取 Client IDClient secrets,并填写 server 前端面板域名的回调地址。

OAuth App 信息填写

关于如何创建 OAuth App 可以看官方的这篇文档:创建 OAuth 应用程序,记得在创建后保存 Client IDClient secrets

3.2 安装 server 端

官方文档:安装 Dashboard

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

    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://jihulab.com/nezha/nezha/-/raw/master/script/install.sh -o nezha.sh && chmod +x nezha.sh && sudo CN=true ./nezha.sh
  2. 选择安装面板端:

    6385f4f461158
  3. 安装完成后输入 GitHub OAuth App 的相关信息:

    6385f6376826b
  4. 配置成功后,前往你的地址查看,我这里端口用的默认,因此地址是:http://nezha.ceshiku.cn:8008

    域名加端口访问
  5. 安装 Nginx、修改配置使其支持只用域名访问:

    # 安装 Nginx 并设置为开启自启动
    yum -y install epel-release
    yum -y install nginx
    systemctl enable nginx
    # 启动 Nginx
    service nginx start
    # 修改配置文件
    vi /etc/nginx/nginx.conf

    添加这么一段:

    server {
        listen       80;
        server_name  nezha.ceshiku.cn;
    
        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;
        }
    }

    之后重启 Nginx:

    nginx -s reload
    service nginx restart

    接着尝试用域名直接访问,可以发现成功了:

    仅域名访问
  6. 打开 Cloudflare 的 SSL/TLS 加密模式使支持 HTTPS 访问:

    打开小云朵

    确保 SSL/TLS 加密模式为灵活

    再访问以下发现有小锁了,成功:

    SSL 生效

至此哪吒监控的 server 端就安装完成了。

3.3 安装 agent 端

官方文档:安装 Agent

  1. 配置 agent 访问 server 后端用的域名:

    配置 agent 访问 server 后端用的域名
  2. 登陆 server 面板并添加一台需要监控的主机:

    添加主机
  3. 复制 agent 一键安装命令并前往服务器执行:

    复制 agent 一键安装命令

    执行

    之后回到面板,就能看到监控生效了:

    监控生效
  4. 修改 agent 监控端的配置来关闭远程 SSH 功能或增大信息上报的间隔。
    找到并编辑配置文件:

    vi /etc/systemd/system/nezha-agent.service

    找到下面这一行:

    ExecStart=/opt/nezha/agent/nezha-agent -s nezha-api.ceshiku.cn:5555 -p 0bcxxxxxxxxxxxf39 --disable-auto-update

    我关闭了远程 SSH 功能并将上报间隔改为了 2 秒,以下是配置行可供参考:

    ExecStart=/opt/nezha/agent/nezha-agent -s nezha-api.ceshiku.cn:5555 -p 0bcxxxxxxxxxxxf39 --disable-auto-update --disable-command-execute --report-delay=2

    重启 nezha-agent 后生效:

    systemctl daemon-reload
    service nezha-agent start

    完成的可配置项如下:

    参数 解释
    --report-delay 系统信息上报的间隔,默认为 1 秒,可以设置为 3 来进一步降低 agent 端系统资源占用(配置区间 1-4)
    --skip-conn 不监控连接数,机场/连接密集型机器推荐设置,不然比较占 CPU(shirou/gopsutil/issues#220)
    --skip-procs 不监控进程数,也可以降低 agent 占用
    --disable-auto-update 禁止 Agent 自动更新(安全特性)
    --disable-command-execute 禁止在 Agent 机器上执行定时任务、打开在线终端(安全特性)

至此哪吒监控的 agent 端就安装完成了。

4. 后记

得益于开发者奶爸提供的一键脚本,哪吒监控的安装部署可以说是相当简单,其文档中记录的常见问题与解决方案更是全面,非常值得学习。

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇