Dela via


Felsöka SQL Insights (förhandsversion)

Gäller för:Azure SQL DatabaseAzure SQL Managed Instance

Om du vill felsöka problem med datainsamling i SQL Insights (förhandsversion) kontrollerar du övervakningsdatorns status på fliken Hantera profil . Statusarna är:

  • Samla
  • Samlar inte in
  • Samla in med fel

Välj status för att se loggar och mer information som kan hjälpa dig att lösa problemet.

Screenshot that shows a monitoring machine status.

Status: Samlar inte in

Övervakningsdatorn har statusen Inte samla in om det inte finns några data i InsightsMetrics för SQL under de senaste 10 minuterna.

Kommentar

Kontrollera att du försöker samla in data från en version av SQL som stöds. Om du till exempel försöker samla in data med en giltig profil och anslutningssträng, men från en version av Azure SQL Database som inte stöds, resulterar det i statusEn samlar inte in.

SQL Insights (förhandsversion) använder följande fråga för att hämta den här informationen:

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' 

Kontrollera om några loggar från Telegraf hjälper dig att identifiera rotorsaken till problemet. Om det finns loggposter kan du välja Inte samla in och kontrollera loggarna och felsöka information om vanliga problem.

Om det inte finns några loggposter kontrollerar du loggarna på den virtuella övervakningsdatorn efter följande tjänster som har installerats av två tillägg för virtuella datorer:

  • Microsoft.Azure.Monitor.AzureMonitorLinuxAgent
    • Tjänst: mdsd
  • Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension
    • Tjänst: wli
    • Tjänst: telegraf
    • Tjänst: fluent-bit
    • Tilläggslogg för att kontrollera installationsfel: /var/log/azure/Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension/wlilogs.log

wli-tjänstloggar

Tjänstloggar: /var/log/wli.log

Så här visar du de senaste loggarna: tail -n 100 -f /var/log/wli.log

Om du ser följande fellogg uppstår ett problem med mdsd tjänsten: 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-tjänstloggar

Tjänstloggar: /var/log/telegraf/telegraf.log

Så här visar du de senaste loggarna: tail -n 100 -f /var/log/ms-telegraf/telegraf.log

Så här ser du de senaste fel- och varningsloggarna: tail -n 1000 /var/log/ms-telegraf/telegraf.log | grep "E\!\|W!"

Konfigurationen som telegraf använder genereras av wli-tjänsten och placeras i: /etc/ms-telegraf/telegraf.d/wli

Om en felaktig konfiguration genereras kan ms-telegraf-tjänsten inte starta. Kontrollera om ms-telegraf-tjänsten körs med hjälp av det här kommandot: service ms-telegraf status

Om du vill se felmeddelanden från telegraftjänsten kör du det manuellt med hjälp av följande kommando:

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

mdsd-tjänstloggar

Kontrollera kraven för Azure Monitor-agenten.

Innan Azure Monitoring Agent v1.12 fanns mdsd-tjänstloggar i:

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

Från v1.12 och senare finns tjänstloggar i:

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

Så här ser du de senaste felen: tail -n 100 -f /var/log/mdsd.err

Om du behöver kontakta supporten samlar du in följande information:

  • Loggar in /var/log/azure/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent/
  • Logga in /var/log/waagent.log
  • Loggar i /var/log/mdsd*, eller loggar in /var/opt/microsoft/azuremonitoragent/log/ och /etc/opt/microsoft/azuremonitoragent/.
  • Filer i /etc/mdsd.d/
  • Filen /etc/default/mdsd

Ogiltig övervakning av konfiguration av virtuella datorer

En orsak till att statusen Inte samlar in är en ogiltig konfiguration för den virtuella övervakningsdatorn. Här är den enklaste konfigurationsformen:

{
    "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": [
        ]
    }
}

Den här konfigurationen anger de ersättningstoken som ska användas i profilkonfigurationen på den virtuella övervakningsdatorn. Du kan också referera till hemligheter från Azure Key Vault, så att du inte behöver behålla hemliga värden i någon konfiguration (vilket vi starkt rekommenderar).

I den här konfigurationen innehåller databasanslutningssträngen en ersättningstoken $telegrafPassword . SQL Insights ersätter den här token med sql-autentiseringslösenordet som hämtats från Key Vault. Key Vault-URI:n anges i konfigurationsavsnittet telegrafPassword under secrets.

Hemligheter

Hemligheter är token vars värden hämtas vid körning från ett Azure-nyckelvalv. En hemlighet definieras av ett värdepar som innehåller nyckelvalvs-URI och ett hemligt namn. Med den här definitionen kan SQL Insights hämta värdet för hemligheten vid körning och använda den i underordnad konfiguration.

Du kan definiera så många hemligheter som behövs, inklusive hemligheter som lagras i flera nyckelvalv.

   "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>"
        }
    }

Behörigheten att komma åt nyckelvalvet tillhandahålls till en hanterad identitet på den virtuella övervakningsdatorn. Den här hanterade identiteten måste beviljas behörigheten Hämta för alla Key Vault-hemligheter som refereras i konfigurationen för övervakningsprofilen. Detta kan göras från Azure-portalen, PowerShell, Azure CLI eller en Azure Resource Manager-mall.

Parameters

Parametrar är token som kan refereras i profilkonfigurationen via JSON-mallar. Parametrarna har ett namn och ett värde. Värden kan vara valfri JSON-typ, inklusive objekt och matriser. En parameter refereras till i profilkonfigurationen med dess namn med hjälp av den här konventionen: .Parameters.<name>.

Parametrar kan referera till hemligheter i Key Vault med hjälp av samma konvention. Till exempel sqlAzureConnections refererar till hemligheten telegrafPassword med hjälp av konventionen $telegrafPassword.

Vid körningen löses alla parametrar och hemligheter och sammanfogas med profilkonfigurationen för att konstruera den faktiska konfiguration som ska användas på datorn.

Kommentar

Parameternamnen sqlAzureConnections, sqlVmConnectionsoch sqlManagedInstanceConnections krävs alla i konfigurationen, även om du inte anger anslutningssträngar för vissa av dem.

Status: Samla in med fel

Övervakningsdatorn har statusen Samla in med fel om det finns minst en senaste InsightsMetrics-logg , men det finns också fel i Operation tabellen.

SQL Insights använder följande frågor för att hämta den här informationen:

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')

Kommentar

Om du inte ser några data i WorkloadDiagnosticLogskan du behöva uppdatera din övervakningsprofil. Från SQL Insights i Azure-portalen väljer du Hantera profil Redigera profil>>Uppdateringsövervakningsprofil.

I vanliga fall tillhandahåller vi felsökningstips i loggvyn:

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

Kända problem

Under förhandsversionen av SQL Insights kan du stöta på följande kända problem.

  • Felet "Inloggningen misslyckades" vid anslutning till server eller databas

    Om du använder vissa specialtecken i SQL-autentiseringslösenord som sparats i konfigurationen av den virtuella övervakningsdatorn eller i Key Vault kan det hindra den virtuella övervakningsdatorn från att ansluta till en SQL-server eller databas. Den här uppsättningen tecken innehåller parenteser, kvadratiska och klammerparenteser, dollartecknet, snedstreck och punkt ([ { ( ) } ] $ \ / .).

  • Blanksteg i databasanslutningssträngsattributen kan ersättas med specialtecken, vilket leder till fel vid databasanslutning. Om till exempel utrymmet i User Id attributet ersätts med ett specialtecken misslyckas anslutningarna med felet Inloggning misslyckades för användaren . Lös problemet genom att redigera konfigurationen av övervakningsprofilen och ta bort alla specialtecken som visas i stället för ett blanksteg. Vissa specialtecken kan se oskiljaktiga ut från ett blanksteg, så du kanske vill ta bort varje blankstegstecken, skriva det igen och spara konfigurationen.

  • Datainsamling och visualisering kanske inte fungerar om operativsystemdatornamnet för den virtuella övervakningsdatorn skiljer sig från namnet på den virtuella övervakningsdatorn.

  • Ett meddelande om att "WLI-tillägget på den här datorn är under den rekommenderade versionen [...]" kan visas felaktigt även när WLI-tillägget är uppdaterat.

Regelverk

  • Kontrollera åtkomsten till Key Vault från den virtuella övervakningsdatorn. Om du använder Key Vault för att lagra SQL-autentiseringslösenord (rekommenderas starkt) måste du se till att nätverks- och säkerhetskonfigurationen tillåter att den virtuella övervakningsdatorn får åtkomst till Key Vault. Mer information finns i Åtkomst till Azure Key Vault bakom en brandvägg och Konfigurera Nätverksinställningar för Azure Key Vault. För att kontrollera att den virtuella övervakningsdatorn kan komma åt Key Vault kan du köra följande kommandon från en SSH-session som är ansluten till den virtuella datorn. Du bör kunna hämta åtkomsttoken och hemligheten. Ersätt [YOUR-KEY-VAULT-URL], [YOUR-KEY-VAULT-SECRET]och [YOUR-KEY-VAULT-ACCESS-TOKEN] med faktiska värden.

    # 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]"
    
  • Uppdatera programvara på den virtuella övervakningsdatorn. Vi rekommenderar starkt att du regelbundet uppdaterar operativsystemet och tilläggen på den virtuella övervakningsdatorn. Om ett tillägg stöder automatisk uppgradering aktiverar du det alternativet.

  • Spara tidigare konfigurationer. Om du vill göra ändringar i antingen övervakningsprofilen eller övervakningen av VM-konfigurationen rekommenderar vi att du sparar en fungerande kopia av dina konfigurationsdata först. På sidan SQL Insights i Azure-portalen väljer du Hantera profil>Redigera profil och kopierar texten från Konfiguration av aktuell övervakningsprofil till en fil. På samma sätt väljer du Hantera profil>Konfigurera för den virtuella övervakningsdatorn och kopierar texten från Aktuell övervakningskonfiguration till en fil. Om datainsamlingsfel uppstår efter konfigurationsändringar kan du jämföra den nya konfigurationen med den kända arbetskonfigurationen med hjälp av ett textdiffverktyg som hjälper dig att hitta ändringar som kan ha påverkat samlingen.

Nästa steg