{"id":353775,"date":"2024-09-03T12:06:45","date_gmt":"2024-09-03T12:06:45","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/control-estado-del-cluster-proxmox\/"},"modified":"2024-10-13T19:06:46","modified_gmt":"2024-10-13T19:06:46","slug":"control-estado-del-cluster-proxmox","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/es\/script-hub\/control-estado-del-cluster-proxmox\/","title":{"rendered":"Gu\u00eda completa para supervisar el estado del cl\u00faster Proxmox en Linux"},"content":{"rendered":"<p>Mantener la estabilidad y el rendimiento de un cl\u00faster Proxmox es crucial para los profesionales de TI y los <a href=\"https:\/\/www.ninjaone.com\/es\/que-es-un-msp\" target=\"_blank\" rel=\"noopener\">proveedores de servicios gestionados (MSP)<\/a>. Un cl\u00faster Proxmox ofrece numerosas ventajas, como alta disponibilidad, gesti\u00f3n eficiente de recursos y virtualizaci\u00f3n sin interrupciones. Sin embargo, controlar su estado es esencial para garantizar un buen funcionamiento.<\/p>\n<p>Este post profundiza en <strong>un script Bash dise\u00f1ado para supervisar el estado del cl\u00faster Proxmox<\/strong> y guardarlo en un campo personalizado. Exploraremos la funcionalidad del script, posibles casos de uso, comparaciones, preguntas frecuentes, implicaciones y buenas pr\u00e1cticas.<\/p>\n<h2>Contexto<\/h2>\n<p>Proxmox Virtual Environment (VE) es una soluci\u00f3n de gesti\u00f3n de virtualizaci\u00f3n de servidores de c\u00f3digo abierto que permite a los profesionales de TI desplegar y gestionar m\u00e1quinas virtuales y contenedores. La agrupaci\u00f3n en cl\u00fasteres en Proxmox es una caracter\u00edstica fundamental que permite que varios nodos Proxmox VE trabajen juntos, proporcionando alta disponibilidad y equilibrio de carga. Supervisar el estado del cl\u00faster Proxmox es vital para mantener la integridad y el rendimiento del entorno virtual.<\/p>\n<p>Este script est\u00e1 dise\u00f1ado para profesionales de TI que necesitan una forma eficiente de monitorizar clusters Proxmox. Obtiene el estado del cl\u00faster Proxmox y guarda la informaci\u00f3n en un campo personalizado multil\u00ednea o en un campo personalizado WYSIWYG, lo que facilita gestionar y supervisar el estado del cl\u00faster Proxmox.<\/p>\n<h2>El script para supervisar el estado del cl\u00faster Proxmox<\/h2>\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"shell\">#!\/usr\/bin\/env bash\r\n\r\n# Description: Get the Proxmox Cluster Status and save it to a multiline and\/or WYSIWYG custom field\r\n#\r\n# Release Notes: Fixed 10% width bug.\r\n# By using this script, you indicate your acceptance of the following legal terms as well as our Terms of Use at https:\/\/www.ninjaone.com\/terms-of-use.\r\n# Ownership Rights: NinjaOne owns and will continue to own all right, title, and interest in and to the script (including the copyright). NinjaOne is giving you a limited license to use the script in accordance with these legal terms. \r\n# Use Limitation: You may only use the script for your legitimate personal or internal business purposes, and you may not share the script with another party. \r\n# Republication Prohibition: Under no circumstances are you permitted to re-publish the script in any script library or website belonging to or under the control of any other software provider. \r\n# Warranty Disclaimer: The script is provided \u201cas is\u201d and \u201cas available\u201d, without warranty of any kind. NinjaOne makes no promise or guarantee that the script will be free from defects or that it will meet your specific needs or expectations. \r\n# Assumption of Risk: Your use of the script is at your own risk. You acknowledge that there are certain inherent risks in using the script, and you understand and assume each of those risks. \r\n# Waiver and Release: You will not hold NinjaOne responsible for any adverse or unintended consequences resulting from your use of the script, and you waive any legal or equitable rights or remedies you may have against NinjaOne relating to your use of the script. \r\n# EULA: If you are a NinjaOne customer, your use of the script is subject to the End User License Agreement applicable to you (EULA).\r\n\r\n# Command line arguments, swap the numbers if you want the multiline custom field to be the second argument\r\nmultiline_custom_field=$1 # First argument is the multiline custom field name\r\nwysiwyg_custom_field=$2   # Second argument is the WYSIWYG custom field name\r\n\r\nif [[ -n \"${multilineCustomField}\" &amp;&amp; \"${multilineCustomField}\" != \"null\" ]]; then\r\n    multiline_custom_field=$multilineCustomField\r\nfi\r\nif [[ -n \"${wysiwygCustomField}\" &amp;&amp; \"${wysiwygCustomField}\" != \"null\" ]]; then\r\n    wysiwyg_custom_field=$wysiwygCustomField\r\nfi\r\n\r\nif [[ -n \"${multiline_custom_field}\" &amp;&amp; \"${multiline_custom_field}\" == \"${wysiwyg_custom_field}\" ]]; then\r\n    echo \"[Error] multilineCustomField and wysiwygCustomField cannot be the same custom field.\"\r\n    exit 1\r\nfi\r\n\r\nif [[ -z \"${multiline_custom_field}\" ]]; then\r\n    echo \"[Info] multilineCustomField is not set.\"\r\nfi\r\nif [[ -z \"${wysiwyg_custom_field}\" ]]; then\r\n    echo \"[Info] wysiwygCustomField is not set.\"\r\nfi\r\n\r\n# Check that we have the required tools\r\nif ! command -v pvecm &amp;&gt;\/dev\/null; then\r\n    echo \"[Error] The Proxmox VE API tool 'pvecm' is required.\"\r\n    exit 1\r\nfi\r\n\r\n# Check that we are running as root\r\nif [[ $EUID -ne 0 ]]; then\r\n    echo \"[Error] This script must be run as root.\"\r\n    exit 1\r\nfi\r\n\r\n# Check if ninjarmm-cli command exists\r\nninjarmm_cli=\"\/opt\/NinjaRMMAgent\/programdata\/ninjarmm-cli\"\r\nif [[ -z $ninjarmm_cli ]]; then\r\n    echo \"[Error] The ninjarmm-cli command does not exist in the default path. Please ensure the NinjaRMM agent is installed before running this script.\"\r\n    exit 1\r\nelse\r\n    # ninjarmm-cli command exists in the default path\r\n    echo -n\r\nfi\r\n\r\n# Run the pvecm command to get the status information\r\nif ! pvecm_status_output=$(pvecm status); then\r\n    echo \"[Error] Failed to get the Proxmox Cluster Status.\"\r\n    echo \"$pvecm_status_output\"\r\n    exit 1\r\nfi\r\n# Example Output:\r\n# Cluster information\r\n# -------------------\r\n# Name:             cluster1\r\n# Config Version:   4\r\n# Transport:        knet\r\n# Secure auth:      on\r\n#\r\n# Quorum information\r\n# ------------------\r\n# Date:             Mon Apr  8 10:33:16 2024\r\n# Quorum provider:  corosync_votequorum\r\n# Nodes:            4\r\n# Node ID:          0x00000004\r\n# Ring ID:          1.631\r\n# Quorate:          Yes\r\n#\r\n# Votequorum information\r\n# ----------------------\r\n# Expected votes:   4\r\n# Highest expected: 4\r\n# Total votes:      4\r\n# Quorum:           3\r\n# Flags:            Quorate\r\n#\r\n# Membership information\r\n# ----------------------\r\n#     Nodeid      Votes Name\r\n# 0x00000001          1 10.10.10.17\r\n# 0x00000002          1 10.10.10.18\r\n# 0x00000003          1 10.10.10.19\r\n# 0x00000004          1 10.10.10.20 (local)\r\n\r\n# Cluster Table\r\n# Get the cluster name\r\ncluster_name=$(echo \"$pvecm_status_output\" | grep -oP 'Name:\\s+\\K\\w+' | head -n 1)\r\n# Get the Config Version\r\nconfig_version=$(echo \"$pvecm_status_output\" | grep -oP 'Config Version:\\s+\\K\\d+' | head -n 1)\r\n# Get the Transport\r\ntransport=$(echo \"$pvecm_status_output\" | grep -oP 'Transport:\\s+\\K\\w+' | head -n 1)\r\n# Get the Secure auth\r\nsecure_auth=$(echo \"$pvecm_status_output\" | grep -oP 'Secure auth:\\s+\\K\\w+' | head -n 1)\r\n\r\n# Create Cluster Status label\r\ncluster_table=\"&lt;h2&gt;Cluster Status&lt;\/h2&gt;\"\r\n# Create the Cluster Status table\r\ncluster_table+=\"&lt;table style='white-space:nowrap;'&gt;&lt;tr&gt;&lt;th&gt;Cluster Name&lt;\/th&gt;&lt;th&gt;Config Version&lt;\/th&gt;&lt;th&gt;Transport&lt;\/th&gt;&lt;th&gt;Secure Auth&lt;\/th&gt;&lt;\/tr&gt;\"\r\ncluster_table+=\"&lt;tr&gt;&lt;td&gt;$cluster_name&lt;\/td&gt;&lt;td&gt;$config_version&lt;\/td&gt;&lt;td&gt;$transport&lt;\/td&gt;&lt;td&gt;$secure_auth&lt;\/td&gt;&lt;\/tr&gt;&lt;\/table&gt;\"\r\n\r\n# Quorum Table\r\n# Get the Quorum Date\r\nquorum_date=$(echo \"$pvecm_status_output\" | grep -oP 'Date:\\s+\\K.*' | head -n 1)\r\n# Get the Quorum provider\r\nquorum_provider=$(echo \"$pvecm_status_output\" | grep -oP 'Quorum provider:\\s+\\K\\w+' | head -n 1)\r\n# Get the Nodes\r\nnodes=$(echo \"$pvecm_status_output\" | grep -oP 'Nodes:\\s+\\K\\d+' | head -n 1)\r\n# Get the Node ID\r\nnode_id=$(echo \"$pvecm_status_output\" | grep -oP 'Node ID:\\s+\\K\\w+' | head -n 1)\r\n# Get the Ring ID\r\nring_id=$(echo \"$pvecm_status_output\" | grep -oP 'Ring ID:\\s+\\K[\\d.]+')\r\n# Get the Quorate\r\nquorate=$(echo \"$pvecm_status_output\" | grep -oP 'Quorate:\\s+\\K\\w+')\r\n\r\n# Create Quorum Status label\r\nquorum_table=\"&lt;h2&gt;Quorum Status&lt;\/h2&gt;\"\r\n# Create the Quorum Status table\r\nquorum_table+=\"&lt;table style='white-space:nowrap;'&gt;&lt;tr&gt;&lt;th&gt;Quorum Date&lt;\/th&gt;&lt;th&gt;Quorum Provider&lt;\/th&gt;&lt;th&gt;Nodes&lt;\/th&gt;&lt;th&gt;Node ID&lt;\/th&gt;&lt;th&gt;Ring ID&lt;\/th&gt;&lt;th&gt;Quorate&lt;\/th&gt;&lt;\/tr&gt;\"\r\nquorum_table+=\"&lt;tr&gt;&lt;td&gt;$quorum_date&lt;\/td&gt;&lt;td&gt;$quorum_provider&lt;\/td&gt;&lt;td&gt;$nodes&lt;\/td&gt;&lt;td&gt;$node_id&lt;\/td&gt;&lt;td&gt;$ring_id&lt;\/td&gt;&lt;td&gt;$quorate&lt;\/td&gt;&lt;\/tr&gt;&lt;\/table&gt;\"\r\n\r\n# Votequorum Table\r\n# Get the Expected votes\r\nexpected_votes=$(echo \"$pvecm_status_output\" | grep -oP 'Expected votes:\\s+\\K\\d+')\r\n# Get the Highest expected\r\nhighest_expected=$(echo \"$pvecm_status_output\" | grep -oP 'Highest expected:\\s+\\K\\d+')\r\n# Get the Total votes\r\ntotal_votes=$(echo \"$pvecm_status_output\" | grep -oP 'Total votes:\\s+\\K\\d+')\r\n# Get the Quorum\r\nquorum=$(echo \"$pvecm_status_output\" | grep -oP 'Quorum:\\s+\\K\\d+')\r\n# Get the Flags\r\nflags=$(echo \"$pvecm_status_output\" | grep -oP 'Flags:\\s+\\K\\w+')\r\n\r\n# Create Votequorum Status label\r\nvotequorum_table=\"&lt;h2&gt;Votequorum Status&lt;\/h2&gt;\"\r\n# Create the Votequorum Status table\r\nvotequorum_table+=\"&lt;table style='white-space:nowrap;'&gt;&lt;tr&gt;&lt;th&gt;Expected Votes&lt;\/th&gt;&lt;th&gt;Highest Expected&lt;\/th&gt;&lt;th&gt;Total Votes&lt;\/th&gt;&lt;th&gt;Quorum&lt;\/th&gt;&lt;th&gt;Flags&lt;\/th&gt;&lt;\/tr&gt;\"\r\nvotequorum_table+=\"&lt;tr&gt;&lt;td&gt;$expected_votes&lt;\/td&gt;&lt;td&gt;$highest_expected&lt;\/td&gt;&lt;td&gt;$total_votes&lt;\/td&gt;&lt;td&gt;$quorum&lt;\/td&gt;&lt;td&gt;$flags&lt;\/td&gt;&lt;\/tr&gt;&lt;\/table&gt;\"\r\n\r\n# Get the Membership information table\r\nmemberships=$(echo \"$pvecm_status_output\" | grep -oP '0x000000\\d+\\s+\\d+\\s+\\d+\\.\\d+\\.\\d+\\.\\d+')\r\n# Split memberships into an array\r\nOLDIFS=$IFS\r\nIFS=$'\\n' read -r -d '' -a membership_array &lt;&lt;&lt;\"$memberships\"\r\nIFS=$OLDIFS\r\n\r\n# Membership Table\r\n# Create Membership Status label\r\nmembership_table=\"&lt;h2&gt;Membership Status&lt;\/h2&gt;\"\r\n# Create the Membership Status table\r\nmembership_table+=\"&lt;table style='white-space:nowrap;'&gt;&lt;tr&gt;&lt;th&gt;Node ID&lt;\/th&gt;&lt;th&gt;Votes&lt;\/th&gt;&lt;th&gt;Name&lt;\/th&gt;&lt;\/tr&gt;\"\r\nfor membership in \"${membership_array[@]}\"; do\r\n    node_id=$(echo \"$membership\" | grep -oP '0x000000\\d+')\r\n    votes=$(echo \"$membership\" | grep -oP '\\d+\\s+(?=\\d+\\.\\d+\\.\\d+\\.\\d+)')\r\n    name=$(echo \"$membership\" | grep -oP '\\d+\\.\\d+\\.\\d+\\.\\d+')\r\n    membership_table+=\"&lt;tr&gt;&lt;td&gt;$node_id&lt;\/td&gt;&lt;td&gt;$votes&lt;\/td&gt;&lt;td&gt;$name&lt;\/td&gt;&lt;\/tr&gt;\"\r\ndone\r\nmembership_table+=\"&lt;\/table&gt;\"\r\n\r\n# Combine all tables into one\r\nresult_table=\"$cluster_table&lt;\/br&gt;$quorum_table&lt;\/br&gt;$votequorum_table&lt;\/br&gt;$membership_table\"\r\n\r\n# Save the result to the custom field\r\n_exit_code=0\r\nif [[ -n \"$multiline_custom_field\" ]]; then\r\n    if [[ -x \"$ninjarmm_cli\" ]]; then\r\n        if hideOutput=$(\"$ninjarmm_cli\" set \"$multiline_custom_field\" \"$pvecm_status_output\" 2&gt;&amp;1); then\r\n            echo \"[Info] Successfully set custom field: $multiline_custom_field\"\r\n        else\r\n            echo \"[Error] Failed to set custom field: $multiline_custom_field. Custom Field does not exit or does not have write permissions.\"\r\n            _exit_code=1\r\n        fi\r\n    else\r\n        echo \"[Error] NinjaRMM CLI not found or not executable\"\r\n        _exit_code=1\r\n    fi\r\nfi\r\n\r\nif [[ -n \"$wysiwyg_custom_field\" ]]; then\r\n    if [[ -x \"$ninjarmm_cli\" ]]; then\r\n        if hideOutput=$(\"$ninjarmm_cli\" set \"$wysiwyg_custom_field\" \"$result_table\" 2&gt;&amp;1); then\r\n            echo \"[Info] Successfully set custom field: $wysiwyg_custom_field\"\r\n        else\r\n            echo \"[Error] Failed to set custom field: $wysiwyg_custom_field. Custom Field does not exit or does not have write permissions.\"\r\n            _exit_code=1\r\n        fi\r\n    else\r\n        echo \"[Error] NinjaRMM CLI not found or not executable\"\r\n        _exit_code=1\r\n    fi\r\nfi\r\n\r\n# Error out after checking both custom fields\r\nif [[ $_exit_code -ne 0 ]]; then\r\n    exit 1\r\nfi\r\n\r\n# Output the result if no custom fields are set\r\nif [[ -z \"${wysiwyg_custom_field}\" ]] &amp;&amp; [[ -z \"${multiline_custom_field}\" ]]; then\r\n    echo \"${pvecm_status_output}\"\r\nfi<\/pre>\n<p>&nbsp;<\/p>\n\n<div class=\"blog-cta-new blog-cta-style-1\"><div class=\"cta-left\"><h2><\/h2><p><\/p><\/div><div class=\"cta-right\"><a class=\"button\" href=\"\"><\/a><\/div><\/div>\n<h2>An\u00e1lisis detallado<\/h2>\n<p>Vamos a desglosar el script paso a paso para entender su funcionamiento y la l\u00f3gica que hay detr\u00e1s.<\/p>\n<ol>\n<li data-leveltext=\"%1.\" data-font=\"Aptos\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Inicializaci\u00f3n y argumentos de la l\u00ednea de comandos: <\/strong> el script comienza tomando dos argumentos de la l\u00ednea de comandos: los nombres de los campos personalizados multil\u00ednea y WYSIWYG.<\/li>\n<li data-leveltext=\"%1.\" data-font=\"Aptos\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Validaci\u00f3n y configuraci\u00f3n: <\/strong> valida y asigna valores a los campos personalizados, asegur\u00e1ndose de que no sean nulos o id\u00e9nticos.<\/li>\n<li data-leveltext=\"%1.\" data-font=\"Aptos\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Comprobaci\u00f3n de disponibilidad y permisos de la herramienta: <\/strong> el script comprueba si las herramientas necesarias, como pvecm y ninjarmm-cli, est\u00e1n disponibles y se asegura de que el script se ejecuta con privilegios de root.<\/li>\n<li data-leveltext=\"%1.\" data-font=\"Aptos\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Recuperaci\u00f3n y an\u00e1lisis del estado del cl\u00faster Proxmox: <\/strong> ejecuta el comando pvecm status para recuperar el estado del cl\u00faster Proxmox y almacena el resultado en una variable.<\/li>\n<li data-leveltext=\"%1.\" data-font=\"Aptos\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Extracci\u00f3n de informaci\u00f3n relevante: <\/strong> el script utiliza grep y expresiones regulares para analizar y extraer informaci\u00f3n relevante, como el nombre del cl\u00faster, la versi\u00f3n de configuraci\u00f3n, el m\u00e9todo de transporte, el estado de autenticaci\u00f3n segura, la informaci\u00f3n de qu\u00f3rum y los detalles de los miembros.<\/li>\n<li data-leveltext=\"%1.\" data-font=\"Aptos\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Creaci\u00f3n de tablas HTML: <\/strong> el script formatea los datos extra\u00eddos en tablas HTML para una mejor legibilidad y organizaci\u00f3n.<\/li>\n<li data-leveltext=\"%1.\" data-font=\"Aptos\" data-listid=\"1\" data-list-defn-props=\"{&quot;335552541&quot;:0,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769242&quot;:[65533,0],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;%1.&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\"><strong>Guardado de resultados en campos personalizados: <\/strong> dependiendo de la disponibilidad de los campos personalizados, el script guarda los resultados sin procesar y formateados en los campos personalizados especificados utilizando el comando ninjarmm-cli.<\/li>\n<\/ol>\n<h2>Posibles casos de uso<\/h2>\n<p>Considera un MSP gestione varios cl\u00fasteres Proxmox para varios clientes. Comprobar y supervisar el estado del cl\u00faster Proxmox peri\u00f3dicamente puede llevar mucho tiempo. Este script automatiza el proceso, garantizando que la informaci\u00f3n de estado actualizada est\u00e9 siempre disponible en un formato estructurado. Por ejemplo, un profesional de TI puede utilizar este script para:<\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"1\" data-aria-level=\"1\">Recopilar y guardar autom\u00e1ticamente el estado del cl\u00faster Proxmox cada ma\u00f1ana.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"2\" data-aria-level=\"1\">Generar informes de estado para los clientes, destacando la salud del cl\u00faster y cualquier problema potencial.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"3\" data-aria-level=\"1\">Integrar con herramientas de supervisi\u00f3n para activar alertas si determinadas m\u00e9tricas del cl\u00faster indican problemas.<\/li>\n<\/ul>\n<h2>Comparaciones<\/h2>\n<p>Aunque existen otros m\u00e9todos para monitorizar clusters Proxmox, como las comprobaciones manuales o el uso de herramientas de monitorizaci\u00f3n de terceros, este script ofrece varias ventajas:<\/p>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"4\" data-aria-level=\"1\"><strong>Automatizaci\u00f3n<\/strong>: a diferencia de las comprobaciones manuales, este script automatiza el proceso, reduciendo las posibilidades de error humano y ahorrando tiempo.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"5\" data-aria-level=\"1\"><strong>Personalizaci\u00f3n<\/strong>: la posibilidad de guardar la informaci\u00f3n de estado en campos personalizados facilita la integraci\u00f3n con los sistemas de supervisi\u00f3n y elaboraci\u00f3n de informes existentes.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"6\" data-aria-level=\"1\"><strong>Rentable<\/strong>: esta soluci\u00f3n usa las herramientas y los scripts integrados, lo que evita tener que recurrir a costosas soluciones de terceros.<\/li>\n<\/ul>\n<h2>FAQ<\/h2>\n<h3>P1: \u00bfNecesito ser un experto en scripts Bash para utilizar este script?<\/h3>\n<p>No, s\u00f3lo necesitas conocimientos b\u00e1sicos sobre c\u00f3mo ejecutar un script y entender sus par\u00e1metros.<\/p>\n<h3>P2: \u00bfPuedo personalizar el script para otros tipos de campos personalizados?<\/h3>\n<p>S\u00ed, puedes modificar el script para gestionar campos personalizados adicionales ajustando las secciones pertinentes.<\/p>\n<h3>P3: \u00bfQu\u00e9 ocurre si el script encuentra un error?<\/h3>\n<p>El script incluye gesti\u00f3n de errores para informarle de herramientas que faltan, problemas de permisos o fallos de comandos.<\/p>\n<h2>Implicaciones<\/h2>\n<p>Supervisar el estado del cl\u00faster Proxmox de forma regular ayuda a mantener la fiabilidad y el rendimiento del sistema. Con este script, los profesionales de TI pueden gestionar de forma proactiva el estado del cl\u00faster Proxmox, <a href=\"https:\/\/www.ninjaone.com\/it-hub\/it-service-management\/what-is-network-downtime\/\" target=\"_blank\" rel=\"noopener\">evitar tiempos de inactividad<\/a> y garantizar una utilizaci\u00f3n \u00f3ptima de los recursos. Esto contribuye a la <a href=\"https:\/\/www.ninjaone.com\/top-5-it-security-fundamentals\/\" target=\"_blank\" rel=\"noopener\">seguridad inform\u00e1tica general<\/a> y a la eficacia operativa.<\/p>\n<h2>Recomendaciones<\/h2>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"7\" data-aria-level=\"1\"><strong>Ejecuta el script con regularidad<\/strong>: programa el script para que se ejecute a intervalos regulares mediante cron jobs para garantizar una supervisi\u00f3n continua.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"8\" data-aria-level=\"1\"><strong>Revisa los resultados<\/strong>: revisa peri\u00f3dicamente los resultados guardados para detectar a tiempo cualquier anomal\u00eda o problema.<\/li>\n<\/ul>\n<ul>\n<li data-leveltext=\"\uf0b7\" data-font=\"Symbol\" data-listid=\"2\" data-list-defn-props=\"{&quot;335552541&quot;:1,&quot;335559685&quot;:720,&quot;335559991&quot;:360,&quot;469769226&quot;:&quot;Symbol&quot;,&quot;469769242&quot;:[8226],&quot;469777803&quot;:&quot;left&quot;,&quot;469777804&quot;:&quot;\uf0b7&quot;,&quot;469777815&quot;:&quot;hybridMultilevel&quot;}\" data-aria-posinset=\"9\" data-aria-level=\"1\"><strong>Mant\u00e9n copias de seguridad<\/strong>: mant\u00e9n copias de seguridad de las configuraciones de tu cluster y actualiza regularmente los scripts para manejar nuevas versiones de Proxmox.<\/li>\n<\/ul>\n<h2>Reflexiones finales<\/h2>\n<p>La monitorizaci\u00f3n eficiente es crucial para la gesti\u00f3n de cl\u00fasteres Proxmox, y este script Bash proporciona una soluci\u00f3n racionalizada para los profesionales de TI y los MSP. Al automatizar la recopilaci\u00f3n de estados y formatear los resultados en campos personalizados, mejora la capacidad de mantener el buen rendimiento y estado del cl\u00faster Proxmox. Herramientas como <a href=\"https:\/\/www.ninjaone.com\/es\/\" target=\"_blank\" rel=\"noopener\">NinjaOne<\/a> complementan este script proporcionando una plataforma integral para la gesti\u00f3n de TI, asegurando que todas tus necesidades de monitorizaci\u00f3n se satisfacen <a href=\"https:\/\/www.ninjaone.com\/es\/eficiencia\" target=\"_blank\" rel=\"noopener\">de manera eficiente<\/a>.<\/p>\n","protected":false},"author":35,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_acf_changed":false,"_relevanssi_hide_post":"","_relevanssi_hide_content":"","_relevanssi_pin_for_all":"","_relevanssi_pin_keywords":"","_relevanssi_unpin_keywords":"","_relevanssi_related_keywords":"","_relevanssi_related_include_ids":"","_relevanssi_related_exclude_ids":"","_relevanssi_related_no_append":"","_relevanssi_related_not_related":"","_relevanssi_related_posts":"","_relevanssi_noindex_reason":"","_lmt_disableupdate":"","_lmt_disable":""},"operating_system":[4211],"use_cases":[4259],"class_list":["post-353775","script_hub","type-script_hub","status-publish","hentry","script_hub_category-linux"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/script_hub\/353775","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/comments?post=353775"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/media?parent=353775"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/operating_system?post=353775"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/es\/wp-json\/wp\/v2\/use_cases?post=353775"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}