mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-11-02 10:52:22 +00:00
feat(post-install): rebuild Log2RAM with the journal and task logs kept on disk
This commit is contained in:
@@ -79,7 +79,7 @@
|
||||
},
|
||||
{
|
||||
"tool": "Log2RAM (adaptado a SSD, automático)",
|
||||
"what": "Reduz o desgaste SSD/NVMe movendo /var/log para um ramdisk tmpfs com sincronização periódica para disco. Instalação a partir do projeto original quando o disco raiz é SSD ou NVMe. Dimensiona pela RAM do host (128M / 256M / 512M), agenda sincronização periódica e proteção automática que limpa journals antigos aos 80% e trunca registos muito ativos aos 92% antes de gravar. Ajusta limites journald ao ramdisk. Detalhes em <link>Log2RAM</link>.",
|
||||
"what": "Reduz o desgaste do SSD/NVMe movendo /var/log para um ramdisk tmpfs gravado no disco de forma programada. É instalado a partir do projeto oficial quando o disco do sistema é SSD ou NVMe. Dimensiona o ramdisk segundo a RAM do host (128M / 256M / 512M) e adiciona uma vigilância que rotaciona e grava os logs quando o ramdisk ultrapassa 85%. O journal e os logs de tarefas do Proxmox VE e do Proxmox Backup Server ficam no disco. Todos os detalhes em <link>Log2RAM</link>.",
|
||||
"category": "Armazenamento",
|
||||
"categorySlug": "storage"
|
||||
},
|
||||
@@ -109,7 +109,7 @@
|
||||
}
|
||||
],
|
||||
"hardwareTitle": "Predefinições adaptadas ao hardware",
|
||||
"hardwareBody": "O script lê o hardware do host antes de aplicar as configurações. Log2RAM é instalado apenas em discos raiz SSD / NVMe por padrão (ele avisa se a detecção indicar o contrário). O tamanho do ramdisk Log2RAM é escolhido do total RAM (<code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>'>' 16 GB → 512M</code>). Os limites journald correspondem ao tamanho do disco RAM quando Log2RAM está ativo, para evitar preenchê-lo.",
|
||||
"hardwareBody": "O script lê o hardware do host antes de aplicar as configurações. Log2RAM é instalado apenas em discos raiz SSD / NVMe por padrão (ele avisa se a detecção indicar o contrário). O tamanho do ramdisk Log2RAM é escolhido do total RAM (<code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>'>' 16 GB → 512M</code>). Com o Log2RAM ativo, o journal fica no disco com o seu próprio limite.",
|
||||
"upgrade": {
|
||||
"heading": "Atualizar listas de pacotes e sistema",
|
||||
"intro": "O primeiro passo do percurso automatizado é atualizar o Proxmox. Para um host em funcionamento dentro da mesma versão principal, o Proxmox recomenda:",
|
||||
|
||||
@@ -133,25 +133,25 @@
|
||||
},
|
||||
"log2ram": {
|
||||
"title": "Instalar Log2RAM (redução do desgaste de SSD/NVMe)",
|
||||
"intro": "Log2RAM monta <code>/var/log</code> num ramdisk tmpfs e sincroniza-o periodicamente para disco. Guardar temporariamente na RAM as escritas frequentes do journald pode reduzir desgaste SSD e E/S. A sincronização e o encerramento normal guardam os registos; um corte abrupto pode perder entradas desde a última sincronização.",
|
||||
"intro": "O Log2RAM monta <code>/var/log</code> num ramdisk tmpfs e grava-o no disco de forma programada, para que os logs que mudam constantemente, como o log de acessos do pveproxy, sejam gravados na RAM em vez do SSD do sistema. O journal e os logs de tarefas do Proxmox VE e do Proxmox Backup Server ficam no disco. Um desligamento limpo grava o ramdisk no disco; uma queda de energia abrupta perde apenas os logs de texto gravados desde a última sincronização.",
|
||||
"upstreamLabel": "Projeto a montante:",
|
||||
"upstreamUrl": "https://github.com/azlux/log2ram",
|
||||
"upstreamLinkLabel": "azlux/log2ram em GitHub",
|
||||
"doesLabel": "O que o ProxMenux faz:",
|
||||
"doesItems": [
|
||||
"Detecta se o disco raiz é SSD/NVMe lendo <code>/sys/block/<dev>/queue/rotational</code>. Em um disco rotacional o fluxo automatizado pede primeiro antes de instalar.",
|
||||
"Clona o repositório original (<code>azlux/log2ram</code>) para <code>/tmp/log2ram</code> e modifica <code>install.sh</code>, substituindo <code>rsync -aAXv</code> por <code>rsync -aXv --no-acls</code>. Evita o erro <em>set_acl: Operation not supported</em> com código de saída 23, gerado pelo script original ao mover /var/log em sistemas sem ACL. A unidade systemd <code>log2ram</code> é ativada após instalação.",
|
||||
"Instala o Log2RAM 1.7.2 a partir do projeto oficial, verificando que o download é essa versão, e mantém o seu código inalterado. O e-mail de erro é desativado com <code>NOTIFICATION=false</code>, pois o Proxmox VE não inclui um comando de e-mail.",
|
||||
"Dimensiona o ramdisk pela RAM do host: <code>≤ 8 GB → 128M</code>, <code>≤ 16 GB → 256M</code>, <code>> 16 GB → 512M</code>. Escreve o valor em <code>SIZE=</code> de <code>/etc/log2ram.conf</code>.",
|
||||
"Agenda uma sincronização periódica do disco via <code>/etc/cron.d/log2ram</code>: a cada 1h / 3h / 6h de acordo com o mesmo nível RAM.",
|
||||
"Instala <code>/usr/local/bin/log2ram-check.sh</code>, executado a cada 10 minutos por <code>/etc/cron.d/log2ram-auto-sync</code>. Quando <code>/var/log</code> chega a 80% do ramdisk, limpa journals antigos. Aos 92%, executa primeiro <code>logrotate -f /etc/logrotate.d/proxmox-backup-api</code> se o ficheiro existir: os registos API PBS costumam ocupar mais espaço num host PBS. Depois trunca <code>pveproxy access/error</code> e <code>pveam.log</code> antes de sincronizar. <code>log2ram write</code> apenas copia tmpfs para disco, sem o reduzir. A proteção ajuda a evitar falhas PVE com <em>No space left on device</em> por crescimento descontrolado dos registos.",
|
||||
"Deteta o serviço <code>proxmox-backup-server</code> no host. Se existir, cria <code>/etc/logrotate.d/proxmox-backup-api</code> (20 MB × 3 rotações) e <code>/etc/cron.hourly/proxmox-backup-logrotate</code> para limitar os registos API PBS, fonte habitual de crescimento, mesmo entre sincronizações Log2RAM. Sem PBS não altera nada.",
|
||||
"Ajusta os limites systemd-journald (<code>SystemMaxUse</code>, <code>RuntimeMaxUse</code>) ao ramdisk para que uma rajada de registos não o encha.",
|
||||
"Fica registado em <code>installed_tools.json</code> para poder ser revertido em Desinstalar otimizações."
|
||||
"Mantém no disco o journal (<code>/var/log/journal</code>), os logs de tarefas do Proxmox VE (<code>/var/log/pve</code>) e, se estiver instalado, os do Proxmox Backup Server (<code>/var/log/proxmox-backup</code>), em <code>/var/hdd.journal</code>, <code>/var/hdd.pve</code> e <code>/var/hdd.proxmox-backup</code>. Cada caminho habitual passa a ser um link para a sua pasta no disco. A mudança acontece na inicialização, antes de o Log2RAM arrancar.",
|
||||
"Grava o ramdisk no disco com o temporizador do Log2RAM a cada 1h / 3h / 6h conforme a mesma faixa de RAM, e descarrega o disco após cada gravação, para que uma sincronização concluída sobreviva a uma queda de energia.",
|
||||
"Instala uma vigilância em <code>/etc/cron.d/log2ram-auto-sync</code> executada a cada 10 minutos. Quando <code>/var/log</code> ultrapassa 85% do ramdisk, rotaciona os logs, comprime os recém-rotacionados e grava tudo no disco. Nenhum log é esvaziado.",
|
||||
"Mantém o journal do systemd no disco com um limite de 1 GB, em <code>/etc/systemd/journald.conf.d/proxmenux-log2ram.conf</code>. Num host com Proxmox Backup Server, adiciona <code>/etc/logrotate.d/proxmox-backup-api</code> (rotação de 20 MB × 3) para os seus logs da API.",
|
||||
"Regista-se em <code>installed_tools.json</code> para poder ser revertido em Desinstalar otimizações. Uma atualização a partir de uma versão anterior mantém o tamanho e o intervalo de sincronização, e leva o journal para o disco na inicialização seguinte."
|
||||
],
|
||||
"howUseLabel": "Como utilizar:",
|
||||
"howUseBody": "O percurso automatizado instala Log2RAM sem intervenção se detetar disco raiz SSD/NVMe. O personalizável pergunta tamanho, intervalo e ativação da proteção. A pergunta indica 90%, mas o script gerado usa os limiares de limpeza de 80% e intensiva de 92% descritos acima.",
|
||||
"howUseBody": "No fluxo automatizado, o Log2RAM instala-se sem intervenção ao detetar um disco do sistema SSD/NVMe. O personalizável pergunta o tamanho, o intervalo de sincronização e se deve ativar a vigilância. As alterações aplicam-se na inicialização seguinte.",
|
||||
"verifyLabel": "Verificar e gerenciar a partir da shell:",
|
||||
"verifyCode": "# Service state and configured timers\nsystemctl status log2ram\nsystemctl list-timers log2ram*\n\n# Current ramdisk usage — /var/log IS the tmpfs itself\ndf -h /var/log\n\n# Force a sync now (tmpfs → disk); does NOT shrink the tmpfs\nlog2ram write\n\n# Trigger the auto-sync guard on demand (vacuum + sync when usage is high)\n/usr/local/bin/log2ram-check.sh\n\n# Current config: SIZE, mail settings, path\ncat /etc/log2ram.conf\n\n# ProxMenux-specific cron jobs\ncat /etc/cron.d/log2ram /etc/cron.d/log2ram-auto-sync\n\n# Recent Log2RAM activity\njournalctl -u log2ram -n 50 --no-pager"
|
||||
"verifyCode": "# Service state and sync timer\nsystemctl status log2ram\nsystemctl list-timers log2ram-daily.timer\n\n# Ramdisk usage — /var/log IS the tmpfs itself\ndf -h /var/log\n\n# Folders kept on disk, and the journal size\nls -l /var/log | grep -- '->'\njournalctl --disk-usage\n\n# Write the ramdisk to disk now\nsystemctl reload log2ram\n\n# Current configuration\ncat /etc/log2ram.conf\nsystemctl cat log2ram\n\n# Recent Log2RAM activity\njournalctl -u log2ram -n 50 --no-pager"
|
||||
},
|
||||
"zram": {
|
||||
"title": "Habilitar perfil de troca ZRAM",
|
||||
|
||||
@@ -125,7 +125,7 @@
|
||||
},
|
||||
{
|
||||
"tool": "Log2RAM",
|
||||
"restores": "Para e desativa o serviço e o timer. Purga trabalhos de cron, unidades systemd, binários, arquivos de configuração e o diretório /var/log.hdd. Também desinstala o pacote apt se ele foi instalado dessa forma."
|
||||
"restores": "Desativa o serviço e o temporizador e remove a configuração do ProxMenux para o Log2RAM. No desligamento seguinte, o Log2RAM grava /var/log no disco; na inicialização seguinte, o journal e os logs de tarefas voltam para /var/log e os ficheiros do Log2RAM são removidos."
|
||||
},
|
||||
{
|
||||
"tool": "TRIM automático do ZFS",
|
||||
|
||||
Reference in New Issue
Block a user