Sdílet prostřednictvím


Řešení potíží s SQL Přehledy (Preview)

Platí pro:Azure SQL DatabaseAzure SQL Managed Instance

Pokud chcete řešit problémy se shromažďováním dat v SQL Přehledy (Preview), zkontrolujte stav počítače monitorování na kartě Spravovat profil. Stavy:

  • Shromažďování
  • Neshromažďování
  • Shromažďování s chybami

Výběrem stavu zobrazíte protokoly a další podrobnosti, které vám můžou pomoct problém vyřešit.

Snímek obrazovky znázorňující stav monitorovaných počítačů

Stav: Neshromažďuje se

Monitorovací počítač má stav Neshromažďování, pokud za posledních 10 minut nedošlo k žádným datům v Přehledy Metrics pro SQL.

Poznámka:

Ujistěte se, že se pokoušíte shromažďovat data z podporované verze SQL. Například při pokusu o shromažďování dat s platným profilem a připojovací řetězec, ale z nepodporované verze služby Azure SQL Database dojde ke stavu Neshromažďování.

SQL Přehledy (Preview) používá k načtení těchto informací následující dotaz:

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' 

Zkontrolujte, jestli některé protokoly z Telegrafu pomáhají identifikovat původní příčinu problému. Pokud existují položky protokolu, můžete vybrat Možnost Neshromažďovat a zkontrolovat protokoly a informace o řešení běžných problémů.

Pokud nejsou žádné položky protokolu, zkontrolujte protokoly na monitorovacím virtuálním počítači pro následující služby nainstalované dvěma rozšířeními virtuálních počítačů:

  • Microsoft.Azure.Monitor.AzureMonitorLinuxAgent
    • Služba: mdsd
  • Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension
    • Služba: wli
    • Služba: telegraf
    • Služba: fluent-bit
    • Protokol rozšíření pro kontrolu selhání instalace: /var/log/azure/Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension/wlilogs.log

Protokoly služby wli

Protokoly služeb: /var/log/wli.log

Zobrazení nedávných protokolů: tail -n 100 -f /var/log/wli.log

Pokud se zobrazí následující protokol chyb, došlo k potížím se službou mdsd : 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 .

Protokoly služby Telegraf

Protokoly služeb: /var/log/telegraf/telegraf.log

Zobrazení nedávných protokolů: tail -n 100 -f /var/log/ms-telegraf/telegraf.log

Zobrazení nedávných protokolů chyb a upozornění: tail -n 1000 /var/log/ms-telegraf/telegraf.log | grep "E\!\|W!"

Konfigurace, kterou telegraf používá, je generována službou wli a umístěna v: /etc/ms-telegraf/telegraf.d/wli

Pokud se vygeneruje špatná konfigurace, nemusí se spustit služba ms-telegraf. Pomocí následujícího příkazu zkontrolujte, jestli je služba ms-telegraf spuštěná: service ms-telegraf status

Pokud chcete zobrazit chybové zprávy ze služby telegrafu, spusťte ji ručně pomocí následujícího příkazu:

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

Protokoly služby mdsd

Zkontrolujte požadavky pro agenta Azure Monitoru.

Před agentem Azure Monitoring Agent v1.12 se protokoly služby mdsd nacházely v:

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

Od verze 1.12 se protokoly služby nacházejí v:

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

Zobrazení nedávných chyb: tail -n 100 -f /var/log/mdsd.err

Pokud potřebujete kontaktovat podporu, shromážděte následující informace:

  • Protokoly v /var/log/azure/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent/
  • Protokolování v souboru /var/log/waagent.log
  • Protokoly , /var/log/mdsd*nebo přihlášení /var/opt/microsoft/azuremonitoragent/log/ a /etc/opt/microsoft/azuremonitoragent/.
  • Soubory v /etc/mdsd.d/
  • Soubor /etc/default/mdsd

Neplatná konfigurace monitorování virtuálního počítače

Jednou z příčin stavu Neshromažďování je neplatná konfigurace pro virtuální počítač monitorování. Tady je nejjednodušší forma konfigurace:

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

Tato konfigurace určuje náhradní tokeny, které se mají použít v konfiguraci profilu na vašem monitorovacím virtuálním počítači. Umožňuje také odkazovat na tajné kódy ze služby Azure Key Vault, takže nemusíte uchovávat tajné hodnoty v žádné konfiguraci (což důrazně doporučujeme).

V této konfiguraci obsahuje $telegrafPassword databáze připojovací řetězec náhradní token. SQL Přehledy nahradí tento token heslem ověřování SQL načteným ze služby Key Vault. Identifikátor URI služby Key Vault je zadaný v části konfigurace v telegrafPassword části secrets.

Tajné kódy

Tajné kódy jsou tokeny, jejichž hodnoty se načítají za běhu z trezoru klíčů Azure. Tajný klíč je definován dvojicí hodnot, která obsahuje identifikátor URI trezoru klíčů a název tajného kódu. Tato definice umožňuje sql Přehledy získat hodnotu tajného kódu za běhu a použít ho v podřízené konfiguraci.

Můžete definovat tolik tajných kódů, kolik potřebujete, včetně tajných kódů uložených ve více trezorech klíčů.

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

Oprávnění pro přístup k trezoru klíčů se poskytuje spravované identitě na monitorovacím virtuálním počítači. Tato spravovaná identita musí mít udělené oprávnění Získat pro všechny tajné kódy služby Key Vault odkazované v konfiguraci profilu monitorování. Můžete to udělat z webu Azure Portal, PowerShellu, Azure CLI nebo šablony Azure Resource Manageru.

Parametry

Parametry jsou tokeny, na které se dá odkazovat v konfiguraci profilu prostřednictvím šablon JSON. Parametry mají název a hodnotu. Hodnoty můžou být libovolný typ JSON, včetně objektů a polí. Parametr je odkazován v konfiguraci profilu jeho názvem pomocí této konvence: .Parameters.<name>.

Parametry můžou odkazovat na tajné kódy ve službě Key Vault pomocí stejné konvence. Například sqlAzureConnections odkazuje na tajný kód telegrafPassword pomocí konvence $telegrafPassword.

Za běhu se všechny parametry a tajné kódy přeloží a sloučí s konfigurací profilu a vytvoří skutečnou konfiguraci, která se použije na počítači.

Poznámka:

Názvy sqlAzureConnectionsparametrů , sqlVmConnectionsa sqlManagedInstanceConnections jsou všechny vyžadovány v konfiguraci, i když pro některé z nich nezadáte připojovací řetězec.

Stav: Shromažďování s chybami

Počítač monitorování bude mít stav Shromažďování s chybami, pokud existuje alespoň jeden nedávný protokol metrik Přehledy, ale v Operation tabulce jsou také chyby.

SQL Přehledy k načtení těchto informací používá následující dotazy:

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

Poznámka:

Pokud nevidíte žádná data WorkloadDiagnosticLogs, možná budete muset aktualizovat svůj profil monitorování. V rámci SQL Přehledy na webu Azure Portal vyberte Spravovat profil>upravit profil aktualizace>monitorování.

V běžných případech poskytujeme tipy pro řešení potíží v zobrazení protokolů:

Snímek obrazovky se stránkou Azure Monitor pro řešení potíží s protokoly SQL na webu Azure Portal

Známé problémy

Ve verzi Preview sql Přehledy můžete narazit na následující známé problémy.

  • Chyba Přihlášení selhalo při připojování k serveru nebo databázi

    Použití určitých speciálních znaků v heslech ověřování SQL uložených v konfiguraci monitorovacího virtuálního počítače nebo ve službě Key Vault může zabránit tomu, aby se monitorovací virtuální počítač připojil k SERVERU NEBO databázi SQL. Tato sada znaků zahrnuje závorky, hranaté a složené závorky, znak dolaru, lomítka a tečku ([ { ( ) } ] $ \ / .).

  • Mezery v databázi připojovací řetězec atributy mohou být nahrazeny speciálními znaky, což vede k selhání připojení k databázi. Pokud je například místo v atributu User Id nahrazeno speciálním znakem, připojení selžou s chybou Přihlášení uživatele '' selhalo. Pokud chcete vyřešit, upravte konfiguraci profilu monitorování a odstraňte všechny speciální znaky, které se zobrazují místo místa. Některé speciální znaky můžou vypadat nerozlišitelně od mezery, takže můžete chtít odstranit každý znak mezery, zadat ho znovu a uložit konfiguraci.

  • Shromažďování a vizualizace dat nemusí fungovat, pokud se název počítače s operačním systémem monitorovacího virtuálního počítače liší od názvu monitorovacího virtuálního počítače.

  • Zpráva "Rozšíření WLI na tomto počítači je pod doporučenou verzí [...]" se může nesprávně zobrazit, i když je rozšíření WLI aktuální.

  • Shromažďování a vizualizace dat nemusí fungovat, pokud název počítače s operačním systémem virtuálního počítače, na kterém je nainstalovaný SQL Server, neodpovídá názvu serveru v metadatech SQL Serveru. Další informace naleznete v tématu Přejmenování počítače, který je hostitelem samostatné instance SQL Serveru.

Osvědčené postupy

  • Zajistěte přístup ke službě Key Vault z monitorovacího virtuálního počítače. Pokud k ukládání hesel pro ověřování SQL používáte Key Vault (důrazně doporučujeme), musíte zajistit, aby konfigurace sítě a zabezpečení umožňovala monitorování virtuálního počítače přístup ke službě Key Vault. Další informace najdete v tématu Přístup ke službě Azure Key Vault za bránou firewall a konfiguraci nastavení sítě služby Azure Key Vault. Pokud chcete ověřit, že monitorovací virtuální počítač má přístup ke službě Key Vault, můžete z relace SSH připojené k virtuálnímu počítači spustit následující příkazy. Měli byste být schopni úspěšně načíst přístupový token a tajný klíč. Nahraďte [YOUR-KEY-VAULT-URL]hodnoty a [YOUR-KEY-VAULT-ACCESS-TOKEN][YOUR-KEY-VAULT-SECRET]skutečnými hodnotami.

    # 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]"
    
  • Aktualizujte software na monitorovacím virtuálním počítači. Důrazně doporučujeme pravidelně aktualizovat operační systém a rozšíření na monitorovacím virtuálním počítači. Pokud rozšíření podporuje automatický upgrade, povolte ji.

  • Uložte předchozí konfigurace. Pokud chcete provést změny v konfiguraci profilu monitorování nebo monitorování virtuálního počítače, doporučujeme nejprve uložit funkční kopii konfiguračních dat. Na stránce SQL Přehledy na webu Azure Portal vyberte Spravovat profil pro úpravy profilu> a zkopírujte text z aktuální konfigurace profilu monitorování do souboru. Podobně vyberte Možnost Spravovat profil>Konfigurovat pro monitorování virtuálního počítače a zkopírujte text z aktuální konfigurace monitorování do souboru. Pokud dojde k chybám shromažďování dat po změnách konfigurace, můžete novou konfiguraci porovnat se známou pracovní konfigurací pomocí nástroje pro rozdíl textu, který vám pomůže najít všechny změny, které mohly mít vliv na kolekci.

Další kroky