{"id":381853,"date":"2024-11-12T07:12:17","date_gmt":"2024-11-12T07:12:17","guid":{"rendered":"https:\/\/www.ninjaone.com\/?post_type=script_hub&#038;p=381853"},"modified":"2024-11-12T07:12:17","modified_gmt":"2024-11-12T07:12:17","slug":"proxmox-cluster-statusueberwachung","status":"publish","type":"script_hub","link":"https:\/\/www.ninjaone.com\/de\/script-hub\/proxmox-cluster-statusueberwachung\/","title":{"rendered":"Umfassender Guide f\u00fcr die Proxmox-Cluster-Status\u00fcberwachung unter Linux"},"content":{"rendered":"<p>Die Aufrechterhaltung der Stabilit\u00e4t und Leistung eines Proxmox-Clusters ist f\u00fcr IT-Experten und <a href=\"https:\/\/www.ninjaone.com\/de\/was-ist-ein-msp\" target=\"_blank\" rel=\"noopener\">Managed Service Provider (MSPs)<\/a> essenziell. Ein Proxmox-Cluster bietet zahlreiche Vorteile, darunter hohe Verf\u00fcgbarkeit, effiziente Ressourcenverwaltung und nahtlose Virtualisierung. Die Proxmox-Cluster-Status\u00fcberwachung ist daher f\u00fcr einen reibungslosen Betrieb unerl\u00e4sslich.<\/p>\n<p>In diesem Blogbeitrag wird <strong>ein Bash-Skript vorgestellt, mit dem der Status ermittelt<\/strong> und in einem benutzerdefinierten Feld gespeichert werden kann. Wir werden die Funktionalit\u00e4t und m\u00f6gliche Anwendungsf\u00e4lle des Skripts, Vergleiche, h\u00e4ufig gestellte Fragen, Auswirkungen und Best Practices aufgreifen.<\/p>\n<h2>Kontext<\/h2>\n<p>Proxmox Virtual Environment (VE) ist eine Open-Source-L\u00f6sung zur Verwaltung der Servervirtualisierung, mit der IT-Experten virtuelle Maschinen und Container bereitstellen und verwalten k\u00f6nnen. Clustering in Proxmox ist eine grundlegende Funktion, die es mehreren Proxmox VE-Netzwerk-Knoten erm\u00f6glicht, zusammenzuarbeiten und so eine hohe Verf\u00fcgbarkeit und Lastverteilung zu gew\u00e4hrleisten. Die Proxmox-Cluster-Status\u00fcberwachung ist entscheidend f\u00fcr die Aufrechterhaltung der Integrit\u00e4t und Leistung der virtuellen Umgebung.<\/p>\n<p>Dieses Skript ist f\u00fcr IT-Experten gedacht, die eine effiziente Methode zur \u00dcberwachung von Proxmox-Clustern ben\u00f6tigen. Es ruft den Cluster-Status ab und speichert die Informationen entweder in einem mehrzeiligen benutzerdefinierten Feld oder in einem benutzerdefinierten WYSIWYG-Feld, was die Verwaltung und \u00dcberpr\u00fcfung des Status erleichtert.<\/p>\n<h2>Das Skript<\/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=\"in-context-cta\"><p>Greifen Sie auf \u00fcber 300 Skripte im NinjaOne Dojo zu.<\/p>\n<p><a href=\"https:\/\/www.ninjaone.com\/de\/kostenlosetestversionformular\/\">Zugang erhalten<\/a><\/p>\n<\/div>\n<h2>Detailansicht<\/h2>\n<p>Lassen Sie uns das Skript Schritt f\u00fcr Schritt aufschl\u00fcsseln, um seine Funktionsweise und die dahinter stehende Logik zu verstehen.<\/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>Initialisierung und Befehlszeilenargumente: <\/strong> Das Skript beginnt mit zwei Befehlszeilenargumenten: die Namen der benutzerdefinierten mehrzeiligen und WYSIWYG-Felder.<\/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>Validierung und Konfiguration: <\/strong> Es validiert und weist den benutzerdefinierten Feldern Werte zu bzw. stellt sicher, dass sie nicht null oder identisch sind.<\/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>Verf\u00fcgbarkeits- und Berechtigungspr\u00fcfung: <\/strong> Das Skript pr\u00fcft, ob die erforderlichen Tools wie pvecm und ninjarmm-cli verf\u00fcgbar sind, und sorgt daf\u00fcr, dass das Skript mit Root-Rechten ausgef\u00fchrt wird.<\/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>Abrufen und Parsen des Cluster-Status: <\/strong> Es f\u00fchrt den Befehl &#8218;pvecm status&#8216; aus, um den Cluster-Status abzufragen, und speichert die Ausgabe in einer Variablen.<\/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>Extrahieren relevanter Informationen: <\/strong> Das Skript verwendet grep und regul\u00e4re Ausdr\u00fccke, um relevante Informationen zu analysieren und zu extrahieren, z. B. den Clusternamen, die Konfigurationsversion, die Transportmethode, den sicheren Auth-Status, Quorum-Informationen und Mitgliedschaftsdetails.<\/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>Erstellung von HTML-Tabellen: <\/strong> Das Skript formatiert die extrahierten Daten zur besseren Lesbarkeit und Organisierung in HTML-Tabellen.<\/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>Speichern von Ergebnissen in benutzerdefinierten Feldern: <\/strong> Je nach Verf\u00fcgbarkeit der benutzerdefinierten Felder speichert das Skript die rohen und formatierten Ergebnisse mit dem Befehl &#8217;ninjarmm-cli&#8216; in den angegebenen benutzerdefinierten Feldern.<\/li>\n<\/ol>\n<h2>Potenzielle Anwendungsf\u00e4lle<\/h2>\n<p>Nehmen wir an, ein MSP verwaltet mehrere Proxmox-Cluster f\u00fcr verschiedene Kunden. Die regelm\u00e4\u00dfige \u00dcberpr\u00fcfung und Erfassung des Cluster-Status kann zeitaufw\u00e4ndig sein. Dieses Skript automatisiert den Prozess und sorgt daf\u00fcr, dass stets aktuelle Statusinformationen in einem strukturierten Format verf\u00fcgbar sind. Ein IT-Experte kann dieses Skript zum Beispiel verwenden, um:<\/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\">den Status des Proxmox-Clusters jeden Morgen automatisch zu sammeln und speichern.<\/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\">Statusberichten f\u00fcr Kunden zu erstellen, die den Cluster-Status und m\u00f6gliche Probleme aufzeigen.<\/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\">\u00dcberwachungs-Tools zu integrieren, sodass Warnmeldungen ausgel\u00f6st werden, wenn bestimmte Cluster-Metriken auf Probleme hinweisen.<\/li>\n<\/ul>\n<h2>Vergleiche<\/h2>\n<p>Es gibt zwar auch andere Methoden zur Proxmox-Cluster-Status\u00fcberwachung, z. B. manuelle \u00dcberpr\u00fcfungen oder die Verwendung von \u00dcberwachungsprogrammen von Drittanbietern, aber dieses Skript bietet mehrere Vorteile:<\/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>Automatisierung<\/strong>: Im Gegensatz zu manuellen Kontrollen automatisiert dieses Skript den Prozess, wodurch die Gefahr menschlichen Versagens verringert und Zeit gespart wird.<\/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>Anpassungen<\/strong>: Die M\u00f6glichkeit, Statusinformationen in benutzerdefinierten Feldern zu speichern, gew\u00e4hrt eine einfache Integration in bestehende \u00dcberwachungs- und Berichterstellungs-Systeme.<\/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>Kosteng\u00fcnstig<\/strong>: Diese L\u00f6sung nutzt integrierte Tools und Skripte, sodass keine teuren L\u00f6sungen von Drittanbietern erforderlich sind.<\/li>\n<\/ul>\n<h2>FAQs<\/h2>\n<h3>Q1: Muss ich ein Experte in der Bash-Skripterstellung sein, um dieses Skript zu verwenden?<\/h3>\n<p>Nein, Sie brauchen nur Grundkenntnisse dar\u00fcber, wie man ein Skript ausf\u00fchrt, und m\u00fcssen seine Parameter verstehen.<\/p>\n<h3>Q2: Kann ich das Skript f\u00fcr andere Arten von benutzerdefinierten Feldern einstellen?<\/h3>\n<p>Ja, Sie k\u00f6nnen das Skript \u00e4ndern, um zus\u00e4tzliche benutzerdefinierte Felder zu bearbeiten, indem Sie die entsprechenden Abschnitte anpassen.<\/p>\n<h3>Q3: Was passiert, wenn das Skript auf einen Fehler st\u00f6\u00dft?<\/h3>\n<p>Das Skript enth\u00e4lt eine Fehlerbehandlungs-L\u00f6sung, die Sie \u00fcber fehlende Tools, Berechtigungsprobleme oder fehlerhafte Befehle informiert.<\/p>\n<h2>Folgen<\/h2>\n<p>Die regelm\u00e4\u00dfige Proxmox-Cluster-Status\u00fcberwachung tr\u00e4gt zur Aufbewahrung der Zuverl\u00e4ssigkeit und Leistung des Systems bei. Mithilfe dieses Skripts k\u00f6nnen IT-Experten den Zustand von Clustern proaktiv verwalten, <a href=\"https:\/\/www.ninjaone.com\/it-hub\/it-service-management\/what-is-network-downtime\/\" target=\"_blank\" rel=\"noopener\">Ausfallzeiten verhindern<\/a> und eine optimale Ressourcennutzung sicherstellen. Dies tr\u00e4gt zur <a href=\"https:\/\/www.ninjaone.com\/de\/top-5-it-sicherheitsgrundlagen\/\" target=\"_blank\" rel=\"noopener\">allgemeinen IT-Sicherheit<\/a> und betrieblichen Effizienz bei.<\/p>\n<h2>Empfehlungen<\/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>Lassen Sie es regelm\u00e4\u00dfig laufen<\/strong>: Planen Sie die Ausf\u00fchrung des Skripts in regelm\u00e4\u00dfigen Abst\u00e4nden mit Cron-Jobs, um eine kontinuierliche \u00dcberwachung zu gew\u00e4hrleisten.<\/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>\u00dcberpr\u00fcfen Sie die Ergebnisse<\/strong>: \u00dcberpr\u00fcfen Sie regelm\u00e4\u00dfig die gespeicherten Ergebnisse, um Anomalien oder Probleme fr\u00fchzeitig zu entdecken.<\/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>Bewahren Sie Backups auf<\/strong>: Erstellen Sie Backups Ihrer Cluster-Konfigurationen und aktualisieren Sie Ihre Skripte regelm\u00e4\u00dfig, sodass sie neue Proxmox-Versionen verarbeiten k\u00f6nnen.<\/li>\n<\/ul>\n<h2>Abschlie\u00dfende \u00dcberlegungen<\/h2>\n<p>Eine effiziente \u00dcberwachung ist f\u00fcr die Verwaltung von Proxmox-Clustern ausschlaggebend, und dieses Bash-Skript bietet IT-Experten und MSPs eine optimierte L\u00f6sung daf\u00fcr. Durch die Automatisierung der Statuserfassung und die Formatierung der Ergebnisse in benutzerdefinierten Feldern verbessert sich die F\u00e4higkeit, den Zustand und die Leistung des Clusters zu erhalten. Tools wie <a href=\"https:\/\/www.ninjaone.com\/de\/\" target=\"_blank\" rel=\"noopener\">NinjaOne<\/a> erg\u00e4nzen dieses Skript, indem sie eine umfassende Plattform f\u00fcr die IT-Verwaltung bieten und sorgen daf\u00fcr, dass alle Ihre \u00dcberwachungsanforderungen <a href=\"https:\/\/www.ninjaone.com\/de\/effizienz\/\" target=\"_blank\" rel=\"noopener\">effizient<\/a> erf\u00fcllt werden.<\/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":"no","_lmt_disable":""},"operating_system":[4211],"use_cases":[4307],"class_list":["post-381853","script_hub","type-script_hub","status-publish","hentry","script_hub_category-linux","use_cases-allgemeine-konfiguration"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub\/381853","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/script_hub"}],"about":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/types\/script_hub"}],"author":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/users\/35"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/comments?post=381853"}],"wp:attachment":[{"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/media?parent=381853"}],"wp:term":[{"taxonomy":"script_hub_category","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/operating_system?post=381853"},{"taxonomy":"use_cases","embeddable":true,"href":"https:\/\/www.ninjaone.com\/de\/wp-json\/wp\/v2\/use_cases?post=381853"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}