1.9 KiB
han-vm-metrics.sh
Установка на ВМ sudo mkdir -p /opt/han-chat/ops Cкопировать han-vm-metrics.sh на сервер, затем: sudo chmod +x /opt/han-chat/ops/han-vm-metrics.sh sudo /opt/han-chat/ops/han-vm-metrics.sh JSON:
sudo /opt/han-chat/ops/han-vm-metrics.sh --json Cron каждые 5 минут + лог + ненулевой exit при проблемах:
echo '*/5 * * * * root /opt/han-chat/ops/han-vm-metrics.sh --alert --log /var/log/han-vm-metrics.log' | sudo tee /etc/cron.d/han-vm-metrics Пороги можно менять env: DISK_WARN_PCT, DISK_CRIT_PCT, MEM_WARN_PCT, CERT_WARN_DAYS, SSH_FAIL_WARN.
diagnose-han-chat.sh
КОнтроль места
docker images --format 'table {{.Repository}}\t{{.Tag}}\t{{.Size}}\t{{.ID}}\t{{.CreatedSince}}' docker builder du
Очистка build cache
docker builder prune -af
Cron раз в сутки (03:15) + лог
echo '15 3 * * * root /usr/bin/docker builder prune -af >> /var/log/docker-builder-prune.log 2>&1' | sudo tee /etc/cron.d/docker-builder-prune sudo chmod 644 /etc/cron.d/docker-builder-prune
Логи cat /etc/cron.d/docker-builder-prune tail -n 20 /var/log/docker-builder-prune.log
Проверка места
df -h / docker system df
Обновление секретов
Как проверить, что sync реально отработал
# 1) Когда unit реально выполнялся
systemctl show han-secrets-vm2.service -p ActiveState -p SubState -p Result -p ExecMainStartTimestamp -p ExecMainStatus
# 2) Журнал последней попытки
journalctl -u han-secrets-vm2.service -n 50 --no-pager
# 3) Принудительно пересинхронизировать
systemctl restart han-secrets-vm2.service
echo exit:$?
systemctl show han-secrets-vm2.service -p ExecMainStartTimestamp -p Result -p ExecMainStatus