mirror of
https://github.com/MacRimi/ProxMenux.git
synced 2026-06-01 13:04:42 +00:00
5ca3463bf6
Full rewrite of the docs site under app/[locale]/ with next-intl in localePrefix:"always" mode. Every page now exists at both /en/<path> and /es/<path>; the root / shows a meta-refresh + JS redirect to /<defaultLocale>/ so GitHub Pages serves something on the apex URL. Highlights: - 107 doc pages migrated to file-per-page JSON namespaces under messages/en/ and messages/es/. Spanish content is fully translated (no copy-of-English placeholders). - New documentation for the Active Suppressions section in the Settings tab and the per-event Dismiss dropdown in the Health Monitor modal. - New screenshots: dismiss-duration-dropdown.png and an updated health-suppression-settings.png. - Pagefind integrated for client-side search; index is built on every CI deploy (not committed). - RSS feeds: per-locale at /<locale>/rss.xml plus root /rss.xml for backward compat. - Removed the dead app/[locale]/guides/[slug]/ route — every guide now has its own static page and no markdown source remains. - Fixed orphan link /guides/nvidia -> /guides/nvidia-manual in docs/hardware/nvidia-host. - Removed obsolete components (footer2, calendar, drawer). Verified locally with `npm ci && npm run build`: 2804 files in out/, 231 pages indexed by pagefind, root redirect intact, both locale roots and the new Active Suppressions docs render OK.
134 lines
9.8 KiB
JSON
134 lines
9.8 KiB
JSON
{
|
||
"meta": {
|
||
"title": "Post-instalación: Sistema | ProxMenux Documentation",
|
||
"description": "Optimizaciones a nivel de sistema en el script post-instalación Customizable de ProxMenux: límites de tamaño de journald y logrotate, límites de kernel y descriptores de fichero más altos, tuning de memoria balanceado, kexec para reinicios rápidos, y recuperación ante kernel panic."
|
||
},
|
||
"header": {
|
||
"title": "Post-instalación: Sistema",
|
||
"section": "Settings post-install Proxmox"
|
||
},
|
||
"intro": {
|
||
"title": "Qué cubre esta categoría",
|
||
"body": "Seis optimizaciones independientes a nivel de sistema. Tunean <strong>journald</strong> y <strong>logrotate</strong> para que los logs no llenen el disco, suben los <strong>límites de kernel y descriptores de fichero</strong> para que aplicaciones con muchos archivos abiertos no peguen contra el techo, <strong>balancean la memoria</strong> para un host de virtualización, añaden <strong>kexec</strong> para \"reinicios sin BIOS\", y configuran <strong>recuperación automática</strong> ante kernel panic. Las seis están registradas y son reversibles desde el menú Uninstall."
|
||
},
|
||
"journald": {
|
||
"heading": "Optimizar journald",
|
||
"intro": "Reescribe <code>/etc/systemd/journald.conf</code> con valores por defecto sensatos para que el journal de systemd no pueda comerse lentamente tu partición raíz, luego reinicia <code>systemd-journald</code> y limpia (vacuum) los logs existentes.",
|
||
"keyTitle": "Valores clave",
|
||
"keyItems": [
|
||
"<code>Storage=persistent</code> — conservar logs en disco entre reinicios.",
|
||
"<code>SystemMaxUse=64M</code> / <code>RuntimeMaxUse=60M</code> — caps duros sobre el uso de disco/memoria del journal.",
|
||
"<code>Compress=yes</code>, <code>Seal=no</code> — comprimir logs, saltar el forward-secure sealing (ahorra CPU).",
|
||
"<code>MaxLevelStore=info</code> — almacenar info y superiores (requerido para el visor de logs del ProxMenux Monitor y para que Fail2Ban detecte fallos de autenticación SSH/Proxmox desde el journal).",
|
||
"Rate-limits: <code>1000 eventos / 30 s</code> para prevenir flooding de logs.",
|
||
"<code>ForwardToSyslog=no</code>, <code>ForwardToWall=no</code> — no duplicar mensajes a syslog ni broadcastear a consolas."
|
||
],
|
||
"tipTitle": "Por qué importa MaxLevelStore=info",
|
||
"tipBody": "Usar un nivel más estricto como <code>warning</code> hace que el visor de logs del ProxMenux Monitor muestre entradas casi idénticas en todos los rangos de fechas (porque la mayoría de la actividad es de nivel info), e impide que Fail2Ban vea logins fallidos. Si quieres menos volumen de logs, apóyate en el cap <code>SystemMaxUse</code> y en <code>RateLimitBurst</code> en lugar de bajar el nivel almacenado."
|
||
},
|
||
"logrotate": {
|
||
"heading": "Optimizar logrotate",
|
||
"intro": "Reescribe <code>/etc/logrotate.conf</code> con una política más estricta adecuada para un host que también forma parte de un setup Log2RAM de protección de SSD: rotación diaria, retención de 7 días, trigger de tamaño 10 MB, compresión, y <code>copytruncate</code> para que los servicios activos sigan escribiendo sin reabrir sus archivos de log. El <code>logrotate.conf</code> original se respalda en <code>.bak</code> en la primera aplicación.",
|
||
"tipTitle": "Amigable con Log2RAM",
|
||
"tipBody": "El trigger <code>size 10M</code> significa que los logs rotan por tamaño <em>o</em> diariamente, lo que ocurra primero. Combinado con el <code>/var/log</code> respaldado en RAM de Log2RAM, esto mantiene el working set pequeño para que los flushes a disco sean baratos."
|
||
},
|
||
"limits": {
|
||
"heading": "Aumentar varios límites del sistema",
|
||
"intro": "Sube un puñado de límites de kernel, systemd y PAM que por defecto tienen valores demasiado bajos para un host que ejecuta muchas VMs, contenedores y servicios en red.",
|
||
"headerFile": "Archivo",
|
||
"headerSets": "Qué establece",
|
||
"rows": [
|
||
{
|
||
"file": "/etc/sysctl.d/99-maxwatches.conf",
|
||
"sets": "<code>fs.inotify.max_user_watches / max_user_instances / max_queued_events = 1048576</code>"
|
||
},
|
||
{
|
||
"file": "/etc/sysctl.d/99-maxkeys.conf",
|
||
"sets": "<code>kernel.keys.maxkeys / root_maxkeys = 1000000</code>"
|
||
},
|
||
{
|
||
"file": "/etc/sysctl.d/99-swap.conf",
|
||
"sets": "<code>vm.swappiness = 10</code>, <code>vm.vfs_cache_pressure = 100</code>"
|
||
},
|
||
{
|
||
"file": "/etc/sysctl.d/99-fs.conf",
|
||
"sets": "<code>fs.nr_open / file-max = 2097152</code>, <code>fs.aio-max-nr = 1048576</code>"
|
||
},
|
||
{
|
||
"file": "/etc/security/limits.d/99-limits.conf",
|
||
"sets": "<code>nofile</code> y <code>nproc</code> a 1.048.576 (ilimitados para root)"
|
||
},
|
||
{
|
||
"file": "/etc/systemd/system.conf + user.conf",
|
||
"sets": "<code>DefaultLimitNOFILE=1048576</code> para servicios systemd"
|
||
},
|
||
{
|
||
"file": "/etc/pam.d/common-session + runuser-l",
|
||
"sets": "<code>session required pam_limits.so</code> para que lo anterior se aplique en shells de login"
|
||
},
|
||
{
|
||
"file": "/root/.profile",
|
||
"sets": "<code>ulimit -n 1048576</code> para la shell de root"
|
||
}
|
||
],
|
||
"tipTitle": "Por qué importa inotify",
|
||
"tipBody": "Aplicaciones como Docker, Syncthing, watchers de Node.js, el escáner de biblioteca de Plex y muchas más pegan rápido contra <code>max_user_watches</code>. El valor por defecto en Debian es 8192 — un solo Plex en ejecución puede agotarlo. 1M es generoso y cuesta ~1 KB de RAM por watch, lo que es despreciable."
|
||
},
|
||
"memory": {
|
||
"heading": "Optimizar ajustes de memoria",
|
||
"intro": "Escribe un perfil sysctl balanceado en <code>/etc/sysctl.d/99-memory.conf</code>. Diseñado para un host hipervisor — prefiere mantener los working sets de las VMs en RAM y libera páginas de forma proactiva para que las ráfagas de allocation no se atasquen.",
|
||
"warnTitle": "swappiness=10 en hosts con memoria justa",
|
||
"warnBody": "En un host con 16 GB de RAM ejecutando muchas VMs, bajar el swappiness puede empujar al kernel a OOM-killear procesos en lugar de hacer swap. Si estás viendo eventos OOM de forma rutinaria, sube el swappiness de vuelta a 30–60 en <code>/etc/sysctl.d/99-memory.conf</code> después de ejecutar el script."
|
||
},
|
||
"kexec": {
|
||
"heading": "Activar reinicios rápidos (kexec)",
|
||
"intro": "Instala <code>kexec-tools</code> y lo conecta para que puedas reiniciar el host directamente a un kernel nuevo <em>sin pasar por el firmware BIOS/UEFI</em>. En servidores grandes donde el POST tarda 45 – 90 segundos, esto convierte un reinicio de una pausa para el café en unos pocos segundos de downtime.",
|
||
"installsTitle": "Qué instala ProxMenux",
|
||
"installsItems": [
|
||
"Paquete <code>kexec-tools</code> (con debconf pre-respondido para que apt no pregunte durante la instalación).",
|
||
"Unit systemd <code>/etc/systemd/system/kexec-pve.service</code> — carga el kernel de Proxmox y el initrd en memoria al arrancar, reutilizando la cmdline actual.",
|
||
"Un alias en <code>/root/.bash_profile</code>: <code>reboot-quick</code> → <code>systemctl kexec</code>."
|
||
],
|
||
"usageIntro": "Uso tras el siguiente reinicio (o <code>systemctl start kexec-pve</code> manual):",
|
||
"warnTitle": "Cuándo no usar kexec",
|
||
"warnBody": "kexec se salta el init a nivel de firmware. Si dependes de BIOS/UEFI para resetear el estado del hardware — por ejemplo, una GPU haciendo passthrough que solo resetea limpiamente con un POST completo, o un firmware de HBA problemático — los reinicios kexec pueden dejar esos dispositivos en un estado a medio inicializar. Usa un <code>reboot</code> normal tras upgrades de kernel o cuando necesites que los cambios de BIOS/UEFI surtan efecto. <code>reboot-quick</code> es para reinicios del día a día."
|
||
},
|
||
"panic": {
|
||
"heading": "Activar reinicio en kernel panic",
|
||
"intro": "Hace que el kernel <strong>se reinicie automáticamente</strong> en lugar de quedarse para siempre en una pantalla de panic. Crítico en hosts Proxmox headless/remotos donde un kernel colgado significa que todas tus VMs están caídas hasta que puedas hacer power-cycle a la caja.",
|
||
"tipTitle": "Combínalo con acceso a consola remota",
|
||
"tipBody": "El auto-reinicio es un mecanismo de recuperación, no una herramienta de debug. Si quieres <em>investigar</em> un panic en lugar de simplemente volver, usa <link>la opción kexec</link> de arriba con el soporte kdump del kernel (no configurado por ProxMenux) o captura una consola serie a otro host antes de activar el auto-reinicio."
|
||
},
|
||
"verify": {
|
||
"heading": "Verificación",
|
||
"intro": "Tras aplicar las optimizaciones de Sistema:",
|
||
"tipTitle": "Totalmente reversible",
|
||
"tipBody": "Las seis opciones están registradas en <code>installed_tools.json</code>, así que aparecen en <link>Uninstall Optimizations</link> si quieres revertir alguna. Las reversiones restauran los valores por defecto de los archivos sysctl, eliminan la unit systemd y el alias de kexec, y resetean journald/logrotate a las configuraciones stock de Debian."
|
||
},
|
||
"related": {
|
||
"heading": "Relacionado",
|
||
"items": [
|
||
{
|
||
"label": "Comandos de sistema útiles",
|
||
"href": "/docs/help-info/system-commands",
|
||
"tail": " — verifica los cambios (free -h, journalctl, ulimit -a)."
|
||
},
|
||
{
|
||
"label": "Rendimiento",
|
||
"href": "/docs/post-install/performance",
|
||
"tail": " — tuning adicional a nivel de sistema (pigz)."
|
||
},
|
||
{
|
||
"label": "Uninstall Optimizations",
|
||
"href": "/docs/post-install/uninstall",
|
||
"tail": " — revierte cualquiera de estos cambios."
|
||
},
|
||
{
|
||
"label": "Customizable Post-Install",
|
||
"href": "/docs/post-install/customizable",
|
||
"tail": " — volver al menú padre."
|
||
}
|
||
]
|
||
}
|
||
}
|