mirror of
https://github.com/Microsoft/sql-server-samples.git
synced 2025-12-08 14:58:54 +00:00
BPA Workbook updated
This commit is contained in:
+516
-342
@@ -1,356 +1,530 @@
|
||||
{
|
||||
"version": "Notebook/1.0",
|
||||
"items": [
|
||||
{
|
||||
"type": 1,
|
||||
"content": {
|
||||
"json": "# Azure Arc SQL Servers - Best Practices Assessment"
|
||||
"version": "Notebook/1.0",
|
||||
"items": [
|
||||
{
|
||||
"type": 1,
|
||||
"content": {
|
||||
"json": "# Azure Arc SQL Servers - Best Practices Assessment"
|
||||
},
|
||||
"name": "text - 2"
|
||||
},
|
||||
"name": "text - 2"
|
||||
},
|
||||
{
|
||||
"type": 9,
|
||||
"content": {
|
||||
"version": "KqlParameterItem/1.0",
|
||||
"crossComponentResources": [
|
||||
"{Subscription}"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"id": "5ccbaa77-2a42-4a07-a877-b5a3a6297703",
|
||||
"version": "KqlParameterItem/1.0",
|
||||
"name": "Subscription",
|
||||
"type": 6,
|
||||
"isRequired": true,
|
||||
"multiSelect": true,
|
||||
"quote": "'",
|
||||
"delimiter": ",",
|
||||
"typeSettings": {
|
||||
"additionalResourceOptions": [
|
||||
{
|
||||
"type": 9,
|
||||
"content": {
|
||||
"version": "KqlParameterItem/1.0",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"id": "5ccbaa77-2a42-4a07-a877-b5a3a6297703",
|
||||
"version": "KqlParameterItem/1.0",
|
||||
"name": "Subscription",
|
||||
"type": 6,
|
||||
"isRequired": true,
|
||||
"multiSelect": true,
|
||||
"quote": "'",
|
||||
"delimiter": ",",
|
||||
"typeSettings": {
|
||||
"additionalResourceOptions": [
|
||||
"value::all"
|
||||
],
|
||||
"includeAll": true,
|
||||
"showDefault": false
|
||||
},
|
||||
"timeContext": {
|
||||
"durationMs": 86400000
|
||||
},
|
||||
"value": [
|
||||
"value::all"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "f932fba5-395b-423d-a9b0-538714e1e553",
|
||||
"version": "KqlParameterItem/1.0",
|
||||
"name": "LogAnalitycsWorkpace",
|
||||
"type": 5,
|
||||
"query": "where type =~ 'microsoft.operationalinsights/workspaces'\r\n| project id",
|
||||
"crossComponentResources": [
|
||||
"{Subscription}"
|
||||
],
|
||||
"includeAll": true,
|
||||
"showDefault": false
|
||||
"typeSettings": {
|
||||
"additionalResourceOptions": []
|
||||
},
|
||||
"queryType": 1,
|
||||
"resourceType": "microsoft.resourcegraph/resources",
|
||||
"value": "/subscriptions/71ac1fd6-9ebc-4a20-9667-b873f7cee091/resourceGroups/Arc-Demo/providers/Microsoft.OperationalInsights/workspaces/LA-AzureArc"
|
||||
},
|
||||
"timeContext": {
|
||||
"durationMs": 86400000
|
||||
},
|
||||
"value": [
|
||||
"value::all"
|
||||
{
|
||||
"id": "95f19603-3001-41ca-8340-621f3887a3b3",
|
||||
"version": "KqlParameterItem/1.0",
|
||||
"name": "ServerName",
|
||||
"type": 2,
|
||||
"description": "Azure Arc ServerName",
|
||||
"multiSelect": true,
|
||||
"quote": "'",
|
||||
"delimiter": ",",
|
||||
"query": "SqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend ServerName = tostring(split(tostring(asmt[7]),\":\",0)[0])\r\n| distinct ServerName",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"typeSettings": {
|
||||
"additionalResourceOptions": [
|
||||
"value::all"
|
||||
],
|
||||
"showDefault": false
|
||||
},
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"value": [
|
||||
"SQL2014",
|
||||
"ARC2012R2SQL",
|
||||
"ARC2016SQL"
|
||||
]
|
||||
}
|
||||
],
|
||||
"style": "pills",
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces"
|
||||
},
|
||||
"name": "parameters - 7"
|
||||
},
|
||||
{
|
||||
"type": 1,
|
||||
"content": {
|
||||
"json": "<img align=\"left\" src=\"https://code.benco.io/icon-collection/azure-icons/Azure-Arc.svg\" alt=\"drawing\" style=\"width:150px;\"/>\r\n<img align=\"right\" src=\"https://code.benco.io/icon-collection/azure-icons/SQL-Server.svg\" alt=\"drawing\" style=\"width:150px;\"/>"
|
||||
},
|
||||
"customWidth": "33",
|
||||
"name": "text - 9"
|
||||
},
|
||||
{
|
||||
"type": 3,
|
||||
"content": {
|
||||
"version": "KqlItem/1.0",
|
||||
"query": "SqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0\r\n | extend ServerName = split(TargetName,\":\",0)[0]\r\n | where ServerName in ({ServerName})\r\n | summarize count() by Severity, Sev\r\n | order by Sev",
|
||||
"size": 3,
|
||||
"title": "Issues by severity",
|
||||
"exportFieldName": "Severity",
|
||||
"exportParameterName": "severity",
|
||||
"exportDefaultValue": "",
|
||||
"showExportToExcel": true,
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"visualization": "table",
|
||||
"gridSettings": {
|
||||
"formatters": [
|
||||
{
|
||||
"columnMatch": "Severity",
|
||||
"formatter": 8,
|
||||
"formatOptions": {
|
||||
"min": 0,
|
||||
"max": 40,
|
||||
"palette": "coldHot"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "Sev",
|
||||
"formatter": 8,
|
||||
"formatOptions": {
|
||||
"min": 0,
|
||||
"max": 40,
|
||||
"palette": "coldHot"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "f932fba5-395b-423d-a9b0-538714e1e553",
|
||||
"version": "KqlParameterItem/1.0",
|
||||
"name": "LogAnalitycsWorkpace",
|
||||
"type": 5,
|
||||
"query": "where type =~ 'microsoft.operationalinsights/workspaces'\r\n| project id",
|
||||
"crossComponentResources": [
|
||||
"{Subscription}"
|
||||
],
|
||||
"typeSettings": {
|
||||
"additionalResourceOptions": []
|
||||
},
|
||||
"queryType": 1,
|
||||
"resourceType": "microsoft.resourcegraph/resources",
|
||||
"value": "/subscriptions/71ac1fd6-9ebc-4a20-9667-b873f7cee091/resourceGroups/Arc-Demo/providers/Microsoft.OperationalInsights/workspaces/LA-AzureArc"
|
||||
}
|
||||
],
|
||||
"style": "pills",
|
||||
"queryType": 1,
|
||||
"resourceType": "microsoft.resourcegraph/resources"
|
||||
},
|
||||
"name": "parameters - 7"
|
||||
},
|
||||
{
|
||||
"type": 3,
|
||||
"content": {
|
||||
"version": "KqlItem/1.0",
|
||||
"query": "SqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0\r\n | summarize count() by Severity, Sev\r\n | order by Sev",
|
||||
"size": 3,
|
||||
"title": "Issues by severity",
|
||||
"exportFieldName": "Severity",
|
||||
"exportParameterName": "severity",
|
||||
"showExportToExcel": true,
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"visualization": "table",
|
||||
"gridSettings": {
|
||||
"formatters": [
|
||||
{
|
||||
"columnMatch": "Severity",
|
||||
"formatter": 8,
|
||||
"formatOptions": {
|
||||
"min": 0,
|
||||
"max": 40,
|
||||
"palette": "coldHot"
|
||||
"chartSettings": {
|
||||
"seriesLabelSettings": [
|
||||
{
|
||||
"seriesName": "Medium",
|
||||
"color": "orange"
|
||||
},
|
||||
{
|
||||
"seriesName": "Low",
|
||||
"color": "blue"
|
||||
},
|
||||
{
|
||||
"seriesName": "High",
|
||||
"color": "redBright"
|
||||
},
|
||||
{
|
||||
"seriesName": "Information",
|
||||
"color": "blueDark"
|
||||
}
|
||||
],
|
||||
"ySettings": {
|
||||
"numberFormatSettings": {
|
||||
"unit": 0,
|
||||
"options": {
|
||||
"style": "decimal",
|
||||
"useGrouping": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"customWidth": "67",
|
||||
"name": "query - 4"
|
||||
},
|
||||
{
|
||||
"type": 3,
|
||||
"content": {
|
||||
"version": "KqlItem/1.0",
|
||||
"query": "SqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0 \r\n and TargetType == \"Server\"\r\n | extend ServerName = split(TargetName,\":\",0)[0]\r\n | where ServerName in ({ServerName})\r\n | order by Sev, CheckId\r\n | summarize count() by TargetName \r\n",
|
||||
"size": 3,
|
||||
"title": "Issues by server",
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"visualization": "piechart",
|
||||
"chartSettings": {
|
||||
"seriesLabelSettings": [
|
||||
{
|
||||
"seriesName": "Protected",
|
||||
"color": "green"
|
||||
},
|
||||
{
|
||||
"seriesName": "Unknown",
|
||||
"color": "gray"
|
||||
},
|
||||
{
|
||||
"seriesName": "Not Protected",
|
||||
"color": "redBright"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"customWidth": "33",
|
||||
"name": "query - 4 - Copy"
|
||||
},
|
||||
{
|
||||
"type": 3,
|
||||
"content": {
|
||||
"version": "KqlItem/1.0",
|
||||
"query": "SqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0 \r\n and TargetType == \"Database\"\r\n | extend ServerName = split(TargetName,\":\",0)[0]\r\n | where ServerName in ({ServerName})\r\n | order by Sev, CheckId\r\n | summarize count() by TargetName \r\n",
|
||||
"size": 3,
|
||||
"title": "Issues by Database",
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"visualization": "piechart"
|
||||
},
|
||||
"customWidth": "33",
|
||||
"name": "query - 4 - Copy - Copy"
|
||||
},
|
||||
{
|
||||
"type": 3,
|
||||
"content": {
|
||||
"version": "KqlItem/1.0",
|
||||
"query": "\r\nSqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0\r\n | extend ServerName = split(TargetName,\":\",0)[0]\r\n | where ServerName in ({ServerName})\r\n and Severity == \"{severity}\"\r\n | order by Sev, CheckId\r\n | project CheckId, Description, _ResourceId, AsmtId, Sev, Severity \r\n",
|
||||
"size": 3,
|
||||
"title": "Issues by Severity Level: {severity}",
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
]
|
||||
},
|
||||
"name": "query - 8"
|
||||
},
|
||||
{
|
||||
"type": 9,
|
||||
"content": {
|
||||
"version": "KqlParameterItem/1.0",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"id": "ced45d66-52da-4f9c-b473-6781309a78cc",
|
||||
"version": "KqlParameterItem/1.0",
|
||||
"name": "CheckId",
|
||||
"type": 2,
|
||||
"isRequired": true,
|
||||
"query": "\r\nSqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0\r\n | extend ServerName = split(TargetName,\":\",0)[0]\r\n | where ServerName in ({ServerName})\r\n and Severity == \"{severity}\"\r\n | distinct (CheckId)\r\n|order by CheckId asc\r\n\r\n\r\n ",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"typeSettings": {
|
||||
"additionalResourceOptions": [],
|
||||
"showDefault": false
|
||||
},
|
||||
"timeContext": {
|
||||
"durationMs": 2592000000
|
||||
},
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"value": null
|
||||
}
|
||||
],
|
||||
"style": "pills",
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces"
|
||||
},
|
||||
"name": "paarameter_CheckId"
|
||||
},
|
||||
{
|
||||
"type": 12,
|
||||
"content": {
|
||||
"version": "NotebookGroup/1.0",
|
||||
"groupType": "editable",
|
||||
"items": [
|
||||
{
|
||||
"type": 3,
|
||||
"content": {
|
||||
"version": "KqlItem/1.0",
|
||||
"query": "SqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n | extend ServerName = split(TargetName,\":\",0)[0]\r\n | where ServerName in ({ServerName})\r\n | where CheckId == \"{CheckId}\"\r\n |where Sev >= 0\r\n | order by Sev, CheckId\r\n| project TimeGenerated, CheckId,DisplayString,TargetName,Severity,TargetType,Description,Message,HelpLink,TagsArr",
|
||||
"size": 0,
|
||||
"exportedParameters": [
|
||||
{
|
||||
"fieldName": "Description",
|
||||
"parameterName": "Description",
|
||||
"parameterType": 1
|
||||
},
|
||||
{
|
||||
"fieldName": "Message",
|
||||
"parameterName": "Message",
|
||||
"parameterType": 1
|
||||
},
|
||||
{
|
||||
"fieldName": "HelpLink",
|
||||
"parameterName": "HelpLink",
|
||||
"parameterType": 1
|
||||
},
|
||||
{
|
||||
"fieldName": "TagsArr",
|
||||
"parameterName": "TagsArr",
|
||||
"parameterType": 1
|
||||
}
|
||||
],
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"gridSettings": {
|
||||
"formatters": [
|
||||
{
|
||||
"columnMatch": "TimeGenerated",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "22.2851ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "CheckId",
|
||||
"formatter": 18,
|
||||
"formatOptions": {
|
||||
"linkColumn": "HelpLink",
|
||||
"linkTarget": "Url",
|
||||
"linkLabel": "",
|
||||
"linkIsContextBlade": false,
|
||||
"thresholdsOptions": "icons",
|
||||
"thresholdsGrid": [
|
||||
{
|
||||
"operator": "Default",
|
||||
"thresholdValue": null,
|
||||
"representation": "Hyperlink",
|
||||
"text": "{0}{1}"
|
||||
}
|
||||
],
|
||||
"customColumnWidthSetting": "14.8566ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "DisplayString",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "29.7131ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "TargetName",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "20.5706ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "Severity",
|
||||
"formatter": 18,
|
||||
"formatOptions": {
|
||||
"thresholdsOptions": "icons",
|
||||
"thresholdsGrid": [
|
||||
{
|
||||
"operator": "==",
|
||||
"thresholdValue": "High",
|
||||
"representation": "Sev0",
|
||||
"text": "{0}"
|
||||
},
|
||||
{
|
||||
"operator": "==",
|
||||
"thresholdValue": "Medium",
|
||||
"representation": "Sev1",
|
||||
"text": "{0}"
|
||||
},
|
||||
{
|
||||
"operator": "==",
|
||||
"thresholdValue": "Low",
|
||||
"representation": "Sev2",
|
||||
"text": "{0}"
|
||||
},
|
||||
{
|
||||
"operator": "==",
|
||||
"thresholdValue": "Information",
|
||||
"representation": "Sev3",
|
||||
"text": "{0}"
|
||||
},
|
||||
{
|
||||
"operator": "Default",
|
||||
"thresholdValue": null,
|
||||
"representation": "success",
|
||||
"text": "{0}{1}"
|
||||
}
|
||||
],
|
||||
"customColumnWidthSetting": "16.2846ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "TargetType",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "16ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "Description",
|
||||
"formatter": 5
|
||||
},
|
||||
{
|
||||
"columnMatch": "Message",
|
||||
"formatter": 5
|
||||
},
|
||||
{
|
||||
"columnMatch": "HelpLink",
|
||||
"formatter": 5
|
||||
},
|
||||
{
|
||||
"columnMatch": "TagsArr",
|
||||
"formatter": 5
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"customWidth": "65",
|
||||
"name": "query - 0"
|
||||
},
|
||||
{
|
||||
"columnMatch": "Sev",
|
||||
"formatter": 8,
|
||||
"formatOptions": {
|
||||
"min": 0,
|
||||
"max": 40,
|
||||
"palette": "coldHot"
|
||||
"type": 12,
|
||||
"content": {
|
||||
"version": "NotebookGroup/1.0",
|
||||
"groupType": "editable",
|
||||
"items": [
|
||||
{
|
||||
"type": 12,
|
||||
"content": {
|
||||
"version": "NotebookGroup/1.0",
|
||||
"groupType": "editable",
|
||||
"title": " Description",
|
||||
"items": [
|
||||
{
|
||||
"type": 1,
|
||||
"content": {
|
||||
"json": "{Description}",
|
||||
"style": "info"
|
||||
},
|
||||
"name": "Description",
|
||||
"styleSettings": {
|
||||
"showBorder": true
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"name": "Description"
|
||||
},
|
||||
{
|
||||
"type": 12,
|
||||
"content": {
|
||||
"version": "NotebookGroup/1.0",
|
||||
"groupType": "editable",
|
||||
"title": " Message",
|
||||
"items": [
|
||||
{
|
||||
"type": 1,
|
||||
"content": {
|
||||
"json": "{Message}",
|
||||
"style": "warning"
|
||||
},
|
||||
"name": "text - 1"
|
||||
}
|
||||
]
|
||||
},
|
||||
"name": "Message"
|
||||
},
|
||||
{
|
||||
"type": 12,
|
||||
"content": {
|
||||
"version": "NotebookGroup/1.0",
|
||||
"groupType": "editable",
|
||||
"title": "Tags",
|
||||
"items": [
|
||||
{
|
||||
"type": 1,
|
||||
"content": {
|
||||
"json": "{TagsArr}"
|
||||
},
|
||||
"name": "Tags"
|
||||
}
|
||||
]
|
||||
},
|
||||
"name": "Tags"
|
||||
},
|
||||
{
|
||||
"type": 12,
|
||||
"content": {
|
||||
"version": "NotebookGroup/1.0",
|
||||
"groupType": "editable",
|
||||
"title": " Help Link",
|
||||
"items": [
|
||||
{
|
||||
"type": 1,
|
||||
"content": {
|
||||
"json": "{HelpLink}"
|
||||
},
|
||||
"name": "text - 2"
|
||||
}
|
||||
]
|
||||
},
|
||||
"name": "HelpLink"
|
||||
}
|
||||
]
|
||||
},
|
||||
"customWidth": "35",
|
||||
"conditionalVisibility": {
|
||||
"parameterName": "Message",
|
||||
"comparison": "isNotEqualTo",
|
||||
"value": ""
|
||||
},
|
||||
"name": "Details",
|
||||
"styleSettings": {
|
||||
"showBorder": true
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"chartSettings": {
|
||||
"seriesLabelSettings": [
|
||||
{
|
||||
"seriesName": "Medium",
|
||||
"color": "orange"
|
||||
},
|
||||
{
|
||||
"seriesName": "Low",
|
||||
"color": "blue"
|
||||
},
|
||||
{
|
||||
"seriesName": "High",
|
||||
"color": "redBright"
|
||||
},
|
||||
{
|
||||
"seriesName": "Information",
|
||||
"color": "blueDark"
|
||||
}
|
||||
],
|
||||
"ySettings": {
|
||||
"numberFormatSettings": {
|
||||
"unit": 0,
|
||||
"options": {
|
||||
"style": "decimal",
|
||||
"useGrouping": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"customWidth": "33",
|
||||
"name": "query - 4"
|
||||
},
|
||||
{
|
||||
"type": 3,
|
||||
"content": {
|
||||
"version": "KqlItem/1.0",
|
||||
"query": "\r\nSqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0 \r\n and Severity == \"{severity}\"\r\n | order by Sev, CheckId\r\n | project CheckId, Description, _ResourceId, AsmtId, Sev, Severity \r\n",
|
||||
"size": 3,
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
]
|
||||
},
|
||||
"name": "query - 8"
|
||||
},
|
||||
{
|
||||
"type": 3,
|
||||
"content": {
|
||||
"version": "KqlItem/1.0",
|
||||
"query": "SqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0 \r\n and TargetType == \"Server\"\r\n | order by Sev, CheckId\r\n | summarize count() by TargetName \r\n",
|
||||
"size": 3,
|
||||
"title": "Issues by server",
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"visualization": "piechart",
|
||||
"chartSettings": {
|
||||
"seriesLabelSettings": [
|
||||
{
|
||||
"seriesName": "Protected",
|
||||
"color": "green"
|
||||
},
|
||||
{
|
||||
"seriesName": "Unknown",
|
||||
"color": "gray"
|
||||
},
|
||||
{
|
||||
"seriesName": "Not Protected",
|
||||
"color": "redBright"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"customWidth": "33",
|
||||
"name": "query - 4 - Copy"
|
||||
},
|
||||
{
|
||||
"type": 3,
|
||||
"content": {
|
||||
"version": "KqlItem/1.0",
|
||||
"query": "SqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0 \r\n and TargetType == \"Database\"\r\n | order by Sev, CheckId\r\n | summarize count() by TargetName \r\n",
|
||||
"size": 3,
|
||||
"title": "Issues by Database",
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"visualization": "piechart"
|
||||
},
|
||||
"customWidth": "33",
|
||||
"name": "query - 4 - Copy - Copy"
|
||||
},
|
||||
{
|
||||
"type": 9,
|
||||
"content": {
|
||||
"version": "KqlParameterItem/1.0",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"parameters": [
|
||||
{
|
||||
"id": "ced45d66-52da-4f9c-b473-6781309a78cc",
|
||||
"version": "KqlParameterItem/1.0",
|
||||
"name": "CheckId",
|
||||
"type": 2,
|
||||
"isRequired": true,
|
||||
"query": "\r\nSqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0 \r\n | distinct (CheckId)\r\n|order by CheckId asc\r\n\r\n\r\n ",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"typeSettings": {
|
||||
"additionalResourceOptions": [],
|
||||
"showDefault": false
|
||||
},
|
||||
"timeContext": {
|
||||
"durationMs": 2592000000
|
||||
},
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"value": "DbIntegrity"
|
||||
}
|
||||
],
|
||||
"style": "pills",
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces"
|
||||
},
|
||||
"name": "paarameter_CheckId"
|
||||
},
|
||||
{
|
||||
"type": 3,
|
||||
"content": {
|
||||
"version": "KqlItem/1.0",
|
||||
"query": "SqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0 \r\n and CheckId ==\"{CheckId}\"\r\n | project _ResourceId, tostring(DisplayString), TargetType, CheckId\r\n | summarize count() by _ResourceId, tostring(DisplayString), TargetType, CheckId\r\n | order by CheckId",
|
||||
"size": 3,
|
||||
"title": "sqlmonitoring",
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
],
|
||||
"gridSettings": {
|
||||
"formatters": [
|
||||
{
|
||||
"columnMatch": "createdAt",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "21.1429ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "AzureArcServer",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "20.1429ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "SQLInstance",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "23.4286ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "version",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "21ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "currentVersion",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "20ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "patchLevel",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "17ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "edition",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "11.4286ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "vcores",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "9.7143ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "subscriptionId",
|
||||
"formatter": 13,
|
||||
"formatOptions": {
|
||||
"linkTarget": "Resource",
|
||||
"showIcon": true,
|
||||
"customColumnWidthSetting": "26.5714ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "licenseType",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "14.4286ch"
|
||||
}
|
||||
},
|
||||
{
|
||||
"columnMatch": "azureDefenderStatus",
|
||||
"formatter": 0,
|
||||
"formatOptions": {
|
||||
"customColumnWidthSetting": "25ch"
|
||||
}
|
||||
}
|
||||
],
|
||||
"rowLimit": 500,
|
||||
"filter": true
|
||||
}
|
||||
},
|
||||
"name": "query - 1"
|
||||
},
|
||||
{
|
||||
"type": 3,
|
||||
"content": {
|
||||
"version": "KqlItem/1.0",
|
||||
"query": "SqlAssessment_CL\r\n| extend asmt = parse_csv(RawData)\r\n| extend\r\n AsmtId=tostring(asmt[1]),\r\n CheckId=tostring(asmt[2]),\r\n DisplayString=asmt[3],\r\n Description=tostring(asmt[4]),\r\n HelpLink=asmt[5],\r\n TargetType=case(asmt[6] == 1, \"Server\", asmt[6] == 2, \"Database\", \"\"),\r\n TargetName=tostring(asmt[7]), \r\n Severity=case(asmt[8] == 30, \"High\", asmt[8] == 20, \"Medium\", asmt[8] == 10, \"Low\", asmt[8] == 0, \"Information\", asmt[8] == 1, \"Warning\", asmt[8] == 2, \"Critical\", \"Passed\"),\r\n Message=tostring(asmt[9]),\r\n TagsArr=split(tostring(asmt[10]), \",\"),\r\n Sev = toint(asmt[8])\r\n | order by CheckId, _ResourceId\r\n | join kind=inner\r\n (\r\n SqlAssessment_CL\r\n | extend asmt = parse_csv(RawData)\r\n | extend\r\n AsmtId=tostring(asmt[1]) \r\n | summarize arg_max(TimeGenerated, *) by _ResourceId\r\n | project AsmtId\r\n ) on AsmtId\r\n |where Sev >= 0\r\n | order by Sev, CheckId",
|
||||
"size": 0,
|
||||
"queryType": 0,
|
||||
"resourceType": "microsoft.operationalinsights/workspaces",
|
||||
"crossComponentResources": [
|
||||
"{LogAnalitycsWorkpace}"
|
||||
]
|
||||
},
|
||||
"name": "query - 0"
|
||||
}
|
||||
],
|
||||
"fallbackResourceIds": [
|
||||
"azure monitor"
|
||||
],
|
||||
"fromTemplateId": "sentinel-UserWorkbook",
|
||||
"$schema": "https://github.com/Microsoft/Application-Insights-Workbooks/blob/master/schema/workbook.json"
|
||||
}
|
||||
"name": "Issues"
|
||||
}
|
||||
],
|
||||
"fallbackResourceIds": [
|
||||
"azure monitor"
|
||||
],
|
||||
"fromTemplateId": "sentinel-UserWorkbook",
|
||||
"$schema": "https://github.com/Microsoft/Application-Insights-Workbooks/blob/master/schema/workbook.json"
|
||||
}
|
||||
@@ -14,7 +14,8 @@ This section contains workbooks to use with Azure Arc SQL Servers. Please follow
|
||||
|
||||
|
||||
## Azure Arc SQL Best Practices Assessment
|
||||

|
||||

|
||||

|
||||
|
||||
|
||||
## Disclaimers
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 126 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 188 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 180 KiB |
Reference in New Issue
Block a user