Skip to content

Сервис для мониторинга и пинга контейнеров Docker

Notifications You must be signed in to change notification settings

bllooop/monitoringapi

Repository files navigation

Приложение для мониторинга контейнеров docker

Данный сервис реализован на языке Go с использованием библиотеки Gin и JavaScript с библиотекой React. Для работы с PostgreSQL использовался драйвер pgx, для миграций lib/pq. Для миграции использовалась библиотека goose, миграции выполняются автоматически при запуске сервиса. Тип операции зависит от определенного запроса. Для данных из файла конфигурации используется Viper. При запуске сервиса происходят автоматические пинги контейнеров Docker, и при этом сохраняется информация в базу данных PostgreSQL. Для отправки и получения информации о пингах используется брокер RabbitMQ в качестве сервиса очередей. Для пингов используется библиотека pro-bing. На сайте, реализованном в JS, берутся данные через API Backend и отображаются данные по всем IP адресам в виде таблицы: IР адрес, время пинга, дата последней успешной попытки. Для отображения данных в html используется bootstrap, для запроса в API axios. Фронтенд разворачивается в контейнере с Nginx. Эндпоинты также доступны для запроса. Реализованы операции сохранения и получения. В Makefile прописаны возможные варианты запуска API и миграции. Приложение покрыто логами для информировани и дебага.

Запуск приложения:

Использование docker-compose.

Для клонирования репозитория нужно использовать команду

git clone --recursive https://github.com/bllooop/monitoringapi.git

Либо сначала такую команду

git clone https://github.com/bllooop/monitoringapi.git

и далее

git submodule update --init --recursive

Для сборки и запуска приложения нужно ввести в консоль команду

make build

или эту команду

docker-compose up --build

Пользование сервисом

Для получения списка данных по контейнерам нужно перейти по адресу

http://localhost:3000/ Отобразится веб-сайт с данными по пингам контейнеров.

Также, можно напрямую выполнить запрос получения данных по запросу

curl --location --request GET 'http://localhost:8000/api/data/get' \
--header 'Content-Type: application/json' \
--data ''

После успешного запроса будет выведена информация по контейнерам, сохраненная в базу данных. Но основным методом использования приложения является открытие веб-сайта по ссылке выше.

Обработка ошибок

Для различных методов и вызовов функций реализована обработка ошибок, в зависимости от категории ошибки, выдается текст и код ошибки.

About

Сервис для мониторинга и пинга контейнеров Docker

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published