Uso dell'estensione di diagnostica Linux per monitorare le prestazioni e i dati di diagnostica di una macchina virtuale LinuxUse the Linux Diagnostic Extension to monitor the performance and diagnostic data of a Linux VM

Questo documento descrive la versione 2.3 dell'estensione Diagnostica per Linux.This document describes version 2.3 of the Linux Diagnostic Extension.

Importante

Questa versione è deprecata e la sua pubblicazione potrebbe essere annullata a partire dal 30 giugno 2018.This version is deprecated, and it may be unpublished any time after June 30, 2018. È stata sostituita dalla versione 3.0.It has been replaced by version 3.0. Per altre informazioni, vedere la documentazione per la versione 3.0 dell'estensione Diagnostica per Linux.For more information, see the documentation for version 3.0 of the Linux Diagnostic Extension.

IntroduzioneIntroduction

Nota: l'estensione della diagnostica Linux è open source in GitHub, dove vengono pubblicate per prime le informazioni più aggiornate sull'estensione.(Note: The Linux Diagnostic Extension is open-sourced on GitHub where the most current information on the extension is first published. È possibile vedere la pagina GitHub.You might want to check the GitHub page first.)

L'estensione di diagnostica Linux consente all'utente di monitorare le VM Linux eseguite in Microsoft Azure.The Linux Diagnostic Extension helps a user monitor the Linux VMs that are running on Microsoft Azure. Questo servizio offre le funzionalità seguenti:It has the following capabilities:

  • Raccoglie e carica informazioni sulle prestazioni del sistema dalla VM Linux alla tabella di archiviazione dell'utente, incluse informazioni di diagnostica e di syslog.Collects and uploads the system performance information from the Linux VM to the user's storage table, including diagnostic and syslog information.
  • Consente agli utenti di personalizzare la metrica dei dati che verrà raccolta e caricata.Enables users to customize the data metrics that will be collected and uploaded.
  • Consente agli utenti di caricare in una tabella di archiviazione designata i file di log specificati.Enables users to upload specified log files to a designated storage table.

Nella versione 2.3 i dati includono:In the current version 2.3, the data includes:

Questa estensione funziona sia con i modelli classici che con i modelli di distribuzione Resource Manager.This extension works with both the classic and Resource Manager deployment models.

Versione corrente dell'estensione e versioni precedenti deprecateCurrent version of the extension and deprecation of old versions

La versione più recente dell'estensione è la 2.3, mentre tutte le versioni precedenti, ovvero le versioni 2.0, 2.1 e 2.2, verranno deprecate, annullandone la pubblicazione entro la fine di quest'anno (2017).The latest version of the extension is 2.3, and any old versions (2.0, 2.1, and 2.2) will be deprecated and unpublished by end of this year (2017). Se è installata l'estensione di diagnostica Linux con disabilitato l'aggiornamento automatico della versione secondaria, è consigliabile disinstallare l'estensione e reinstallarla abilitando l'aggiornamento automatico della versione secondaria.If you installed the Linux Diagnostic extension with automatic minor version upgrade disabled, it's strongly recommended that you uninstall the extension and reinstall it with automatic minor version upgrade enabled. Nelle macchine virtuali classiche (ASM), è possibile ottenere questo risultato specificando '2.' come versione, se si installa l'estensione tramite Powershell o l'interfaccia della riga di comando XPLAT di Azure.On classic (ASM) VMs, you can achieve this by specifying '2.' as the version if you are installing the extension through Azure XPLAT CLI or Powershell. Nelle macchine virtuali ARM, è possibile ottenere questo risultato includendo '"autoUpgradeMinorVersion": true' nel modello di distribuzione della macchina virtuale.On ARM VMs, you can achieve this by including '"autoUpgradeMinorVersion": true' in the VM deployment template. Inoltre, in qualsiasi nuova installazione dell'estensione dovrebbe essere attivata l'opzione di aggiornamento automatico alla versione secondaria.Also, any new installation of the extension should have the auto minor version upgrade option turned on.

Abilitare l'estensioneEnable the extension

È possibile abilitare questa estensione usando il portale di Azure, Azure PowerShell o gli script dell'interfaccia della riga di comando di Azure.You can enable this extension by using the Azure portal, Azure PowerShell, or Azure CLI scripts.

Per visualizzare e configurare i dati di sistema e le prestazioni direttamente dal portale di Azure, seguire questa procedura nel blog di Azure.To view and configure the system and performance data directly from the Azure portal, follow these steps on the Azure blog.

Questo articolo illustra come abilitare e configurare l'estensione usando i comandi dell'interfaccia della riga di comando di Azure.This article focuses on how to enable and configure the extension by using Azure CLI commands. In questo modo è possibile leggere e visualizzare i dati direttamente dalla tabella di archiviazione.This allows you to read and view the data directly from the storage table.

Si noti che i metodi di configurazione descritti qui non funzioneranno per il portale di Azure.Note that the configuration methods that are described here won't work for the Azure portal. Per visualizzare e configurare i dati di sistema e prestazioni direttamente dal portale di Azure, l'estensione deve essere abilitata con il portale.To view and configure the system and performance data directly from the Azure portal, the extension must be enabled through the portal.

PrerequisitiPrerequisites

  • Agente Linux di Azure 2.0.6 o versione successiva.Azure Linux Agent version 2.0.6 or later.

    Si noti che la maggior parte delle immagini della raccolta Linux di macchine virtuali di Azure include la versione 2.0.6 o successive.Note that most Azure VM Linux gallery images include version 2.0.6 or later. È possibile eseguire WAAgent -version per verificare la versione installata nella macchina virtuale.You can run WAAgent -version to confirm which version is installed on the VM. Se la macchina virtuale esegue una versione precedente alla 2.0.6, è possibile seguire queste istruzioni in GitHub per aggiornarla.If the VM is running a version that's earlier than 2.0.6, you can follow these instructions on GitHub to update it.

  • Interfaccia della riga di comando di Azure.Azure CLI. Seguire le linee guida in Installare l'interfaccia della riga di comando di Azure per configurare l'ambiente dell'interfaccia della riga di comando di Azure nella macchina virtuale.Follow this guidance for installing CLI to set up the Azure CLI environment on your machine. Dopo l'installazione dell'interfaccia della riga di comando di Azure, sarà possibile usare il comando azure nell'interfaccia della riga di comando (Bash, terminale o prompt dei comandi) per accedere ai relativi comandi.After Azure CLI is installed, you can use the azure command from your command-line interface (Bash, Terminal, or command prompt) to access the Azure CLI commands. Ad esempio:For example:

    • Eseguire azure vm extension set --help per informazioni della Guida dettagliate.Run azure vm extension set --help for detailed help information.
    • Eseguire azure login per accedere ad Azure.Run azure login to sign in to Azure.
    • Eseguire azure vm list per elencare tutte le macchine virtuali disponibili in Azure.Run azure vm list to list all the virtual machines that you have on Azure.
  • Un account di archiviazione per archiviare i dati.A storage account to store the data. Saranno necessari un nome di account di archiviazione creato in precedenza e una chiave di accesso per caricare i dati nella risorsa di archiviazione.You will need a storage account name that was created previously and an access key to upload the data to your storage.

Usare l'interfaccia della riga di comando di Azure per abilitare l'estensione della diagnostica LinuxUse the Azure CLI command to enable the Linux Diagnostic Extension

Scenario 1.Scenario 1. Abilitare l'estensione con il set di dati predefinitoEnable the extension with the default data set

Nella versione 2.3 e successive i dati predefiniti che verranno raccolti includono:In version 2.3 or later, the default data that will be collected includes:

  • Tutte le informazioni Rsyslog (inclusi i log di sistema, sicurezza e applicazioni).All Rsyslog information (including system, security, and application logs).
  • Un set principale di dati di sistema di base.A core set of basis system data. Si noti che il set di dati completo è descritto nel sito System Center Cross Platform Solutions.Note that the full data set is described on the System Center Cross Platform Solutions site. Per abilitare dati aggiuntivi, proseguire con i passaggi degli scenari 2 e 3.If you want to enable extra data, continue with the steps in Scenarios 2 and 3.

Passaggio 1.Step 1. Creare un file denominato PrivateConfig.json con il contenuto seguente:Create a file named PrivateConfig.json with the following content:

{
    "storageAccountName" : "the storage account to receive data",
    "storageAccountKey" : "the key of the account"
}

Passaggio 2.Step 2. Eseguire azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions 2.* --private-config-path PrivateConfig.json.Run azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions 2.* --private-config-path PrivateConfig.json.

Scenario 2.Scenario 2. Personalizzare le metriche di monitoraggio delle prestazioniCustomize the performance monitor metrics

In questa sezione viene descritto come personalizzare la tabella dati delle prestazioni e della diagnostica.This section describes how to customize the performance and diagnostic data table.

Passaggio 1.Step 1. Creare un file denominato PrivateConfig.json con il contenuto descritto nello scenario 1.Create a file named PrivateConfig.json with the content that was described in Scenario 1. Creare anche un file denominato PublicConfig.json.Also create a file named PublicConfig.json. Specificare i dati specifici che si desidera raccogliere.Specify the particular data you want to collect.

Per tutti i provider e le variabili supportati, vedere il sito System Center Cross Platform Solutions.For all supported providers and variables, reference the System Center Cross Platform Solutions site. È possibile disporre di più query e archiviarle in più tabelle aggiungendo altre query nello script.You can have multiple queries and store them in multiple tables by appending more queries to the script.

Per impostazione predefinita i dati Rsyslog verranno sempre raccolti.By default, the Rsyslog data is always collected.

{
      "perfCfg":
      [
          {
              "query" : "SELECT PercentAvailableMemory, AvailableMemory, UsedMemory ,PercentUsedSwap FROM SCX_MemoryStatisticalInformation",
              "table" : "LinuxMemory"
          }
      ]
}

Passaggio 2.Step 2. Eseguire azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json.Run azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json.

Scenario 3.Scenario 3. Caricamento dei propri file di logUpload your own log files

Questa sezione descrive come raccogliere e caricare file di log specifici nell'account di archiviazione.This section describes how to collect and upload specific log files to your storage account. È necessario specificare sia il percorso del file di log che il nome della tabella in cui si vuole archiviare il log.You need to specify both the path to your log file and the name of the table where you want to store your log. È possibile creare più file di log aggiungendo più voci di file/tabella nello script.You can create multiple log files by adding multiple file/table entries to the script.

Passaggio 1.Step 1. Creare un file denominato PrivateConfig.json con il contenuto descritto nello scenario 1.Create a file named PrivateConfig.json with the content that was described in Scenario 1. Creare quindi un altro file denominato PublicConfig.json con il contenuto seguente:Then create another file named PublicConfig.json with the following content:

{
    "fileCfg" :
    [
        {
            "file" : "/var/log/mysql.err",
            "table" : "mysqlerr"
            }
    ]
}

Passaggio 2.Step 2. Eseguire azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json.Run azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json.

Si noti che con questa impostazione nelle versioni dell'estensione precedenti la 2.3, tutti i log scritti in /var/log/mysql.err potrebbero essere duplicati anche in /var/log/syslog o /var/log/messages a seconda del distributore di Linux.Note that with this setting on the extension versions prior to 2.3, all logs written to /var/log/mysql.err might be duplicated to /var/log/syslog (or /var/log/messages depending on the Linux distro) as well. Se si vuole evitare la registrazione duplicata, è possibile escludere la registrazione dei log local6 della struttura nella configurazione rsyslog.If you'd like to avoid this duplicate logging, you can exclude logging of local6 facility logs in your rsyslog configuration. Dipende dalla distribuzione di Linux, ma in un sistema di Ubuntu 14.04, il file da modificare è /etc/rsyslog.d/50-default.conf ed è possibile sostituire la riga *.*;auth,authpriv.none -/var/log/syslog con *.*;auth,authpriv,local6.none -/var/log/syslog.It depends on the Linux distro, but on an Ubuntu 14.04 system, the file to modify is /etc/rsyslog.d/50-default.conf and you can replace the line *.*;auth,authpriv.none -/var/log/syslog to *.*;auth,authpriv,local6.none -/var/log/syslog. Il problema viene risolto nell'ultimo aggiornamento rapido 2.3 (2.3.9007), pertanto se si dispone della versione dell'estensione 2.3 il problema non dovrebbe verificarsi.This issue is fixed in the latest hotfix release of 2.3 (2.3.9007), so if you have the extension version 2.3, this issue should not happen. Se invece il problema persiste anche dopo aver riavviato la VM, è possibile contattarci e aiutarci a rintracciare il motivo per cui l'ultima versione dell'aggiornamento rapido non viene installata automaticamente.If it still does even after restarting your VM, please contact us and help us troubleshoot why the latest hotfix version is not installed automatically.

Scenario 4.Scenario 4. Arrestare la raccolta di log dell'estensioneStop the extension from collecting any logs

Questa sezione descrive come arrestare la raccolta di log da parte dell'estensione.This section describes how to stop the extension from collecting logs. Si noti che il processo dell'agente di monitoraggio sarà operativo anche con questa riconfigurazione.Note that the monitoring agent process will be still up and running even with this reconfiguration. Per arrestare completamente il processo dell'agente di monitoraggio, è possibile disabilitare l'estensione.If you'd like to stop the monitoring agent process completely, you can do so by disabling the extension. Il comando per disabilitare l'estensione è azure vm extension set --disable <vm_name> LinuxDiagnostic Microsoft.OSTCExtensions '2.*'.The command to disable the extension is azure vm extension set --disable <vm_name> LinuxDiagnostic Microsoft.OSTCExtensions '2.*'.

Passaggio 1.Step 1. Creare un file denominato PrivateConfig.json con il contenuto descritto nello scenario 1.Create a file named PrivateConfig.json with the content that was described in Scenario 1. Creare un altro file denominato PublicConfig.json con il contenuto seguente:Create another file named PublicConfig.json with the following content:

{
    "perfCfg" : [],
    "enableSyslog" : "false"
}

Passaggio 2.Step 2. Eseguire azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json.Run azure vm extension set vm_name LinuxDiagnostic Microsoft.OSTCExtensions '2.*' --private-config-path PrivateConfig.json --public-config-path PublicConfig.json.

Esaminare i datiReview your data

I dati delle prestazioni e della diagnostica vengono archiviati in una tabella di archiviazione di Azure.The performance and diagnostic data are stored in an Azure Storage table. Per informazioni su come accedere ai dati nella tabella di archiviazione usando gli script dell'interfaccia della riga di comando di Azure, vedere Come usare l'archivio tabelle di Azure da Ruby .Review How to use Azure Table Storage from Ruby to learn how to access the data in the storage table by using Azure CLI scripts.

È anche possibile usare gli strumenti dell'interfaccia utente seguenti per accedere ai dati:In addition, you can use following UI tools to access the data:

  1. Esplora server di Visual Studio.Visual Studio Server Explorer. Passare all'account di archiviazione.Go to your storage account. Dopo circa cinque minuti dall'esecuzione della VM, verranno visualizzate le quattro tabelle predefinite: "LinuxCpu", "LinuxDisk", "LinuxMemory" e "Linuxsyslog".After the VM runs for about five minutes, you'll see the four default tables: “LinuxCpu”, ”LinuxDisk”, ”LinuxMemory”, and ”Linuxsyslog”. Fare doppio clic sui nomi delle tabelle per visualizzare i dati.Double-click the table names to view the data.
  2. Esplora archivi di Azure.Azure Storage Explorer.

immagine

Se è stato abilitato fileCfg o perfCfg (come illustrato negli scenari 2 e 3), è possibile usare Esplora server di Visual Studio e Azure Storage Explorer per visualizzare i dati non predefiniti.If you've enabled fileCfg or perfCfg (as described in Scenarios 2 and 3), you can use Visual Studio Server Explorer and Azure Storage Explorer to view non-default data.

Problemi notiKnown issues

  • Le informazioni Rsyslog e il file di log specificato dal cliente sono accessibili solo tramite scripting.The Rsyslog information and customer-specified log file can only be accessed via scripting.