Initial Proxmox dashboard with host and guest metrics
This commit is contained in:
105
README.md
Normal file
105
README.md
Normal file
@@ -0,0 +1,105 @@
|
||||
# Proxmox CPU Dashboard
|
||||
|
||||
Локальная веб-панель CPU для Proxmox. Данные читаются напрямую из `/proc` и
|
||||
`/sys`, без Proxmox API. Интерфейс обновляется каждые две секунды.
|
||||
|
||||
Панель показывает:
|
||||
|
||||
- модель и текущую загрузку CPU;
|
||||
- количество сокетов, физических ядер и логических потоков;
|
||||
- среднюю текущую частоту;
|
||||
- load average за 1, 5 и 15 минут;
|
||||
- uptime;
|
||||
- доступные аппаратные температуры.
|
||||
- использование RAM, доступную память, кэш, буферы и swap.
|
||||
- заполнение системного диска `/`;
|
||||
- список физических дисков, модель, серийный номер, SMART, температуру, наработку
|
||||
и доступные данные об износе;
|
||||
- текущую скорость и суммарные счётчики сетевого трафика.
|
||||
- состояние, заполнение, фрагментацию и scrub/resilver ZFS-пулов;
|
||||
- состояние UPS через NUT или apcupsd, заряд, автономность, нагрузку и напряжение.
|
||||
- состояние VM и LXC, CPU, память, выделенные ядра и uptime.
|
||||
|
||||
На главном экране находятся компактные карточки CPU, памяти, диска и сети.
|
||||
Нажатие на карточку открывает подробные показатели.
|
||||
|
||||
## Быстрый запуск
|
||||
|
||||
Скопируйте `dist/proxmox-cpu-dashboard-linux-amd64` на Proxmox, затем:
|
||||
|
||||
```bash
|
||||
chmod +x proxmox-cpu-dashboard-linux-amd64
|
||||
./proxmox-cpu-dashboard-linux-amd64
|
||||
```
|
||||
|
||||
Откройте:
|
||||
|
||||
```text
|
||||
http://192.168.0.10:9105
|
||||
```
|
||||
|
||||
## Установка как службы
|
||||
|
||||
```bash
|
||||
install -m 0755 proxmox-cpu-dashboard-linux-amd64 /usr/local/bin/proxmox-cpu-dashboard
|
||||
install -m 0644 proxmox-cpu-dashboard.service /etc/systemd/system/proxmox-cpu-dashboard.service
|
||||
systemctl daemon-reload
|
||||
systemctl enable --now proxmox-cpu-dashboard
|
||||
systemctl status proxmox-cpu-dashboard
|
||||
```
|
||||
|
||||
По умолчанию панель слушает порт `9105` на всех интерфейсах. Другой адрес можно
|
||||
задать переменной `DASHBOARD_ADDR`, например `127.0.0.1:9105`.
|
||||
|
||||
На веб-сервере пока нет авторизации. Не открывайте порт `9105` в интернет.
|
||||
|
||||
Для SMART-метрик на Proxmox должен быть установлен пакет `smartmontools`:
|
||||
|
||||
```bash
|
||||
apt update
|
||||
apt install -y smartmontools
|
||||
```
|
||||
|
||||
Без него список дисков и их паспортные данные продолжат отображаться, а SMART
|
||||
будет отмечен как недоступный.
|
||||
|
||||
Проверить исходные SMART-данные вручную:
|
||||
|
||||
```bash
|
||||
smartctl -x /dev/sda
|
||||
smartctl -x -j /dev/sda
|
||||
smartctl -x /dev/nvme0n1
|
||||
```
|
||||
|
||||
У HDD обычно нет показателя износа в процентах. Для NVMe используется
|
||||
`Percentage Used`, а для SATA SSD — поддерживаемые накопителем атрибуты ресурса.
|
||||
Если производитель не публикует такой атрибут, панель корректно показывает `—`.
|
||||
|
||||
## UPS
|
||||
|
||||
Панель автоматически пробует получить данные через NUT (`upsc`), затем через
|
||||
`apcaccess`. Для проверки NUT:
|
||||
|
||||
```bash
|
||||
upsc -l
|
||||
upsc ИМЯ_UPS
|
||||
```
|
||||
|
||||
Для проверки apcupsd:
|
||||
|
||||
```bash
|
||||
apcaccess status
|
||||
```
|
||||
|
||||
## API
|
||||
|
||||
- `GET /api/cpu` — один JSON-снимок.
|
||||
- `GET /api/system` — единый JSON-снимок CPU и памяти.
|
||||
- `GET /api/events` — поток метрик SSE с интервалом две секунды.
|
||||
|
||||
## Сборка
|
||||
|
||||
```bash
|
||||
go test ./...
|
||||
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build -o proxmox-cpu-dashboard .
|
||||
```
|
||||
Reference in New Issue
Block a user