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.
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
, sqlVmConnections
en 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 WorkloadDiagnosticLogs
ziet, 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:
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
- Meer informatie over het inschakelen van SQL Insights (preview).
Feedback
https://aka.ms/ContentUserFeedback.
Binnenkort beschikbaar: In de loop van 2024 zullen we GitHub-problemen geleidelijk uitfaseren als het feedbackmechanisme voor inhoud en deze vervangen door een nieuw feedbacksysteem. Zie voor meer informatie:Feedback verzenden en weergeven voor