Monitoring

Мощная распределенная система мониторинга для вашей инфраструктуры

Контролируйте доступность ваших сервисов со всего мира

Разверните центральный сервер и запустите легковесные обработчики в любых дата-центрах. Получайте точные и надежные оповещения о простоях.

Начать за 5 минут

Ключевые возможности

🌐 Распределенный мониторинг

Запускайте обработчики в разных сетях и регионах для объективной оценки доступности.

🔐 Мультитенантность и RBAC

Несколько пользователей, группы и детальная система прав доступа ко всем ресурсам.

📊 Разнообразие типов проверок

HTTP(S), TCP, Ping, а также мониторинг состояния Docker-контейнеров через API.

🔔 Умные уведомления

Настройте оповещения в Telegram и Mattermost. Система не спамит при частичных сбоях.

🐳 Мониторинг Docker

Централизованное отслеживание состояния ваших контейнеров на всех хостах.

📝 Журнал аудита

Полная история всех действий пользователей в системе для поддержания порядка и безопасности.

Простая и мощная архитектура

Система состоит из двух компонентов:

Сервер

akeb/monitoring:latest

Центр управления. Веб-интерфейс, база данных, API.

Docker Hub

Обработчик

akeb/monitoring-worker:latest

Легковесный агент. Выполняет проверки и отправляет результаты на Сервер.

Docker Hub

architecture

Установка Сервера

1. Создайте директорию проекта

mkdir monitoring-server
cd monitoring-server

2. Создайте файл окружения

Создайте файл .env с вашей конфигурацией:

# Часовой пояс
TZ=Europe/Moscow

# MySQL
MYSQL_PASSWORD=YourSecureRootPassword123

# Порт веб-сервера
NGINX_PORT=80

# Memcached
MEMCACHED_HOST=memcached

# Безопасность - ИЗМЕНИТЕ ЭТО!
PASSWORD_SALT=YourRandomSaltStringHere123456789

3. Создайте Docker Compose файл

Создайте docker-compose.yml:

---
services:
  mysql:
    container_name: monitoring-mysql
    image: mysql:latest
    restart: always
    environment:
      TZ: ${TZ:-UTC}
      MYSQL_ROOT_PASSWORD: ${MYSQL_PASSWORD:-RootPassword}
    volumes:
      - ./mysql_data:/var/lib/mysql
    healthcheck:
      test: ["CMD", "mysql", "-h", "127.0.0.1", "-u", "root", "--password=${MYSQL_ROOT_PASSWORD}", "-e", "show databases;"]
      start_period: 10s
      interval: 5s
      timeout: 5s
      retries: 55

  memcached:
    container_name: "monitoring-memcached"
    image: memcached
    restart: always
    environment:
      TZ: ${TZ:-UTC}
    command:
      - --conn-limit=1024
      - --memory-limit=32
      - --threads=4

  server:
    container_name: "monitoring-server"
    image: "akeb/monitoring:latest"
    restart: always
    environment:
      TZ: ${TZ:-UTC}
      NGINX_PORT: ${NGINX_PORT:-80}
      MYSQL_HOST: mysql
      MYSQL_PASSWORD: ${MYSQL_PASSWORD:-RootPassword}
      MEMCACHED_HOST: ${MEMCACHED_HOST:-memcached}
      PASSWORD_SALT: ${PASSWORD_SALT:-bHchLzC3B99Ss1213127fdw876EDghc2gkDdtg}
    volumes:
      - ./logs/php/:/var/log/php/:rw
      - ./logs/nginx/:/var/log/nginx/:rw
    ports:
      - "${NGINX_PORT:-80}:80"
    depends_on:
      mysql:
        condition: service_healthy
      memcached:
        condition: service_started

4. Запустите Сервер

docker-compose up -d

Сервер будет доступен по адресу http://ваш-ip-сервера

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

1. Доступ к веб-интерфейсу

Откройте браузер и перейдите по IP-адресу вашего сервера.

2. Создайте первый Обработчик

3. Разверните агент Обработчика

На каждом удаленном сервере, где вы хотите выполнять мониторинг, выполните:

docker run -d \
  --name monitoring-worker \
  -e SERVER_URL=https://your-monitoring-server.com \
  -e WORKER_KEY=your_unique_worker_key_here \
  akeb/monitoring-worker:latest

4. Создайте первый Монитор

Вы увидите первые результаты в течение минуты!

Документация

Полное руководство по установке, настройке и использованию всех функций проекта.

Читать документацию