{
"meta": {
"title": "ProxMenux Monitor — Painel: Registos do sistema | Documentação ProxMenux",
"description": "A guia System Logs consolida três fontes em uma tela: ao vivo journalctl com filtros e download, histórico de tarefas Proxmox (UPIDs) e registro de notificações — todos pesquisáveis, filtrados por intervalo de gravidade/tempo, e baixados como pacotes de texto."
},
"header": {
"title": "Painel: Registos do sistema",
"description": "Três subseparadores no mesmo ecrã: journal do sistema (journalctl com filtros), histórico de tarefas do Proxmox e registo de notificações. Todos permitem pesquisar, filtrar e transferir os dados como pacotes de texto.",
"section": "ProxMenux Monitor · Painel"
},
"readOnly": {
"title": "Apenas leitura por design",
"body": "Este separador não altera ficheiros de registo. Os filtros ficam no URL ou no estado da interface; as transferências são preparadas no servidor. O painel nunca apaga entradas. Para a manutenção dos registos, utilize journalctl --vacuum-time=<N> ou logrotate no host."
},
"topRow": {
"heading": "Linha superior: quatro contadores",
"items": [
"Total de entradas — número de registos no intervalo do filtro ativo.",
"Erros — número de entradas com gravidade ≤ 3 (err / crit / alert / emerg).",
"Avisos — número de entradas com gravidade 4 (warning).",
"Cópias de segurança — número de entradas de tarefas vzdump / PBS no mesmo intervalo."
]
},
"subtabs": {
"heading": "Três subseparadores",
"logsTitle": "Registros",
"logsIntro": "O journal do sistema, obtido no servidor com journalctl. Filtros disponíveis na barra de ferramentas:",
"logsFilters": [
"Gravidade — emerg / alert / crit / err / warning / notice / info / debug, ou qualquer combinação.",
"Tempo de alcance — último 5 min / 15 min / 1 h / 6 h / 24 h / 7 d / custom.",
"Pesquisa livre — subcadeia ou expressão regular (journalctl --grep).",
"Filtro por unidade — restringe a uma unidade systemd específica (pveproxy.service, nginx.service, …)."
],
"logsRowsAfter": "Cada linha mostra a hora, o crachá de gravidade, a unidade de origem e a mensagem. Mensagens longas colapsam com uma opção \"mostrar mais\". A ação Download agrupa o filtro atual em um único arquivo .txt via GET /api/logs/download — útil quando você deseja compartilhar uma fatia de diário com alguém.",
"logDetailsModalTitle": "Janela Detalhes do registo",
"logDetailsBody": "Clicar numa linha abre Detalhes do registo com todos os campos estruturados que journald capturou para essa entrada, como ao executar journalctl --output=verbose no host.",
"logDetailsImageAlt": "Janela Detalhes do registo — uma entrada do journal expandida com nível, serviço, data e hora, origem, unidade systemd, ID do processo, nome do host e mensagem completa",
"logDetailsImageCaption": "Detalhes do registo — todos os campos estruturados de journald para a entrada, com a mensagem completa sem cortes no final. Útil para registos de cron e serviços quando a linha de comando executada é relevante.",
"fieldsIntro": "Campos mostrados:",
"fields": [
"Level — emblema de gravidade colorido (INFO / AVISO / ERRO / CRÍTICO).",
"Service — nome curto da unidade / processo que emitiu a entrada.",
"Timestamp — data e hora completas da linha de registo.",
"Source — origem da entrada (jornal, kernel, auditoria, ...).",
"Systemd Unit — a unidade .service / .timer / .socket real se a entrada foi associada a uma.",
"Process ID — PID do processo de emissão.",
"Hostname — útil quando os periódicos são encaminhados através de nós de cluster.",
"Mensagem — mensagem completa sem cortes, num bloco monoespaçado pronto a copiar."
],
"maxLevelStoreTitle": "Journald MaxLevelStore",
"maxLevelStoreBody": "Numa instalação nova do Proxmox, journald utiliza por predefinição MaxLevelStore=warning, que descarta mensagens info. O Monitor deteta isto no arranque e acrescenta um ficheiro de configuração complementar (/etc/systemd/journald.conf.d/proxmenux-loglevel.conf) com o limiar info, para guardar mensagens informativas e mais graves. Isto não inclui debug.",
"backupsTitle": "Cópias de segurança",
"backupsBody": "Histórico de tarefas do Proxmox limitado às cópias de segurança. Uma linha por tarefa (vzdump, transferências PBS, recolha de dados não utilizados e verificação), com estado (OK / WARNINGS / ERROR), sistema convidado envolvido, armazenamento de origem, duração e UPID. Clique numa linha para carregar o registo completo através de GET /api/task-log/<upid>: os mesmos dados de Datacenter → Tasks, limitados às cópias de segurança.",
"notificationsTitle": "Notificações",
"notificationsBody1": "Todas as notificações enviadas pelo Monitor: Telegram, Discord, e-mail, Gotify, ntfy, Slack, Teams e webhook. Cada linha mostra data e hora, canal, tipo de evento, gravidade, título e corpo gerados e, se a IA estiver ativa, um controlo para comparar a sua reformulação com o original.",
"notificationsBody2": "Utilize este separador para verificar se um canal entrega notificações e comparar a reformulação da IA com o modelo de base. Os canais configuram-se na página detalhada Notificações."
},
"dataCollected": {
"heading": "Como os dados são coletados",
"headerSubtab": "Subseparador",
"headerEndpoint": "Endpoint",
"headerSource": "Origem",
"rows": [
{
"subtab": "Registos (filtro em direto)",
"endpoint": "/api/logs",
"source": "journalctl --output json --since <range> com filtros de gravidade, unidade e pesquisa aplicados no servidor."
},
{
"subtab": "Transferir",
"endpoint": "/api/logs/download",
"source": "A mesma consulta, devolvida como texto simples para grep / less."
},
{
"subtab": "Cópias de segurança",
"endpoint": "/api/backups",
"source": "Histórico de tarefas PVE filtrado por vzdump, transferências PBS, recolha de dados não utilizados e verificação."
},
{
"subtab": "Detalhes de uma tarefa de cópia de segurança",
"endpoint": "/api/task-log/<upid>",
"source": "Registo completo da tarefa em texto simples, lido de /var/log/pve/tasks/<index>/<upid>."
},
{
"subtab": "Histórico de notificações",
"endpoint": "/api/notifications/history",
"source": "Tabela SQLite notification_history alimentada pelo ciclo de envio."
}
],
"apiIntro": "O filtro em direto e as transferências também estão acessíveis através da API:",
"codeComment1": "# Erros e eventos mais graves da última hora com uma palavra-chave",
"codeComment2": "# Transfira o journal completo das últimas 6 horas como texto simples",
"codeComment3": "# Procure o resultado completo de uma tarefa específica por UPID"
},
"whereNext": {
"heading": "Para onde seguir",
"items": [
{
"label": "Monitor de Saúde",
"href": "/docs/monitor/health-monitor",
"tail": " — a categoria Registos do sistema, que deteta padrões persistentes, picos e cascatas."
},
{
"label": "Notificações",
"href": "/docs/monitor/notifications",
"tail": " — a monitorização do journal lê a mesma origem e transforma correspondências em notificações."
},
{
"label": "Referência da API",
"href": "/docs/monitor/api",
"tail": " — os endpoints logs e task-log com os respetivos parâmetros de consulta."
},
{
"label": "Índice do painel",
"href": "/docs/monitor/dashboard",
"tail": " — os outros separadores."
}
]
}
}