Compare commits

..

3 Commits

Author SHA1 Message Date
lorsan f0c3a67826 refactor: comma-ok in listenHeartbeat 2026-05-18 16:06:29 +03:00
lorsan ef67ccd7b2 fix: agent_id in table 2026-05-18 16:01:07 +03:00
lorsan 8705f8708d refactor: edit readme 2026-05-18 15:58:00 +03:00
4 changed files with 8 additions and 5 deletions
+1 -2
View File
@@ -37,7 +37,7 @@
Проект состоит из трех основных компонентов:
1. **Hub (The Brain):** Центральный сервис на Go/Python. Хранит конфигурации, управляет состоянием, оркестрирует Runbooks и управляет Telegram-ботом. База данных — Postgres.
1. **Hub (The Brain):** Центральный сервис на Go/Python. Хранит конфигурации, управляет состоянием, оркестрирует Runbooks и управляет Telegram-ботом. База данных — SQLite.
2. **Agent (The Executor):** Легковесный бинарный файл, работающий непосредственно на целевом хосте. Связь с Хабом через **gRPC Stream**.
3. **Telegram Interface:** Основной UI для оперативного управления с использованием Inline-кнопок для быстрых действий (Ack, Mute, Restart).
@@ -66,7 +66,6 @@
## 🔒 Безопасность
* **No Inbound Ports:** Агент не слушает порты. Соединение всегда инициируется изнутри вашей сети.
* **mTLS / Token Auth:** Весь трафик между Агентом и Хабом зашифрован.
* **Hardened Commands:** Невозможно выполнить `rm -rf /` — доступны только те команды, что описаны в коде агента.
*Created with ❤️ for Stasik.*
@@ -1,6 +1,6 @@
CREATE TABLE heartbeats (
id INTEGER PRIMARY KEY AUTOINCREMENT,
agent_id VARCHAR(32) UNIQUE NOT NULL,
agent_id VARCHAR(32) NOT NULL,
cpu_usage FLOAT NOT NULL ,
memory_usage FLOAT NOT NULL ,
disk_usage FLOAT NOT NULL ,
@@ -90,9 +90,12 @@ func (a *AgentConnection) listenHeartbeat(heartbeats <-chan domainHub.CreateHear
}
a.log.Warn().Msg("agent not send heartbeat")
a.Close()
_ = a.Close()
return
case heartbeat := <-heartbeats:
case heartbeat, ok := <-heartbeats:
if !ok {
return
}
a.log.Debug().
Float64("cpu usage", heartbeat.Metrics.CpuUsage).
Float64("disk usage", heartbeat.Metrics.DiskUsage).
@@ -0,0 +1 @@
package connection_manager