Программа для простого мониторинга основных показателей системы в виде ядра и агентов.
- Qt6 - создание кроссплатформенного приложения
- cpr - работа с HTTP-запросами
- nhlomann - работа с JSON
- Doxygen - создание удобной документации
Установка необходимых инструментов
sudo apt install g++ cmake ninja doxygenДля начала, необходимо скопировать данный репозиторий в систему:
git clone https://github.com/TarasovaAlina/Monitoring-System.gitПосле собрать проект
cmake -S .И скомпилировать программу
make SystemMonitoringДля работы программы потребуется динамическая библиотека агента, который будет заниматься сбором данных. Чтобы его создать, используется цель 'agent':
make agentЗапуск программы:
./bin/SystemMonitoringДля конфигурации работы программы используются JSON файлы с настройками, расположенными в ./config/.
Расположена в ./config/config.json
Описание настроек агентов:
{
<name_agent>: {
"type": <type_agent>,
"update_interval": <update_timeout_ms>,
"critical_metrics": {
<name_metric_1>: {
"operator": <operation>,
"value": <value>
},
<name_metric_2>: {
"operator": <operation>,
"value": <value>
}, ...
}
}, ...
}- Поддерживаемые операции для метрик:
>, <, >=, <=, == - Доступные типы для агентов:
"CPU_AGENT", "MEMORY_AGENT", "NETWORK_AGENT" - "update_interval": целочисленное значение
- "value": неотрицательное значение с плавающей запятой
Важно! Имена агентов связаны с директорией ./agents/:
для каждого указанного в конфигурационном файле агента должен сушествовать файл динамической библиотеки lib<agent_name>.so
Т.е, если в файле ./config/config.json указан агент с именем "agent", то в ./agents/ должен быть файл libagent.so
Расположен в ./config/notification.json
Описывает доступ к Telegram боту и сервису отправки Email, через которые программа будет осущствлять отправку оповещений пользователю
{
"telegram": {
"token": "YOUR_BOT_TOKEN_HERE",
"id": "YOUR_CHAT_ID_HERE"
},
"email": {
"url": "gmail.com",
"sender": "your-bot@gmail.com",
"recipient": "user@example.com",
"password": "YOUR_APP_PASSWORD_HERE"
}
}Важно! Для того, чтобы бот мог отправлять вам сообщения, необходимо запустить его
(нажать кнопку старт или отправить /start)
- "token": Указывается токен бота (можно создать через @BotFather в Telegram)
- "id": ваш ID, через который бот поймет, кому именно нужно отправлять сообщение (можно узнать через @userinfobot в Telegram)
Для "email";
- "url": адрес почтового сервиса, через который будет производится отправка писем (то, что идет после '@' в названии почты)
- "sender": электронная почта, через которую будет отправлятся письма
- "recipient": на какую почту следует отправлять письма
- "password": специальный пароль приложения (создается в настройках почтового клиента)
