Problemen met SQL Insights oplossen (preview)

Van toepassing op: Azure SQL DatabaseAzure SQL Managed Instance

Als u problemen met het verzamelen van gegevens in SQL Insights (preview) wilt oplossen, controleert u de status van de bewakingsmachine op het tabblad Profiel beheren. De statussen zijn:

  • Verzamelen
  • Niet verzamelen
  • Verzamelen met fouten

Selecteer de status om logboeken en meer details weer te geven waarmee u het probleem kunt oplossen.

Screenshot that shows a monitoring machine status.

Status: Verzamelen niet

De bewakingsmachine heeft de status Niet verzamelen als er in de afgelopen tien minuten geen gegevens in InsightsMetrics voor SQL zijn.

Notitie

Zorg ervoor dat u gegevens probeert te verzamelen uit een ondersteunde versie van SQL. Als u bijvoorbeeld gegevens probeert te verzamelen met een geldig profiel en een geldige verbindingsreeks, maar van een niet-ondersteunde versie van Azure SQL Database, wordt de status Niet verzameld .

SQL Insights (preview) gebruikt de volgende query om deze informatie op te halen:

InsightsMetrics 
    | extend Tags = todynamic(Tags) 
    | extend SqlInstance = tostring(Tags.sql_instance) 
    | where TimeGenerated > ago(10m) and isnotempty(SqlInstance) and Namespace == 'sqlserver_server_properties' and Name == 'uptime' 

Controleer of logboeken van Telegraf helpen bij het identificeren van de hoofdoorzaak van het probleem. Als er logboekvermeldingen zijn, kunt u Niet verzamelen selecteren en de logboeken controleren en informatie over probleemoplossing voor veelvoorkomende problemen.

Als er geen logboekvermeldingen zijn, controleert u de logboeken op de virtuele bewakingsmachine op de volgende services die zijn geïnstalleerd door twee extensies voor virtuele machines:

  • Microsoft.Azure.Monitor.AzureMonitorLinuxAgent
    • Service: mdsd
  • Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension
    • Service: wli
    • Service: telegraf
    • Service: fluent-bit
    • Extensielogboek om installatiefouten te controleren: /var/log/azure/Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension/wlilogs.log

wli-servicelogboeken

Servicelogboeken: /var/log/wli.log

Recente logboeken bekijken: tail -n 100 -f /var/log/wli.log

Als u het volgende foutenlogboek ziet, is er een probleem met de mdsd service: 2021-01-27T06:09:28Z [Error] Failed to get config data. Error message: dial unix /var/run/mdsd/default_fluent.socket: connect: no such file or directory

Telegraf-servicelogboeken

Servicelogboeken: /var/log/telegraf/telegraf.log

Recente logboeken bekijken: tail -n 100 -f /var/log/ms-telegraf/telegraf.log

Recente fout- en waarschuwingslogboeken bekijken: tail -n 1000 /var/log/ms-telegraf/telegraf.log | grep "E\!\|W!"

De configuratie die telegraf gebruikt, wordt gegenereerd door de wli-service en geplaatst in: /etc/ms-telegraf/telegraf.d/wli

Als er een onjuiste configuratie wordt gegenereerd, kan de ms-telegraf-service niet worden gestart. Controleer of de ms-telegraf-service wordt uitgevoerd met behulp van deze opdracht: service ms-telegraf status

Als u foutberichten van de telegraf-service wilt zien, voert u deze handmatig uit met behulp van de volgende opdracht:

/usr/bin/ms-telegraf --config /etc/ms-telegraf/telegraf.conf --config-directory /etc/ms-telegraf/telegraf.d/wli --test 

mdsd-servicelogboeken

Controleer de vereisten voor de Azure Monitor-agent.

Vóór Azure Monitoring Agent v1.12 bevonden mdsd-servicelogboeken zich in:

  • /var/log/mdsd.err
  • /var/log/mdsd.warn
  • /var/log/mdsd.info

Vanaf v1.12 bevinden servicelogboeken zich in:

  • /var/opt/microsoft/azuremonitoragent/log/
  • /etc/opt/microsoft/azuremonitoragent/

Recente fouten bekijken: tail -n 100 -f /var/log/mdsd.err

Als u contact wilt opnemen met ondersteuning, verzamelt u de volgende informatie:

  • Logboeken in /var/log/azure/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent/
  • Aanmelden /var/log/waagent.log
  • Logboeken in /var/log/mdsd*, of logboeken in /var/opt/microsoft/azuremonitoragent/log/ en /etc/opt/microsoft/azuremonitoragent/.
  • Bestanden in /etc/mdsd.d/
  • Bestand /etc/default/mdsd

Ongeldige configuratie van virtuele machine bewaken

Een van de oorzaken van de status Niet verzamelen is een ongeldige configuratie voor de virtuele machine voor bewaking. Dit is de eenvoudigste vorm van configuratie:

{
    "version": 1,
    "secrets": {
        "telegrafPassword": {
            "keyvault": "https://mykeyvault.vault.azure.net/",
            "name": "sqlPassword"
        }
    },
    "parameters": {
        "sqlAzureConnections": [
            "Server=mysqlserver.database.windows.net;Port=1433;Database=mydatabase;User Id=telegraf;Password=$telegrafPassword;"
        ],
        "sqlVmConnections": [
        ],
        "sqlManagedInstanceConnections": [
        ]
    }
}

Met deze configuratie geeft u de vervangende tokens op die moeten worden gebruikt in de profielconfiguratie op uw virtuele machine voor bewaking. Hiermee kunt u ook verwijzen naar geheimen uit Azure Key Vault, zodat u geen geheime waarden in een configuratie hoeft te bewaren (die we ten zeerste aanbevelen).

In deze configuratie bevat de databaseverbindingsreeks een $telegrafPassword vervangend token. SQL Insights vervangt dit token door het SQL-verificatiewachtwoord dat is opgehaald uit Key Vault. De Key Vault-URI wordt opgegeven in de telegrafPassword configuratiesectie onder secrets.

Geheimen

Geheimen zijn tokens waarvan de waarden tijdens runtime worden opgehaald uit een Azure-sleutelkluis. Een geheim wordt gedefinieerd door een waardepaar dat sleutelkluis-URI en een geheime naam bevat. Met deze definitie kan SQL Insights de waarde van het geheim tijdens runtime ophalen en gebruiken in downstreamconfiguratie.

U kunt zoveel geheimen definiëren als nodig is, inclusief geheimen die zijn opgeslagen in meerdere sleutelkluizen.

   "secrets": {
        "<secret-token-name-1>": {
            "keyvault": "<key-vault-uri>",
            "name": "<key-vault-secret-name>"
        },
        "<secret-token-name-2>": {
            "keyvault": "<key-vault-uri-2>",
            "name": "<key-vault-secret-name-2>"
        }
    }

De machtiging voor toegang tot de sleutelkluis wordt verstrekt aan een beheerde identiteit op de virtuele machine voor bewaking. Aan deze beheerde identiteit moet de machtiging Ophalen worden verleend voor alle Key Vault-geheimen waarnaar wordt verwezen in de configuratie van het bewakingsprofiel. U kunt dit doen vanuit Azure Portal, PowerShell, de Azure CLI of een Azure Resource Manager-sjabloon.

Parameters

Parameters zijn tokens waarnaar kan worden verwezen in de profielconfiguratie via JSON-sjablonen. Parameters hebben een naam en een waarde. Waarden kunnen elk JSON-type zijn, inclusief objecten en matrices. Er wordt naar een parameter verwezen in de profielconfiguratie op basis van de naam, met behulp van deze conventie: .Parameters.<name>.

Parameters kunnen verwijzen naar geheimen in Key Vault met behulp van dezelfde conventie. Verwijst bijvoorbeeld sqlAzureConnections naar het geheim telegrafPassword met behulp van de conventie $telegrafPassword.

Tijdens runtime worden alle parameters en geheimen omgezet en samengevoegd met de profielconfiguratie om de daadwerkelijke configuratie te maken die op de computer moet worden gebruikt.

Notitie

De parameternamen van sqlAzureConnections, sqlVmConnectionsen sqlManagedInstanceConnections zijn allemaal vereist in de configuratie, zelfs als u geen verbindingsreeksen voor sommige ervan opgeeft.

Status: Verzamelen met fouten

De bewakingsmachine heeft de status Verzamelen met fouten als er ten minste één recent InsightsMetrics-logboek is, maar er ook fouten in de Operation tabel zijn.

SQL Insights gebruikt de volgende query's om deze informatie op te halen:

InsightsMetrics 
    | extend Tags = todynamic(Tags) 
    | extend SqlInstance = tostring(Tags.sql_instance) 
    | where TimeGenerated > ago(240m) and isnotempty(SqlInstance) and Namespace == 'sqlserver_server_properties' and Name == 'uptime' 
WorkloadDiagnosticLogs
| summarize Errors = countif(Status == 'Error')

Notitie

Als u geen gegevens WorkloadDiagnosticLogsziet, moet u mogelijk uw bewakingsprofiel bijwerken. Selecteer vanuit SQL Insights in De Azure-portal het bewakingsprofiel> Profiel bewerken>beheren.

Voor veelvoorkomende gevallen bieden we tips voor probleemoplossing in de logboekweergave:

A screenshot of the Azure Monitor page for Troubleshoot SQL logs in the Azure portal.

Bekende problemen

Tijdens de preview van SQL Insights kunnen de volgende bekende problemen optreden.

  • Fout 'Aanmelden mislukt' bij het maken van verbinding met de server of database

    Het gebruik van bepaalde speciale tekens in WACHTWOORDEN voor SQL-verificatie die zijn opgeslagen in de configuratie van de bewakings-VM of in Key Vault, kan voorkomen dat de bewakings-VM verbinding maakt met een SQL-server of -database. Deze set tekens bevat haakjes, vierkante en gekrulde haakjes, het dollarteken, slashes voor vooruit en rug en punt ([ { ( ) } ] $ \ / .).

  • Spaties in de kenmerken van de databaseverbindingsreeks kunnen worden vervangen door speciale tekens, wat leidt tot databaseverbindingsfouten. Als de spatie in het User Id kenmerk bijvoorbeeld wordt vervangen door een speciaal teken, mislukken verbindingen met de aanmeldingsfout voor de gebruiker' mislukt. U kunt dit oplossen door de configuratie van het bewakingsprofiel te bewerken en elk speciaal teken te verwijderen dat wordt weergegeven in plaats van een spatie. Sommige speciale tekens zien er mogelijk niet uit een spatie, dus u kunt elk spatieteken verwijderen, opnieuw typen en de configuratie opslaan.

  • Het verzamelen en visualiseren van gegevens werkt mogelijk niet als de computernaam van het besturingssysteem van de bewakings-VM verschilt van de naam van de bewakings-VM.

  • Een bericht 'WLI-extensie op deze computer is lager dan de aanbevolen versie [...]' wordt mogelijk onjuist weergegeven, zelfs als de WLI-extensie up-to-date is.

Aanbevolen procedures

  • Zorg ervoor dat u toegang tot Key Vault hebt vanaf de bewakings-VM. Als u Key Vault gebruikt om WACHTWOORDEN voor SQL-verificatie op te slaan (sterk aanbevolen), moet u ervoor zorgen dat de netwerk- en beveiligingsconfiguratie de bewakings-VM toegang geeft tot Key Vault. Zie Toegang tot Azure Key Vault achter een firewall en Azure Key Vault-netwerkinstellingen configureren voor meer informatie. Als u wilt controleren of de bewakings-VM toegang heeft tot Key Vault, kunt u de volgende opdrachten uitvoeren vanuit een SSH-sessie die is verbonden met de virtuele machine. U moet het toegangstoken en het geheim kunnen ophalen. Vervang , [YOUR-KEY-VAULT-SECRET]en [YOUR-KEY-VAULT-ACCESS-TOKEN] door [YOUR-KEY-VAULT-URL]werkelijke waarden.

    # Get an access token for accessing Key Vault secrets
    curl 'http://[YOUR-KEY-VAULT-URL]/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https%3A%2F%2Fvault.azure.net' -H Metadata:true
    
    # Get Key Vault secret
    curl 'https://[YOUR-KEY-VAULT-URL]/secrets/[YOUR-KEY-VAULT-SECRET]?api-version=2016-10-01' -H "Authorization: Bearer [YOUR-KEY-VAULT-ACCESS-TOKEN]"
    
  • Software bijwerken op de bewakings-VM. Het wordt ten zeerste aangeraden het besturingssysteem en de extensies op de bewakings-VM periodiek bij te werken. Als een extensie automatische upgrade ondersteunt, schakelt u deze optie in.

  • Sla eerdere configuraties op. Als u wijzigingen wilt aanbrengen in het bewakingsprofiel of de vm-configuratie wilt bewaken, raden we u aan eerst een werkende kopie van uw configuratiegegevens op te slaan. Selecteer >op de pagina SQL Insights in Azure Portal profiel bewerken en kopieer de tekst van de huidige bewakingsprofielconfiguratie naar een bestand. Selecteer op dezelfde manier Het profiel>Configureren voor de bewakings-VM beheren en kopieer de tekst van de huidige bewakingsconfiguratie naar een bestand. Als er fouten optreden bij het verzamelen van gegevens na configuratiewijzigingen, kunt u de nieuwe configuratie vergelijken met de bekende werkende configuratie met behulp van een hulpprogramma voor tekstverschil, zodat u eventuele wijzigingen kunt vinden die mogelijk van invloed zijn op de verzameling.

Volgende stappen