Skip to main content

Техническое задание

Мастер-класс доступен по ссылке "От базовой библиотеки до полного расцвета с ОСенью. Разработка базовой версии"

Техническое задание на разработку библиотеки для мониторинга ресурсов сервера на Oscript.

Цель:
Разработать библиотеку для мониторинга состояния серверных ресурсов на языке Oscript. В первой версии библиотеки реализуется метод проверки свободного места на дисках.

Общие требования

  1. Расширяемость:

    • Библиотека должна быть модульной, чтобы новые методы мониторинга можно было добавлять без изменений основной логики.
    • Каждый метод реализуется как отдельный модуль.
  2. Конфигурация:

    • Все настройки хранятся в одном JSON-файле.
    • Для каждого метода в JSON должны быть предусмотрены индивидуальные параметры.
    • Пример структуры файла:
{
"Проверки":{
"ПроверкаДисков": {
"Диски": ["C", "D"],
"Порог": 80
}
},
"Уведомления":{
"Почта":{
"Использовать": false,
"Сервер": "smtp.example.com",
"Порт": 587,
"Логин": "your-email@example.com",
"Пароль": "your-email-password",
"Получатели": ["recipient1@example.com"]
},
"Телеграм":{
"Использовать": true,
"Токен": "your-telegram-bot-token",
"Получатели": ["your-chat-id"]
}
}
}
  1. Логирование:

    • События (успехи и ошибки) записываются в лог-файл.
    • Сообщения также выводятся в консоль для отладки.
  2. Уведомления:

    • Реализуется отправка уведомлений через Telegram и Email.
    • Новые транспорты должны добавляться без изменений существующего кода.

Функциональные требования: Проверка места на диске

  1. Сбор данных:

    • Метод собирает информацию о свободном месте на указанных дисках.
    • Настройки дисков и порога (в процентах) берутся из JSON-файла.
  2. Уведомления:

    • Если доступное место на диске ниже указанного порога, отправляется уведомление:
      • Через Telegram (с использованием Telegram API).
      • Через Email (SMTP).
  3. Вывод в консоль:

    • Отображается информация о каждом диске:
      • Имя диска (например, C).
      • Общий и свободный объём.
      • Метка для дисков, где превышен порог.
  4. Пример работы:

    • Пользователь запускает библиотеку.
    • В консоли отображается:
      Диск C: свободно 15% (30 ГБ из 200 ГБ)
      Диск D: свободно 8% (5 ГБ из 60 ГБ) — ПОРОГ ПРЕВЫШЕН!
    • Уведомления отправляются на основе настроек в JSON.

Расширение функционала

  1. Нагрузка на процессор:
    • Метод собирает данные о загрузке CPU и отправляет уведомления при превышении порога.
  2. Использование оперативной памяти:
    • Мониторинг свободной и занятой памяти с уведомлениями.
  3. Состояние служб:
    • Проверка активности заданных служб и отправка уведомлений о статусе.
  4. Время отклика сервисов:
    • Проверка доступности заданных URL и времени отклика.
  5. Доступность внешних ресурсов:
    • Мониторинг доступности файловых хранилищ или других ресурсов.

Результаты выполнения

  1. Реализована модульная библиотека с одним методом мониторинга (диски).
  2. Настройки гибко задаются в конфигурационном файле.
  3. Результаты отображаются в консоли, пишутся в лог-файл, а при необходимости отправляются уведомления.