{% extends 'base/layout.html' %} {% load helpers %} {% load pve_sync_tags %} {% block title %}Proxmox Sync Dashboard{% endblock %} {% block content %}

Proxmox Sync Dashboard

Proxmox VE & PBS → NetBox synchronization overview
{% csrf_token %}
{# ── Infrastructure Summary ── #}
{# Nodes card #}
PVE 節點
{{ total_nodes }}
上線 {{ online_nodes }} {% if offline_nodes > 0 %} 離線 {{ offline_nodes }} {% endif %}
{# Total VMs card #}
虛擬機總數
{{ total_vms }}
{% if staged_vms > 0 %} 範本 {{ staged_vms }} {% endif %}
{# Running VMs card #}
運行中
{{ running_vms }}
{% if total_vms > 0 %}
{{ running_vms|floatformat:0 }} / {{ total_vms }} ({% widthratio running_vms total_vms 100 %}%) {% endif %}
{# Stopped VMs card #}
已關機
{{ stopped_vms }}
{% if backup_alerts > 0 %} {{ backup_alerts }} 台備份逾期 {% else %} 備份狀態正常 {% endif %}
{# ── PVE Clusters + PBS Servers ── #}
PVE 叢集 新增
{% if clusters %} {% for c in clusters %} {% endfor %}
叢集名稱 節點 VM 排程 上次同步 狀態
{{ c.name }}
{{ c.pve_host }}
{{ c.stat_nodes }} {% if c.stat_nodes_online < c.stat_nodes %}
{{ c.stat_nodes_online }}/{{ c.stat_nodes }} 上線 {% else %}
全上線 {% endif %}
{{ c.stat_vms }}
{{ c.stat_vms_running }}
{% if c.sync_schedule == 'disabled' or not c.sync_schedule %} {% elif c.sync_schedule == 'hourly' or c.sync_schedule == 'every_3h' or c.sync_schedule == 'every_6h' %} {{ c.get_sync_schedule_display }} {% else %} {{ c.get_sync_schedule_display }} {% endif %} {% if c.last_sync %}{{ c.last_sync|date:"m-d H:i" }}{% else %}{% endif %} {% if c.last_sync_status == 'success' %} 成功 {% elif c.last_sync_status == 'failed' %} 失敗 {% elif c.last_sync_status %} {{ c.last_sync_status }} {% else %} 未同步 {% endif %}
{% csrf_token %}
{% else %}
尚未設定 PVE 叢集。立即新增 →
{% endif %}
PBS 備份伺服器 新增
{% if pbs_servers %} {% for pbs in pbs_servers %} {% endfor %}
名稱 排程 上次同步 狀態
{{ pbs.name }}
{{ pbs.display_host }}
{% if pbs.sync_schedule == 'disabled' or not pbs.sync_schedule %} {% elif pbs.sync_schedule == 'hourly' or pbs.sync_schedule == 'every_3h' or pbs.sync_schedule == 'every_6h' %} {{ pbs.get_sync_schedule_display }} {% else %} {{ pbs.get_sync_schedule_display }} {% endif %} {% if pbs.last_sync %}{{ pbs.last_sync|date:"m-d H:i" }}{% else %}{% endif %} {% if pbs.last_sync_status == 'success' %} 成功 {% elif pbs.last_sync_status == 'failed' %} 失敗 {% elif pbs.last_sync_status %} {{ pbs.last_sync_status }} {% else %} 未同步 {% endif %}
{% csrf_token %}
{% else %}
尚未設定 PBS 伺服器。立即新增 →
{% endif %}
{# ── Alerts + Webhook ── #}
告警
  • 備份逾期(>7 天) {{ backup_alerts }}
  • 待處理 Webhook {{ pending_webhooks }}
  • {% if offline_nodes > 0 %}
  • 節點離線 {{ offline_nodes }}
      {% for node in offline_node_list %}
    • {{ node.name }} {% if node.cluster %}({{ node.cluster.name }}){% endif %} {{ node.status }}
    • {% endfor %}
  • {% endif %}
Webhook 端點

將 PVE 事件 POST 到此 URL(支援 HMAC 驗證):

設定 中填入 webhook_secret 以啟用 HMAC 簽章驗證。

{# ── Recent Sync Jobs ── #}
最近同步記錄 查看全部
{% for job in recent_jobs %} {% empty %} {% endfor %}
# 叢集 狀態 觸發 開始時間 耗時 VM 成功/總計
#{{ job.id }} {{ job.cluster_name }} {{ job.get_status_display }} {{ job.get_trigger_display }} {{ job.start_time|date:"m-d H:i" }} {% if job.duration %}{{ job.duration|floatformat:0 }}s{% else %}{% endif %} {% if job.total_vms > 0 %} {{ job.success_vms }} / {{ job.total_vms }} {% elif job.status == 'running' %} 進行中… {% else %} {% endif %}
尚無同步記錄,按下「Sync Now」開始。
{% endblock %}