Skip to main content
Glama

system-status

Hermes-стиль ops-агент:мониторинг Ubuntu / Docker / публичного IP,оповещения в Feishu.

Возможности

  • 🐳 Мониторинг Docker:состояние контейнеров, количество перезапусков, CPU/память, проверки здоровья

  • 🖥️ Мониторинг системы:CPU, память, диск, нагрузка

  • 🌐 Обнаружение смены публичного IP:проверка из нескольких источников, оповещение об изменениях

  • 💬 Оповещения в Feishu:карточки с форматированным текстом + @упоминание указанных лиц

  • 📊 Исторические данные в SQLite:сохранение каждой выборки в базу, по умолчанию хранится 7 дней

  • 🖼️ Веб-панель:дашборд в реальном времени + графики трендов + поток оповещений

    • Откройте http://localhost:8080/web/

  • 🌐 HTTP / MCP интерфейс:для вызова из Hermes / клиентов

    • GET /health

    • GET /api/docker/containers

    • POST /api/docker/restart

    • GET /api/system

    • GET /api/ip

    • GET /api/dashboard

    • GET /api/history/system?minutes=60

    • GET /api/history/ip

    • GET /api/alerts/recent

    • GET /mcp/tools

Related MCP server: 6amdev-server-mcp

Быстрый старт

1. Создайте бота в Feishu

Групповой чат → Настройки → Групповые боты → Добавить → Пользовательский бот → получите Webhook и Secret

2. Настройте переменные окружения

cp .env.example .env
# 编辑 .env,填入飞书 webhook 和 secret

3. Запуск

docker compose up -d

4. Проверка

curl http://localhost:8080/health
curl http://localhost:8080/api/docker/containers
curl http://localhost:8080/api/system
curl http://localhost:8080/api/ip

Описание конфигурации

.env:

Переменная

Обязательно

Описание

FEISHU_WEBHOOK

✅

Webhook бота Feishu

FEISHU_SECRET

⭕

Ключ проверки подписи

FEISHU_AT_MOBILES

⭕

Номера телефонов для @, через запятую

FEISHU_AT_ALL

⭕

@упомянуть всех

CHECK_INTERVAL

⭕

Интервал проверки (сек), по умолчанию 60

HTTP_PORT

⭕

HTTP порт, по умолчанию 8080

Подключение к Hermes

Hermes может напрямую вызывать эти конечные точки через HTTP MCP. Добавьте в конфигурацию Hermes:

mcp_servers:
  - name: system-status
    type: http
    base_url: http://localhost:8080
    tools:
      - name: list_containers
        method: GET
        path: /api/docker/containers
      - name: system_health
        method: GET
        path: /api/system
      - name: check_public_ip
        method: GET
        path: /api/ip
      - name: restart_container
        method: POST
        path: /api/docker/restart
        body_schema:
          type: object
          properties:
            name: { type: string }

Затем вы можете сказать Hermes:

"Перечисли все остановленные контейнеры" "Перезапусти mysql-01" "Какой сейчас публичный IP?" "Насколько здорова система?"

Структура проекта

system-status/
├── src/
│   ├── index.ts            # 入口
│   ├── config.ts           # 配置加载
│   ├── mcp/server.ts       # HTTP / MCP 接口
│   ├── monitor/
│   │   ├── docker.ts       # Docker 监控
│   │   ├── system.ts       # 系统监控
│   │   ├── ip.ts           # 公网 IP 检测
│   │   └── loop.ts         # 监控主循环
│   └── alert/
│       ├── feishu.ts       # 飞书 Webhook + 签名
│       └── templates.ts    # 告警模板
├── config/rules.yaml       # 告警规则
├── Dockerfile
├── docker-compose.yml
└── .env.example

Охлаждение оповещений

Однотипные оповещения по умолчанию не повторяются в течение 5 минут (во избежание шторма оповещений). Можно настроить COOLDOWN_MS в src/monitor/loop.ts.

Замечания по безопасности

  • ⚠️ docker.sock равнозначен правам root, обязательно монтируйте только для чтения :ro

  • ⚠️ Контейнер запущен с privileged: true, в production оцените риски

  • ⚠️ Не коммитьте Webhook Feishu в Git

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    F
    maintenance
    Multi-machine system monitor with a built-in MCP server that enables AI agents to query health metrics, manage processes, schedule cron jobs, and run diagnostics across local and remote machines.
    133 npm
    Apache 2.0
  • A
    license
    B
    quality
    D
    maintenance
    MCP server for managing Ubuntu servers with AI integration, enabling system monitoring, Docker control, Gitea repository management, Ollama LLM interaction, workspace file operations, and Claude Code assistant via natural language.
    34
    MIT
  • A
    license
    Not graded
    quality
    D
    maintenance
    Official Hyperping MCP server for uptime, API, cron and server monitoring. 26 tools covering monitors, outages and timelines, uptime, response time, MTTR and MTTA, on-call schedules and escalation policies, over a remote Streamable HTTP endpoint with Bearer token auth and no install.
    1
    MIT