Řešení potíží s SQL Insights (Preview)
Platí pro: Azure SQL Database Azure SQL Managed Instance
Důležité
SQL Insights (Preview) bude vyřazeno 31. prosince 2024. Do tohoto data doporučujeme přejít na sledovací proces databáze pro Azure SQL (Preview) nebo jiné řešení pro monitorování databáze.
Sledovací proces databáze je doporučené řešení monitorování pro scénáře, které vyžadují nízkou latenci shromažďování dat, monitorování na úrovni aktiv, komplexní data monitorování, včetně podrobností na úrovni dotazů a podpory pokročilých analýz shromážděných dat monitorování. V tuto chvíli sledovací proces databáze podporuje Službu Azure SQL Database a Spravovanou instanci Azure SQL.
Po 31. prosinci 2024 se SQL Insights (Preview) nebude podporovat a nebude k dispozici na webu Azure Portal. V pracovním prostoru služby Log Analytics si zachováte všechna existující data monitorování shromážděná službou SQL Insights.
Pokud chcete řešit problémy se shromažďováním dat v SQL Insights (Preview), zkontrolujte stav monitorovacího počítače na kartě Spravovat profil . Stavy:
- Sběratelství
- 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.
Stav: Neshromažďuje se
Monitorovací počítač má stav Neshromažďování , pokud za posledních 10 minut nejsou v InsightsMetrics pro SQL žádná data.
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 Insights (Preview) k načtení těchto informací používá 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 Insights nahrazuje 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 službě SQL Insights získat hodnotu tajného kódu za běhu a použít ji 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 sqlAzureConnections
parametrů , sqlVmConnections
a 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
Monitorovací počítač bude mít stav Shromažďování s chybami , pokud existuje aspoň jeden nedávný protokol InsightsMetrics , ale v Operation
tabulce jsou také chyby.
Sql Insights 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 SLUŽBY SQL Insights 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ů:
Známé problémy
Ve verzi Preview služby SQL Insights 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 Insights 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.
Související obsah
- Získejte podrobnosti o povolení SQL Insights (Preview)