{"id":353643,"date":"2024-08-02T13:34:10","date_gmt":"2024-08-02T13:34:10","guid":{"rendered":"https:\/\/www.ninjaone.com\/script-hub\/surveillance-etat-des-clusters-proxmox-linux\/"},"modified":"2024-10-13T19:06:46","modified_gmt":"2024-10-13T19:06:46","slug":"surveillance-etat-des-clusters-proxmox-linux","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/fr\/script-hub\/surveillance-etat-des-clusters-proxmox-linux\/","title":{"rendered":"Guide complet pour la surveillance de l&rsquo;\u00e9tat des clusters Proxmox sur Linux"},"content":{"rendered":"<p>Le maintien de la stabilit\u00e9 et des performances d&rsquo;un cluster Proxmox est crucial pour les professionnels de l&rsquo;informatique et les <a href=\"https:\/\/www.ninjaone.com\/what-is-an-msp\/\" target=\"_blank\" rel=\"noopener\">fournisseurs de services g\u00e9r\u00e9s (MSP)<\/a>. Un cluster Proxmox offre de nombreux avantages, notamment une haute disponibilit\u00e9, une gestion efficace des ressources ainsi qu&rsquo;une virtualisation optimale. Cependant, il est essentiel de surveiller son \u00e9tat pour garantir un fonctionnement sans probl\u00e8mes.<\/p>\n<p>Cet article pr\u00e9sente <strong>un script Bash con\u00e7u pour obtenir l&rsquo;\u00e9tat du cluster Proxmox<\/strong> et l&rsquo;enregistrer dans un champ personnalis\u00e9. Nous explorerons les fonctionnalit\u00e9s du script, les cas d&rsquo;utilisation potentiels, les comparaisons, une FAQ, les implications et les bonnes pratiques.<\/p>\n<h2>Contexte<\/h2>\n<p>Proxmox Virtual Environment (VE) est une solution open-source de gestion de la virtualisation des serveurs qui permet aux professionnels de l&rsquo;informatique de d\u00e9ployer et de g\u00e9rer des machines virtuelles et des conteneurs. Cr\u00e9er un cluster dans Proxmox est une fonctionnalit\u00e9 fondamentale qui permet \u00e0 plusieurs n\u0153uds Proxmox VE de travailler ensemble, offrant ainsi une haute disponibilit\u00e9 et un \u00e9quilibrage de la charge. La surveillance de l&rsquo;\u00e9tat du cluster est essentielle pour maintenir l&rsquo;int\u00e9grit\u00e9 et les performances de l&rsquo;environnement virtuel.<\/p>\n<p>Ce script est con\u00e7u pour les professionnels de l&rsquo;informatique qui ont besoin d&rsquo;un moyen efficace pour surveiller les clusters Proxmox. Il r\u00e9cup\u00e8re l&rsquo;\u00e9tat du cluster et enregistre les informations dans un champ personnalis\u00e9 multiligne ou un champ personnalis\u00e9 WYSIWYG, ce qui facilite la gestion et l&rsquo;examen de l&rsquo;\u00e9tat du cluster.<\/p>\n<h2>Le script<\/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>Description d\u00e9taill\u00e9e<\/h2>\n<p>D\u00e9cortiquons le script \u00e9tape par \u00e9tape pour comprendre son fonctionnement et sa logique.<\/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>Initialisation et arguments de ligne de commande : <\/strong>Le script commence par prendre deux arguments de ligne de commande : les noms des champs personnalis\u00e9s multilignes et 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>Validation et configuration : <\/strong>Il valide et attribue des valeurs aux champs personnalis\u00e9s, en s&rsquo;assurant qu&rsquo;ils ne sont pas nuls ou identiques.<\/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>V\u00e9rification de la disponibilit\u00e9 de l&rsquo;outil et des autorisations : <\/strong>Le script v\u00e9rifie si les outils n\u00e9cessaires, tels que pvecm et ninjarmm-cli, sont disponibles et s&rsquo;assure que le script s&rsquo;ex\u00e9cute avec les privil\u00e8ges 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>Recherche et analyse de l&rsquo;\u00e9tat du cluster : <\/strong>Il ex\u00e9cute la commande pvecm status pour r\u00e9cup\u00e9rer l&rsquo;\u00e9tat du cluster et stocke le r\u00e9sultat dans une 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>Extraction d&rsquo;informations pertinentes : <\/strong>Le script utilise grep et des expressions r\u00e9guli\u00e8res pour analyser et extraire les informations pertinentes, telles que le nom du cluster, la version de la configuration, la m\u00e9thode de transport, l&rsquo;\u00e9tat de l&rsquo;authentification s\u00e9curis\u00e9e, les informations sur le quorum et les d\u00e9tails sur les membres.<\/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>Cr\u00e9ation de tableaux HTML : <\/strong>Le script formate les donn\u00e9es extraites dans des tableaux HTML pour une meilleure lisibilit\u00e9 et organisation.<\/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>Enregistrement des r\u00e9sultats dans des champs personnalis\u00e9s : <\/strong>En fonction de la disponibilit\u00e9 des champs personnalis\u00e9s, le script enregistre les r\u00e9sultats bruts et format\u00e9s dans les champs personnalis\u00e9s sp\u00e9cifi\u00e9s \u00e0 l&rsquo;aide de la commande ninjarmm-cli.<\/li>\n<\/ol>\n<h2>Cas d&rsquo;utilisation potentiels<\/h2>\n<p>Prenons l&rsquo;exemple d&rsquo;une entreprise MSP qui g\u00e8re plusieurs clusters Proxmox pour diff\u00e9rents clients. La v\u00e9rification et l&rsquo;enregistrement r\u00e9guliers de l&rsquo;\u00e9tat des clusters peuvent prendre beaucoup de temps. Ce script automatise le processus et garantit que des informations actualis\u00e9es sur le statut sont toujours disponibles dans un format structur\u00e9. Par exemple, un professionnel de l&rsquo;informatique peut utiliser ce script pour :<\/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\">Collecter et sauvegarder automatiquement l&rsquo;\u00e9tat des clusters Proxmox tous les matins.<\/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\">Produire des rapports d&rsquo;\u00e9tat pour les clients, en soulignant l&rsquo;int\u00e9grit\u00e9 des clusters et tout probl\u00e8me potentiel.<\/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\">Int\u00e9grer des outils de surveillance pour d\u00e9clencher des alertes si des mesures particuli\u00e8res des clusters indiquent des probl\u00e8mes.<\/li>\n<\/ul>\n<h2>Comparaisons<\/h2>\n<p>Bien qu&rsquo;il existe d&rsquo;autres m\u00e9thodes pour surveiller les clusters Proxmox, comme les v\u00e9rifications manuelles ou l&rsquo;utilisation d&rsquo;outils de surveillance tiers, ce script offre plusieurs avantages :<\/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>Automatisation<\/strong>: Contrairement aux v\u00e9rifications manuelles, ce script automatise le processus, ce qui r\u00e9duit les risques d&rsquo;erreur humaine et permet de gagner du temps.<\/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>Personnalisation<\/strong>: La possibilit\u00e9 d&rsquo;enregistrer des informations sur l&rsquo;\u00e9tat dans des champs personnalis\u00e9s facilite l&rsquo;int\u00e9gration dans les syst\u00e8mes de surveillance et de cr\u00e9ation de rapports existants.<\/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>: Cette solution s&rsquo;appuie sur des outils et des scripts int\u00e9gr\u00e9s, ce qui \u00e9vite d&rsquo;avoir recours \u00e0 des solutions tierces co\u00fbteuses.<\/li>\n<\/ul>\n<h2>FAQ<\/h2>\n<h3>Q1 : Dois-je \u00eatre un expert en script Bash pour utiliser ce script ?<\/h3>\n<p>Non, il suffit de savoir ex\u00e9cuter un script et d&rsquo;en comprendre les param\u00e8tres.<\/p>\n<h3>Q2 : Puis-je adapter le script \u00e0 d&rsquo;autres types de champs personnalis\u00e9s ?<\/h3>\n<p>Oui, vous pouvez modifier le script pour traiter des champs personnalis\u00e9s suppl\u00e9mentaires en adaptant les sections correspondantes.<\/p>\n<h3>Q3 : Que se passe-t-il si le script rencontre une erreur ?<\/h3>\n<p>Le script comprend une gestion des erreurs qui vous informe des outils manquants, des probl\u00e8mes de permissions ou des \u00e9checs de commande.<\/p>\n<h2>Implications<\/h2>\n<p>La surveillance r\u00e9guli\u00e8re de l&rsquo;\u00e9tat du cluster Proxmox permet de maintenir la fiabilit\u00e9 et les performances du syst\u00e8me. En utilisant ce script, les professionnels de l&rsquo;informatique peuvent g\u00e9rer de mani\u00e8re proactive l&rsquo;\u00e9tat des clusters, <a href=\"https:\/\/www.ninjaone.com\/it-hub\/it-service-management\/what-is-network-downtime\/\" target=\"_blank\" rel=\"noopener\">pr\u00e9venir les temps d&rsquo;arr\u00eat<\/a> et garantir une utilisation optimale des ressources. Cela contribue \u00e0 la <a href=\"https:\/\/www.ninjaone.com\/top-5-it-security-fundamentals\/\" target=\"_blank\" rel=\"noopener\">s\u00e9curit\u00e9 informatique globale<\/a> et \u00e0 l&rsquo;efficacit\u00e9 op\u00e9rationnelle.<\/p>\n<h2>Recommandations<\/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>Ex\u00e9cuter r\u00e9guli\u00e8rement<\/strong>: Planifiez l&rsquo;ex\u00e9cution du script \u00e0 intervalles r\u00e9guliers \u00e0 l&rsquo;aide de t\u00e2ches cron afin d&rsquo;assurer une surveillance continue.<\/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>V\u00e9rifier les r\u00e9sultats<\/strong>: Examiner r\u00e9guli\u00e8rement les r\u00e9sultats enregistr\u00e9s afin d&rsquo;identifier rapidement toute anomalie ou tout probl\u00e8me.<\/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>Maintenir les sauvegardes<\/strong>: Conservez des sauvegardes de vos configurations de cluster et mettez r\u00e9guli\u00e8rement \u00e0 jour vos scripts pour g\u00e9rer les nouvelles versions de Proxmox.<\/li>\n<\/ul>\n<h2>Conclusion<\/h2>\n<p>Une surveillance efficace est cruciale pour la gestion des clusters Proxmox, et ce script Bash fournit une solution optimale pour les professionnels de l&rsquo;informatique et les entreprises MSP. En automatisant la collecte des \u00e9tats et en formatant les r\u00e9sultats dans des champs personnalis\u00e9s, il am\u00e9liore la capacit\u00e9 \u00e0 maintenir l&rsquo;\u00e9tat et les performances des clusters. Des outils comme<a href=\"https:\/\/www.ninjaone.com\/\" target=\"_blank\" rel=\"noopener\"> NinjaOne<\/a> compl\u00e8tent ce script en fournissant une plateforme compl\u00e8te pour la gestion informatique, garantissant que tous vos besoins en mati\u00e8re de surveillance sont satisfaits <a href=\"https:\/\/www.ninjaone.com\/efficiency\/\" target=\"_blank\" rel=\"noopener\">de mani\u00e8re efficace<\/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":[4281],"class_list":["post-353643","script_hub","type-script_hub","status-publish","hentry","script_hub_category-linux"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub\/353643","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/comments?post=353643"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/media?parent=353643"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/operating_system?post=353643"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/fr\/wp-json\/wp\/v2\/use_cases?post=353643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}