Share via


Az SQL Insights hibaelhárítása (előzetes verzió)

A következőre vonatkozik: Azure SQL DatabaseFelügyelt Azure SQL-példány

Az SQL Insights (előzetes verzió) adatgyűjtési problémáinak elhárításához ellenőrizze a monitorozási gép állapotát a Profil kezelése lapon. Az állapotok a következők:

  • Gyűjtése
  • Nem gyűjt
  • Adatgyűjtés hibákkal

Válassza ki az állapotot a naplók és a probléma megoldását segítő további részletek megtekintéséhez.

Screenshot that shows a monitoring machine status.

Állapot: Nem gyűjt

A monitorozási gép nem gyűjt, ha az elmúlt 10 percben nem található adat az InsightsMetrics for SQL-ben.

Megjegyzés:

Győződjön meg arról, hogy az SQL támogatott verziójából próbál adatokat gyűjteni. Ha például egy érvényes profillal és kapcsolati sztringgel próbál adatokat gyűjteni, de az Azure SQL Database nem támogatott verziójából, az nem gyűjtési állapotot eredményez.

Az SQL Insights (előzetes verzió) az alábbi lekérdezést használja az információk lekéréséhez:

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' 

Ellenőrizze, hogy a Telegraf naplói segítenek-e azonosítani a probléma kiváltó okát. Ha vannak naplóbejegyzések, válassza a Nem gyűjti és ellenőrzi a naplókat, valamint hibaelhárítási információkat a gyakori problémákhoz.

Ha nincsenek naplóbejegyzések, ellenőrizze a figyelési virtuális gépen a következő, két virtuálisgép-bővítmény által telepített szolgáltatásokat:

  • Microsoft.Azure.Monitor.AzureMonitorLinuxAgent
    • Szolgáltatás: mdsd
  • Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension
    • Szolgáltatás: wli
    • Szolgáltatás: telegraf
    • Szolgáltatás: fluent-bit
    • Bővítménynapló a telepítési hibák ellenőrzéséhez: /var/log/azure/Microsoft.Azure.Monitor.Workloads.Workload.WLILinuxExtension/wlilogs.log

wli szolgáltatásnaplók

Szolgáltatásnaplók: /var/log/wli.log

Legutóbbi naplók megtekintése: tail -n 100 -f /var/log/wli.log

Ha a következő hibanapló jelenik meg, a szolgáltatással mdsd kapcsolatos probléma merült fel: 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 szolgáltatásnaplók

Szolgáltatásnaplók: /var/log/telegraf/telegraf.log

Legutóbbi naplók megtekintése: tail -n 100 -f /var/log/ms-telegraf/telegraf.log

A legutóbbi hiba- és figyelmeztető naplók megtekintése: tail -n 1000 /var/log/ms-telegraf/telegraf.log | grep "E\!\|W!"

A telegraf által használt konfigurációt a wli szolgáltatás hozza létre, és a következő helyen helyezi el: /etc/ms-telegraf/telegraf.d/wli

Ha hibás konfiguráció jön létre, előfordulhat, hogy az ms-telegraf szolgáltatás nem indul el. Ellenőrizze, hogy az ms-telegraf szolgáltatás fut-e a következő paranccsal: service ms-telegraf status

A telegraf szolgáltatás hibaüzeneteinek megtekintéséhez futtassa manuálisan a következő paranccsal:

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

mdsd szolgáltatásnaplók

Ellenőrizze az Azure Monitor-ügynök előfeltételeit .

Az Azure Monitoring Agent 1.12-s verziót megelőzően az mdsd szolgáltatásnaplók a következő helyen találhatók:

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

Az 1.12-től kezdődően a szolgáltatásnaplók a következő helyen találhatók:

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

A legutóbbi hibák megtekintése: tail -n 100 -f /var/log/mdsd.err

Ha kapcsolatba kell lépnie az ügyfélszolgálattal, gyűjtse össze a következő információkat:

  • Bejelentkezés /var/log/azure/Microsoft.Azure.Monitor.AzureMonitorLinuxAgent/
  • Bejelentkezés /var/log/waagent.log
  • Bejelentkezik/var/log/mdsd*, vagy bejelentkezik és /etc/opt/microsoft/azuremonitoragent/be is jelentkezik/var/opt/microsoft/azuremonitoragent/log/.
  • Fájlok a következőben: /etc/mdsd.d/
  • Fájl /etc/default/mdsd

Érvénytelen monitorozási virtuális gép konfigurációja

A Nem gyűjtési állapot egyik oka a figyelési virtuális gép érvénytelen konfigurációja. A konfiguráció legegyszerűbb formája:

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

Ez a konfiguráció megadja a monitorozási virtuális gép profilkonfigurációjában használandó cserejogkivonatokat. Lehetővé teszi az Azure Key Vault titkos kulcsainak hivatkozását is, így nem kell semmilyen konfigurációban tartania a titkos értékeket (amit erősen ajánlunk).

Ebben a konfigurációban az adatbázis kapcsolati sztringje tartalmaz egy helyettesítő jogkivonatot $telegrafPassword . Az SQL Insights ezt a jogkivonatot a Key Vaultból lekért SQL-hitelesítési jelszóra cseréli. A Key Vault URI-ja a konfigurációs szakaszban secretsvan megadva.telegrafPassword

Titkos kódok

A titkos kulcsok olyan jogkivonatok, amelyek értékei futásidőben lesznek lekérve egy Azure Key Vaultból. A titkos kulcsokat egy értékpár határozza meg, amely tartalmazza a key vault URI-t és egy titkos nevet. Ez a definíció lehetővé teszi, hogy az SQL Insights futásidőben lekérje a titkos kulcs értékét, és az alsóbb rétegbeli konfigurációban használja.

Tetszőleges számú titkos kulcsot definiálhat, beleértve a több kulcstartóban tárolt titkos kulcsokat is.

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

A kulcstartó elérésére vonatkozó engedélyt a figyelési virtuális gépen található felügyelt identitás biztosítja. Ennek a felügyelt identitásnak get engedéllyel kell rendelkeznie a figyelési profil konfigurációjában hivatkozott összes Key Vault-titkos kulcshoz. Ez az Azure Portalról, a PowerShellből, az Azure CLI-ből vagy egy Azure Resource Manager-sablonból végezhető el.

Paraméterek

A paraméterek olyan jogkivonatok, amelyek JSON-sablonokon keresztül hivatkozhatók a profilkonfigurációban. A paraméterek névvel és értékkel rendelkeznek. Az értékek bármilyen JSON-típust tartalmazhatnak, beleértve az objektumokat és tömböket is. A rendszer a profilkonfigurációban a következő konvencióval hivatkozik egy paraméterre: .Parameters.<name>.

A paraméterek ugyanazzal a konvencióval hivatkozhatnak titkos kulcsokra a Key Vaultban. Például sqlAzureConnections hivatkozik a titkos kódra telegrafPassword a konvenció $telegrafPasswordhasználatával.

Futásidőben az összes paraméter és titkos kód feloldva lesz, és egyesül a profilkonfigurációval, hogy létrehozhassa a gépen használni kívánt tényleges konfigurációt.

Megjegyzés:

Az , paraméternevesqlAzureConnections, és sqlManagedInstanceConnections a konfigurációban mind kötelező, még akkor is, ha néhányhoz nem ad meg kapcsolati sztringeket. sqlVmConnections

Állapot: Adatgyűjtés hibákkal

A monitorozási gép a "Gyűjtsön" állapottal fog rendelkezni, ha van legalább egy legutóbbi InsightsMetrics-napló, de a táblában Operation is vannak hibák.

Az SQL Insights a következő lekérdezésekkel kéri le ezeket az információkat:

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

Megjegyzés:

Ha nem lát adatokat WorkloadDiagnosticLogs, előfordulhat, hogy frissítenie kell a figyelési profilt. Az Azure Portal SQL Insights szolgáltatásában válassza a Profil>szerkesztése profil>frissítése figyelési profil lehetőséget.

Gyakori esetekben hibaelhárítási tippeket adunk a naplók nézetében:

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

Ismert problémák

Az SQL Insights előzetes verziója során az alábbi ismert problémák léphetnek fel.

  • "Sikertelen bejelentkezés" hiba a kiszolgálóhoz vagy adatbázishoz való csatlakozáskor

    Ha bizonyos speciális karaktereket használ a monitorozási virtuális gép konfigurációjában vagy a Key Vaultban mentett SQL-hitelesítési jelszavakban, megakadályozhatja, hogy a figyelési virtuális gép sql-kiszolgálóhoz vagy adatbázishoz csatlakozzon. Ez a karakterkészlet zárójeleket, szögletes és kapcsos zárójeleket, dollárjelet, előre- és hátra perjeleket és pontokat ([ { ( ) } ] $ \ / .) tartalmaz.

  • Az adatbázis kapcsolati sztring attribútumaiban lévő szóközök speciális karakterekre cserélhetők, ami adatbázis-kapcsolati hibákhoz vezethet. Ha például az User Id attribútumban lévő szóközt egy speciális karakterrel cseréli le, a kapcsolatok meghiúsulnak, ha a felhasználó "" hibája miatt nem sikerült a bejelentkezés. A probléma megoldásához szerkessze a monitorozási profil konfigurációját, és törölje a szóköz helyett megjelenő minden speciális karaktert. Egyes speciális karakterek megkülönböztethetetlennek tűnhetnek egy szóközből, ezért érdemes törölni minden szóköz karaktert, beírni újra, és menteni a konfigurációt.

  • Előfordulhat, hogy az adatgyűjtés és a vizualizáció nem működik, ha a figyelési virtuális gép operációsrendszer-számítógépének neve eltér a figyelési virtuális gép nevétől.

  • A "WLI-bővítmény ezen a gépen az ajánlott [...] verzió alatt van" üzenet akkor is helytelenül jelenhet meg, ha a WLI-bővítmény naprakész.

Ajánlott eljárások

  • A Key Vaulthoz való hozzáférés biztosítása a figyelési virtuális gépről. Ha a Key Vault használatával tárolja az SQL-hitelesítési jelszavakat (erősen ajánlott), győződjön meg arról, hogy a hálózati és biztonsági konfiguráció lehetővé teszi, hogy a figyelési virtuális gép hozzáférjen a Key Vaulthoz. További információt az Azure Key Vault tűzfal mögötti elérése és az Azure Key Vault hálózati beállításainak konfigurálása című témakörben talál. Annak ellenőrzéséhez, hogy a figyelési virtuális gép hozzáfér-e a Key Vaulthoz, a következő parancsokat hajthatja végre a virtuális géphez csatlakoztatott SSH-munkamenetből. Sikeresen le kell tudnia kérni a hozzáférési jogkivonatot és a titkos kulcsot. Cserélje le [YOUR-KEY-VAULT-URL]a , [YOUR-KEY-VAULT-SECRET]és [YOUR-KEY-VAULT-ACCESS-TOKEN] a tényleges értékeket.

    # 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]"
    
  • Szoftver frissítése a figyelési virtuális gépen. Határozottan javasoljuk, hogy rendszeresen frissítse az operációs rendszert és a bővítményeket a figyelési virtuális gépen. Ha egy bővítmény támogatja az automatikus frissítést, engedélyezze ezt a beállítást.

  • Mentse a korábbi konfigurációkat. Ha módosítani szeretné a figyelési profilt vagy a virtuális gép konfigurációját, javasoljuk, hogy először mentse a konfigurációs adatok munkapéldányát. Az Azure Portal SQL Insights lapján válassza a Profil>szerkesztése profil kezelése lehetőséget, és másolja a szöveget az Aktuális figyelési profil konfigurációjábólegy fájlba. Ehhez hasonlóan válassza a Profil>konfigurálása a monitorozási virtuális géphez lehetőséget, és másolja a szöveget a jelenlegi monitorozási konfigurációból egy fájlba. Ha a konfigurációváltozások után adatgyűjtési hibák lépnek fel, az új konfigurációt összehasonlíthatja az ismert működő konfigurációval egy szöveges diff eszközzel, amely segít megtalálni az esetlegesen a gyűjteményt érintő módosításokat.

További lépések