分享一个轻量的监控管理多服务器工具 Komari

English

一直需要一个监控多服务器的工具,用来监控我的 NAS 和服务器的运行状况:包括监控内存、CPU 占用,以及离线 / 上线通知等等。于是我找到了一个轻量级开源的监控工具 Komari,效果如下图所示

monitor

选择这个工具的原因:

  • 支持不同操作系统,包括 Windows、Linux、MacOS 以及 NAS

  • 安装简单,使用 Docker 快速安装

  • 占用资源较低,跑在我 2G 内存的服务器上也没有问题

  • 支持邮件通知,监控服务器离线以及占用异常

  • 界面友好,可以切换主题

服务端安装

文档地址:https://komari-document.pages.dev/install/quick-start.html

Linux 发行版使用脚本安装,适用于使用了 systemd 的发行版 Ubuntu、Debian

curl -fsSL https://raw.githubusercontent.com/komari-monitor/komari/main/install-komari.sh -o install-komari.sh
chmod +x install-komari.sh
sudo ./install-komari.sh

或者使用 Docker

mkdir -p ./data
docker run -d \
  -p 25774:25774 \
  -v $(pwd)/data:/app/data \
  --name komari \
  --restart unless-stopped \
  ghcr.io/komari-monitor/komari:latest
docker logs komari

我使用 Docker-Compose 安装的,具体配置如下:

version: '3.8'

services:
  komari:
    image: ghcr.io/komari-monitor/komari:1.1.2a
    container_name: komari
    ports:
      - "25774:25774"
    volumes:
      - ./data:/app/data
    environment:
      - TZ=Asia/Shanghai  # 设置时区
    restart: unless-stopped

安装成功后,打开浏览器访问 http://ip:25774 即可看到仪表盘

添加节点

进入管理后台 - 服务器列表,点击添加节点,输入名称后,点击下载按钮,会提示不同平台的安装 Agent 脚本,复制后在对应平台的服务器上执行命令安装 Agent

agent guide

模式很简单,服务端跟不同 Agent 通过 Socket 通信,定时上传数据信息,Agent 是自动更新的

添加 NAS 节点

NAS 添加稍微复杂一点,因为 NAS 一般没有完整的 Linux 包管理,所以需要添加定时任务手动执行 Agent 程序

首先去下载 Agent 程序,根据内核下载对应版本 Releases

下载后放在 NAS 的某个目录下,注意这个目录要有权限并且不会被 NAS 自动删除,比如我放在了 /share/.qpkg/komari 目录下,然后给程序添加执行权限

chmod +x ./komari-agent

然后编写一个定时任务脚本,放在任意目录下,记得给脚本添加执行权限。需要修改你的后台域名和创建节点生成的 token

#!/bin/sh
DAEMON=/share/CACHEDEV1_DATA/.qpkg/komari/agent
ARGS="-e $your_domain -t $your_token --include-nics eth0"

if ps | grep -v grep | grep "$DAEMON" >/dev/null 2>&1; then
    exit 0
fi

"$DAEMON" $ARGS >>/tmp/komari.log 2>&1 &

接着添加一个定时任务,每10分钟检查一下 Agent 是否在运行,如果没有则启动

*/10 * * * * /root/komari.sh

修改主题

上面的截图就是用的 Light 主题,在管理后台 - 设置 - 主题中可以添加主题和切换主题,这里有一些官方推荐的主题 suggest theme

theme

添加主题需要去 github 下载 zip 压缩包,然后在后台上传主题,可以手动更新主题版本

添加邮件通知

首先添加 SMTP 配置,在管理后台 - 设置 - 通知中添加,可以自定义通知模板

然后分别添加 SMTP 服务器、端口、用户名、密码、发件人、收件人

我使用的是 brevo 免费邮件服务,账号密码在 Settings - SMTP & API 中获取,发件人邮箱需要在域名添加 MX 记录

SMTP

接下来设置邮件通知的场景,在通知 - 离线通知 / 负载通知 添加,可以设置离线宽限期,负载阈值等,可以对不同服务器单独设置

Send Email

站点设置

在管理后台 - 设置 - 站点中自定义站点信息,我修改了站点名称、描述和图标,这里最重要的一项是可以开启 私有站点,开启后监控数据需要登陆才能查看

Custom

我个人目前只用到了以上配置,很快就能部署配置完成了,还有一些实用的功能比如 远程执行,可以在后台快捷地在对应服务器上执行一些命令,已经满足我的需求了

加载中...
📊 加载中...
感谢Jimmy | 隐私政策 | 赞赏支持
Liu 的 AI 助手