mirror of
https://github.com/ones-devguide/dev-rules.git
synced 2026-05-04 19:44:10 +02:00
106 lines
5.5 KiB
Markdown
106 lines
5.5 KiB
Markdown
---
|
|
sidebar_position: 2
|
|
sidebar_label: Техническое задание
|
|
title: Техническое задание
|
|
---
|
|
> Мастер-класс доступен по ссылке "[От базовой библиотеки до полного расцвета с ОСенью. Разработка базовой версии](https://infostart.ru/1c/articles/2275659/)"
|
|
|
|
Техническое задание на разработку библиотеки для мониторинга ресурсов сервера на Oscript.
|
|
|
|
**Цель:**
|
|
Разработать библиотеку для мониторинга состояния серверных ресурсов на языке Oscript. В первой версии библиотеки реализуется метод проверки свободного места на дисках.
|
|
|
|
## Общие требования
|
|
|
|
1. **Расширяемость:**
|
|
- Библиотека должна быть модульной, чтобы новые методы мониторинга можно было добавлять без изменений основной логики.
|
|
- Каждый метод реализуется как отдельный модуль.
|
|
|
|
2. **Конфигурация:**
|
|
- Все настройки хранятся в одном JSON-файле.
|
|
- Для каждого метода в 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"]
|
|
}
|
|
}
|
|
}
|
|
```
|
|
|
|
3. **Логирование:**
|
|
- События (успехи и ошибки) записываются в лог-файл.
|
|
- Сообщения также выводятся в консоль для отладки.
|
|
|
|
4. **Уведомления:**
|
|
- Реализуется отправка уведомлений через 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. Результаты отображаются в консоли, пишутся в лог-файл, а при необходимости отправляются уведомления. |