Files
sf/01-main/02-monitoring/03-monitoring/README.md
2024-03-26 19:36:57 -04:00

6.3 KiB
Raw Blame History

Модуль 3. Мониторинг информационной безопасности и оценка рисков

Мониторинг, аналитика и оценка рисков ИБ. Задание 4

Ход лабораторной работы

Развертывание Zabbix

  1. Для развертывания Zabbix воспользуемся официальной документацией, в части касающейся использования Docker-контейнера для развертывания.
https://www.zabbix.com/documentation/current/en/manual/installation/containers
https://github.com/zabbix/zabbix-docker
  1. Сформируем docker-compose.yaml, запустим его и убедимся в старте сервисов
version: '3.5'
services:
  server:
    image: zabbix/zabbix-server-pgsql:alpine-latest
    ports:
      - "10051:10051"
    volumes:
      - /etc/localtime:/etc/localtime
      - /etc/timezone:/etc/timezone
    restart: always
    depends_on:
      - postgres-server
    environment:
      - POSTGRES_USER=zabbix
      - POSTGRES_PASSWORD=zabbix
      - POSTGRES_DB=zabbixNew
      - ZBX_HISTORYSTORAGETYPES=log,text #Zabbix configuration variables
      - ZBX_DEBUGLEVEL=1
      - ZBX_HOUSEKEEPINGFREQUENCY=1
      - ZBX_MAXHOUSEKEEPERDELETE=5000
      - ZBX_PROXYCONFIGFREQUENCY=3600
  web-nginx-pgsql:
    image: zabbix/zabbix-web-nginx-pgsql:alpine-latest
    ports:
      - "80:8080"
      - "443:8443"
    volumes:
      - /etc/localtime:/etc/localtime
      - /etc/timezone:/etc/timezone
      - /etc/ssl/nginx:/etc/ssl/nginx
    healthcheck:
      test: ["CMD", "curl", "-f", "http://localhost:8080/"]
      interval: 10s
      timeout: 5s
      retries: 3
      start_period: 30s
    sysctls:
      - net.core.somaxconn=65535
    restart: always
    depends_on:
      - server
      - postgres-server
    environment:
      - POSTGRES_USER=zabbix
      - POSTGRES_PASSWORD=zabbix
      - POSTGRES_DB=zabbixNew
      - ZBX_SERVER_HOST=server
      - ZBX_POSTMAXSIZE=64M
      - PHP_TZ=Europe/Moscow
      - ZBX_MAXEXECUTIONTIME=500
  agent:
    image: zabbix/zabbix-agent:alpine-latest
    ports:
      - "10050:10050"
    volumes:
      - /etc/localtime:/etc/localtime
      - /etc/timezone:/etc/timezone
      - /proc:/proc
      - /sys:/sys
      - /dev:/dev
      - /var/run/docker.sock:/var/run/docker.sock
    privileged: true
    pid: "host"
    restart: always
    depends_on:
      - server
    environment:
      - ZBX_SERVER_HOST=server

  postgres-server:
    image: postgres:16.2
    restart: always
    volumes:
      - pg_data:/var/lib/postgresql/data
    environment:
      - POSTGRES_PASSWORD=zabbix
      - POSTGRES_USER=zabbix
      - POSTGRES_DB=zabbixNew
volumes:
  pg_data:

alt text

  1. Проверим веб-интерфейс на наличие запущенного Zabbix

alt text

Zabbix развернут, можно приступать к работе.

  1. Войдём в Zabbix с использованием учетных данных Admin/zabbix

alt text

Тут мы видим, что у нас уже имеется один хост, который сообщает о проблеме. Это уведомление о недоступности агента самого Zabbix-сервера, который был развернут в контейнере agent (в соответствии с docker-compose файлом)

  1. Исправим эту проблему, для этого перейдем в настройки данного хоста и установим его опрос с помощью Zabbix-агента через DNS имя, вместо IP-адреса.

alt text

  1. Спустя пару секунд мы наблюдаем, что связность появилась.

alt text

  1. Дополнительно создадим ещё одно устройство, это будет мой маршрутизатор Mikrotik. В качестве интерфейса подключения назначим SNMP.

alt text

  1. Добавим 2 элемента данных:

Проверку доступности по ICMP:

alt text

Текущий аптайм в милисекундах:

alt text

Создание кастомных дашбордов

  1. Приступим к созданию своего дашборда с мониторингом интересующих нас параметров.

alt text

  1. Добавим виджет доступности узлов сети

alt text

  1. Добавим виджет с информацией об Uptime Mikrotik.

alt text

  1. Виджет с информацией о системе в целом.

alt text

  1. Настроим виджеты с информацией об аптайме ОС, утилизации процессора и памяти.

  2. В итоге мы получили следующий дашборд.

alt text

  1. Теперь можно добавить пару графиков, например график доступности Mikrotik (основан на метрике доступности по ICMP) и утилизацию сервера Zabbix (по CPU)

alt text

alt text

Выводы

Лабортаорная работа завершена. В ходе работы мы научились разворачивать Zabbix и добавлять устройства в мониторинг. Устройства, на которые нельзя установить Zabbix-агент по прежнему могут быть поставлены на мониторинг, например с помощью SNMP. Zabbix очень функциональный open-source инструмент мониторинга, который очень в том числе в Enterprise среде за свою стабильность, большие возможности и широкую поддержку коммьюнити.

Выполнил: Харитонов Марат Русланович, студенческий билет М235314.