# Модуль 3. Мониторинг информационной безопасности и оценка рисков ## Мониторинг, аналитика и оценка рисков ИБ. Задание 4 ### Ход лабораторной работы #### Развертывание Zabbix 1. Для развертывания Zabbix воспользуемся официальной документацией, в части касающейся использования Docker-контейнера для развертывания. ``` https://www.zabbix.com/documentation/current/en/manual/installation/containers https://github.com/zabbix/zabbix-docker ``` 2. Сформируем docker-compose.yaml, запустим его и убедимся в старте сервисов ```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](img/01.png) 3. Проверим веб-интерфейс на наличие запущенного Zabbix ![alt text](img/02.png) Zabbix развернут, можно приступать к работе. 4. Войдём в Zabbix с использованием учетных данных `Admin/zabbix` ![alt text](img/03.png) Тут мы видим, что у нас уже имеется один хост, который сообщает о проблеме. Это уведомление о недоступности агента самого Zabbix-сервера, который был развернут в контейнере `agent` (в соответствии с docker-compose файлом) 5. Исправим эту проблему, для этого перейдем в настройки данного хоста и установим его опрос с помощью Zabbix-агента через DNS имя, вместо IP-адреса. ![alt text](img/04.png) 6. Спустя пару секунд мы наблюдаем, что связность появилась. ![alt text](img/05.png) 7. Дополнительно создадим ещё одно устройство, это будет мой маршрутизатор Mikrotik. В качестве интерфейса подключения назначим SNMP. ![alt text](img/06.png) 8. Добавим 2 элемента данных: Проверку доступности по ICMP: ![alt text](img/07.png) Текущий аптайм в милисекундах: ![alt text](img/08.png) #### Создание кастомных дашбордов 1. Приступим к созданию своего дашборда с мониторингом интересующих нас параметров. ![alt text](img/09.png) 2. Добавим виджет доступности узлов сети ![alt text](img/10.png) 3. Добавим виджет с информацией об Uptime Mikrotik. ![alt text](img/11.png) 4. Виджет с информацией о системе в целом. ![alt text](img/12.png) 5. Настроим виджеты с информацией об аптайме ОС, утилизации процессора и памяти. 6. В итоге мы получили следующий дашборд. ![alt text](img/13.png) 7. Теперь можно добавить пару графиков, например график доступности Mikrotik (основан на метрике доступности по ICMP) и утилизацию сервера Zabbix (по CPU) ![alt text](img/14.png) ![alt text](img/15.png) ## Выводы Лабортаорная работа завершена. В ходе работы мы научились разворачивать Zabbix и добавлять устройства в мониторинг. Устройства, на которые нельзя установить Zabbix-агент по прежнему могут быть поставлены на мониторинг, например с помощью SNMP. Zabbix очень функциональный open-source инструмент мониторинга, который очень в том числе в Enterprise среде за свою стабильность, большие возможности и широкую поддержку коммьюнити. **Выполнил:** Харитонов Марат Русланович, студенческий билет М235314.