SigmaCore — это программный комплекс для централизованного мониторинга состояния компьютерной техники в корпоративной среде. Система позволяет администраторам в реальном времени отслеживать загрузку CPU/GPU, состояние дисков, сетевую активность и получать уведомления о критических сбоях.
- 📸 Скриншоты интерфейсов
- 🚀 Быстрый старт
- 🔒 Механизмы автоматизации Агента
- ✨ Возможности
- 🗺️ Дорожная карта
- 🛠 Технологический стек
- 📄 Лицензия
🖥️ Панель Администратора (WPF)
- Авторизация в системе:

- Список подключенных компьютеров:

- Детальная информация о компьютере и история тестов:

- Информация о профиле:

- Управление и запуск тестов производительности:

Экраны аналитики со сквозными графиками нагрузки, сетевой активности и логов в реальном времени.
👤 Интерфейс Пользователя (WPF)
Легкий клиент для конечных пользователей, позволяющий отслеживать состояние своей рабочей станции и запускать локальные тесты.
git clone https://github.com/MuraSaichick/SigmaCore
cd SigmaCore-
Создайте пустую базу данных (например,
monitoring_db) через любой удобный CLI/GUI клиент: -
Разверните структуру таблиц с помощью актуального скрипта инициализации: 👉 Открыть SQL-скрипт инициализации
Перед запуском скопируйте шаблоны appsettings.Example.json в файлы appsettings.json в папках соответствующих проектов.
{
"ConnectionStrings": {
"DefaultConnection": "Host=YOUR_HOST;Database=YOUR_DATABASE;Username=YOUR_USERNAME;Password=YOUR_PASSWORD"
},
"Kestrel": {
"Endpoints": {
"HttpApi": { "Url": "http://localhost:5163", "Protocols": "Http1" },
"GrpcApi": { "Url": "http://localhost:5164", "Protocols": "Http2" }
}
},
"Jwt": {
"Key": "YOUR_SUPER_SECRET_KEY_AT_LEAST_32_CHARS_LONG",
"Issuer": "SigmaCore.Server",
"Audience": "SigmaCore.Admin"
},
"RegistrationSettings": {
"MasterKey": "YOUR_REGISTRATION_MASTER_KEY"
},
"Logging": {
"LogLevel": { "Default": "Information", "Microsoft.AspNetCore": "Warning" }
},
"AllowedHosts": "*"
}{
"AgentSettings": {
"InventoryNumber": "",
"Location": "",
"CollectionIntervalSeconds": 3
},
"ServerSettings": {
"BaseUrl": "http://localhost:5163",
"GrpcUrl": "http://localhost:5164",
"MasterKey": "YOUR_REGISTRATION_MASTER_KEY"
},
"Logging": {
"LogLevel": { "Default": "Information", "Microsoft.Hosting.Lifetime": "Information" }
}
}Пояснение полей AgentSettings:
InventoryNumber— уникальный инвентарный номер ПК в организации.Location— кабинет или локация, где физически находится компьютер.
⚠️ Важно: Перед запуском обязательно заполнитеInventoryNumberиLocationвappsettings.json. С заглушками приложение выдаст ошибку.
🛡️ Права администратора: Для работы
LibreHardwareMonitor(опрос температур CPU/GPU и кулеров) приложение должно быть запущено от имени Администратора или работать как служба Windows. Если датчики не отображаются — убедитесь, что у процесса есть админ-права для загрузки встроенного драйвера мониторинга.
Рекомендуется соблюдать следующий порядок запуска компонентов:
SigmaCore.Server— центральный узел (Web API, gRPC, SignalR).SigmaCore.Agent— служба сбора данныхSigmaCore.Admin / SigmaCore.Client— десктопная панель управления (WPF).
- Вариант А (Интерактивный запуск через CLI / EXE):
Удобно для первоначальной настройки и отладки. Если
InventoryNumberилиLocationв конфигурационном файле пустые, Агент интерактивно запросит их ввод прямо в консоли. - Через .NET CLI: Запустите терминал от имени Администратора и выполните:
dotnet run --project SigmaCore.Agent.csproj-
Через скомпилированный файл: Запустите
SigmaCore.Agent.exeот имени Администратора. -
Вариант Б (Запуск как фоновый процесс / Служба Windows): Рекомендуется для постоянной работы в продакшене. Агент работает скрыто, без открытия консольного окна.
⚠️ Важно: При этом варианте Агент не сможет запросить данные в консоли, поэтому перед регистрацией обязательно заполнитеInventoryNumberиLocationвручную вappsettings.json. Выполните в PowerShell от Администратора:
# Регистрация службы Windows
New-Service -Name "SigmaCoreAgent" -BinaryPathName "C:\Path_To_Publish\SigmaCore.Agent.exe" -StartupType Automatic
# Запуск службы
Start-Service -Name "SigmaCoreAgent"Для обеспечения безопасности и минимизации трафика в Агенте реализована автономная логика работы с файловой системой:
- Авторизация и перерегистрация (
auth.bin): При первом запуске Агент регистрируется на сервере с помощьюMasterKey. После успешной проверки сервер генерирует уникальный токен доступа, который Агент сохраняет локально в файлauth.bin, зашифровав его встроенными средствами Windows. При всех последующих сессиях Агент использует данные изauth.binдля подтверждения подлинности. Если этот файл удален или пуст, Агент автоматически инициирует процедуру повторной регистрации черезMasterKey. - Предотвращение дублирования логов (
last_log_sync.txt): Чтобы избежать повторной отправки одних и тех же записей системного журнала событий Windows при перезапуске Агента или потере сети, в корне каталога Агента создается файлlast_log_sync.txt. В нем сохраняется временная метка последнего успешно переданного лога. Новый сбор системных событий всегда начинается строго с этой даты.
- Сбор метрик железа: нагрузка и температура CPU/GPU.
- Мониторинг накопителей и сети: скорость чтения/записи, заполненность дисков.
- Инвентаризация: автоопределение типа устройства (ПК/Ноутбук), сбор IP/MAC, привязка локации.
- Сбор системных логов и расчет чистого времени работы (Uptime).
- Мониторинг парка ПК в реальном времени (Online/Offline статусы через SignalR).
- Интерактивные графики LiveCharts2 (метрики за 24 часа).
- Система алертов: оперативное выявление критических сбоев и нехватки места.
- Синтетические тесты скорости RAM и дисковой подсистемы.
- Стресс-тестирование процессора (CPU) на стабильность.
- Сетевые бенчмарки: измерение пинга и пропускной способности канала (Download Speed).
- Глубокая аналитика: Добавление долгосрочных отчетов (неделя/месяц), сравнение производительности однотипных сборок.
- Умный сбор данных: Чтение характеристик подключенных мониторов (EDID) и предфильтрация "мусорных" логов Windows прямо на клиенте.
- Кроссплатформенность: Перенос агента на Linux (сбор метрик через
sysfs/procfs). - Рефакторинг архитектуры: Внедрение DI/IoC во все слои и декомпозиция монолитного
AdminServiceна изолированные доменные сервисы.
| Компонент | Технология | Назначение |
|---|---|---|
| Backend | ASP.NET Core 8 | REST API, Центральный узел координации |
| БД Сервера | PostgreSQL | Реляционное хранилище конфигураций и метрик |
| ORM | Dapper | Высокопроизводительный маппинг сырых SQL-запросов |
| БД Агента | SQLite | Локальный кэш метрик при разрыве соединения с сервером |
| Связь | gRPC, SignalR, REST | gRPC (Agent ↔ Server), SignalR (Server ↔ Admin Hub), REST для CRUD |
| Клиенты | WPF (.NET 8) | Интерфейсы администратора и пользователя |
| Датчики | LibreHardwareMonitor | Чтение показателей S.M.A.R.T, температур и вольтажей |
| Графики | LiveCharts2 | Легковесная визуализация данных на UI |
Проект распространяется под лицензией MIT.







