기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Azure 모니터 데이터 원본에 연결
Azure 모니터 데이터 소스는 Azure 클라우드의 여러 서비스를 지원합니다.
-
Azure 모니터 서비스는 Azure 리소스를 모니터링하기 위한 단일 소스를 제공하는 플랫폼 서비스입니다. 자세한 정보는 Azure 모니터 서비스 쿼리을 참조하세요.
-
Application Insights 서버는 여러 플랫폼의 웹 개발자를 위한 확장 가능한 APM (응용 프로그램 성능 관리) 서비스로서, 라이브 웹 응용 프로그램을 모니터링하는 데 사용할 수 있으며, 성능 이상을 자동으로 탐지합니다. 자세한 정보는 애플리케이션 인사이트 분석 서비스 쿼리을 참조하세요.
-
Azure 로그 분석 (또는 Azure 로그) 을 사용하면 Azure Monitor에서 수집한 로그 데이터에 액세스할 수 있습니다. 자세한 정보는 Azure 로그 분석 서비스 쿼리을 참조하세요.
-
애플리케이션 인사이트 분석 서비스를 사용하면 Azure Log Analytics에 사용되는 것과 동일한 쿼리 언어를 사용하여 애플리케이션 인사이트 데이터를
쿼리할 수 있습니다. 자세한 정보는 애플리케이션 인사이트 분석 서비스 쿼리을 참조하세요.
데이터 소스 추가
데이터 소스는 네 가지 서비스의 지표에 액세스할 수 있습니다. 사용하는 서비스에 대한 액세스를 구성할 수 있습니다. Azure AD에서 동일한 자격 증명을 설정한 경우 여러 서비스에 동일한 자격 증명을 사용할 수도 있습니다.
-
Grafana 기본 메뉴에서 액세스하면 새로 설치된 데이터 소스를 데이터 소스 섹션에 즉시 추가할 수 있습니다. 그런 다음 오른쪽 상단의 데이터 소스 추가 버튼을 선택합니다. Azure Monitor 데이터 원본은 데이터 원본 목록의 클라우드 섹션에서 선택할 수 있습니다.
-
이름 필드에 Grafana는 데이터 소스의 이름 또는
Azure Monitor
다음과 같은 이름을 자동으로 입력합니다.Azure Monitor - 3
여러 데이터 소스를 구성하는 경우 이름을 좀 더 유용한 이름으로 변경하세요. -
Azure Monitor를 사용하는 경우 Azure 포털에서 제공하는 네 가지 정보가 필요합니다 (자세한 지침은 이전에 제공된 링크 참조).
-
테넌트 ID (Azure 액티브 디렉터리, 속성, 디렉터리 ID)
-
클라이언트 ID (Azure 액티브 디렉터리, 앱 등록, 앱 선택, 애플리케이션 ID)
-
클라이언트 암호 (Azure Active Directory, 앱 등록, 앱 선택, 키)
-
기본 구독 ID (구독, 구독 선택, 개요, 구독 ID)
-
-
이 네 가지 항목을 Azure Monitor API 세부 정보 섹션의 필드에 붙여넣습니다.
-
구독 ID는 쿼리별로 변경할 수 있습니다. 데이터 원본을 저장하고 페이지를 새로 고쳐 지정된 클라이언트 ID에 사용할 수 있는 구독 목록을 확인합니다.
-
-
Azure Log Analytics 서비스도 사용하는 경우 이 두 구성 값을 지정하거나 이전 단계의 클라이언트 ID 및 암호를 다시 사용해야 합니다.
-
클라이언트 ID (Azure Active Directory, 앱 등록, 앱 선택, 애플리케이션 ID)
-
클라이언트 암호 (Azure Active Directory, 앱 등록, 앱 선택, 키, 키 생성, 클라이언트 암호 사용)
-
-
애플리케이션 인사이트를 사용하는 경우 Azure Portal에서 제공하는 두 가지 정보가 필요합니다 (자세한 지침은 앞서 제공된 링크 참조).
-
애플리케이션 ID
-
API 키
-
-
이 두 항목을 애플리케이션 인사이트 API 세부 정보 섹션의 해당 필드에 붙여넣습니다.
-
저장 및 테스트 버튼을 선택하여 구성 세부 정보가 올바른지 테스트하십시오.
또는 4단계에서 새 Azure Active Directory 앱을 만드는 경우 Azure CLI를
az ad sp create-for-rbac -n "http://localhost:3000"
서비스 선택
패널의 쿼리 편집기에서 Azure Monitor 데이터 원본을 선택한 후 첫 번째 단계는 서비스를 선택하는 것입니다. 다음과 같은 네 가지 옵션이 있습니다.
-
Azure Monitor
-
Application Insights
-
Azure Log Analytics
-
Insights Analytics
선택한 옵션에 따라 쿼리 편집기가 달라집니다. Azure 모니터가 기본값입니다.
Azure 모니터 서비스 쿼리
Azure 모니터 서비스는 실행 중인 모든 Azure 서비스에 대한 메트릭을 제공합니다. 이를 통해 Azure의 응용 프로그램이 어떻게 작동하는지 이해하고 응용 프로그램에 영향을 미치는 문제를 사전에 찾아낼 수 있습니다.
Azure Monitor 자격 증명으로 여러 구독에 액세스할 수 있는 경우 먼저 적절한 구독을 선택하세요.
서비스에서 얻을 수 있는 지표의 예는 다음과 같습니다.
-
Microsoft.Compute/virtualMachines - Percentage CPU
-
Microsoft.Network/networkInterfaces - Bytes sent
-
Microsoft.Storage/storageAccounts - Used Capacity
쿼리 편집기를 사용하면 여러 차원을 쿼리하여 해당 측정항목을 지원하는 측정항목을 찾을 수 있습니다. 여러 차원을 지원하는 메트릭은 Azure Monitor 지원 메트릭 목록에 나열되어 있고 메트릭의
Azure Monitor의 별칭을 사용하여 범례 키의 형식을 지정합니다.
Azure 모니터 API의 기본 범례 형식은 다음과 같습니다.
metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}
길이가 길 수 있지만 별칭을 사용하여 이 형식을 변경할 수 있습니다. 범례 형식 필드에서 다음 별칭을 원하는 방식으로 결합할 수 있습니다.
Azure 모니터 예제:
-
Blob Type: {{ blobtype }}
-
{{ resourcegroup }} - {{ resourcename }}
Azure 모니터의 앨리어스 패턴
-
{{ resourcegroup }}
= 리소스 그룹의 값으로 대체됩니다. -
{{ namespace }}
= 네임스페이스의 값으로 대체됩니다 (예: Microsoft.Compute/VirtualMachines). -
{{ resourcename }}
= 리소스 이름 값으로 대체됨 -
{{ metric }}
= 지표 이름으로 대체 (예: 백분율 CPU) -
{{ dimensionname }}
= 7.1+ 이전 버전과의 호환성을 위해 기존 버전이 첫 번째 차원의 키/레이블 (키/레이블을 기준으로 정렬) 으로 대체됨 (예: blobtype) -
{{ dimensionvalue }}
= 7.1+ 이전의 레거시 (이전 버전과의 호환성을 위해) 는 1차원 값 (키/레이블을 기준으로 정렬) 으로 대체 (예:) BlockBlob -
{{ arbitraryDim }}
= 7.1+에서 사용할 수 있으며 해당 차원의 값으로 대체되었습니다. (예: 가{{ blobtype }}
됨) BlockBlob
Azure 모니터용 템플릿 변수 만들기
메트릭 쿼리에서 서버, 응용 프로그램 및 센서 이름과 같은 항목을 하드코딩하는 대신 변수를 대신 사용할 수 있습니다. 변수는 대시보드 상단의 드롭다운 선택 상자로 표시됩니다. 이 드롭다운 상자를 사용하여 대시보드에 표시되는 데이터를 변경할 수 있습니다.
참고로 Azure Monitor 서비스는 아직 다중 값을 지원하지 않습니다. 여러 시계열 (예: server1 및 server2의 메트릭) 을 시각화하려면 동일한 그래프나 테이블에서 볼 수 있도록 여러 개의 쿼리를 추가하세요.
Azure Monitor 데이터 원본 플러그인은 변수 편집 보기의 쿼리 필드에 지정할 수 있는 다음과 같은 쿼리를 제공합니다. 이를 사용하여 변수의 옵션 목록을 채울 수 있습니다.
명칭 | 설명 |
---|---|
Subscriptions()
|
구독 목록을 반환합니다. |
ResourceGroups()
|
리소스 그룹 목록을 반환합니다. |
ResourceGroups(12345678-aaaa-bbbb-cccc-123456789aaa)
|
지정된 구독의 리소스 그룹 목록을 반환합니다. |
Namespaces(aResourceGroup)
|
지정된 리소스 그룹의 네임스페이스 목록을 반환합니다. |
Namespaces(12345678-aaaa-bbbb-cccc-123456789aaa,
aResourceGroup)
|
지정된 리소스 그룹 및 구독의 네임스페이스 목록을 반환합니다. |
ResourceNames(aResourceGroup, aNamespace)
|
리소스 이름 목록을 반환합니다. |
ResourceNames(12345678-aaaa-bbbb-cccc-123456789aaa,
aResourceGroup, aNamespace)
|
지정된 구독의 리소스 이름 목록을 반환합니다. |
MetricNamespace(aResourceGroup, aNamespace,
aResourceName)
|
메트릭 네임스페이스 목록을 반환합니다. |
MetricNamespace(12345678-aaaa-bbbb-cccc-123456789aaa,
aResourceGroup, aNamespace, aResourceName)
|
지정된 구독에 대한 메트릭 네임스페이스 목록을 반환합니다. |
MetricNames(aResourceGroup, aNamespace,
aResourceName)
|
메트릭 이름 목록을 반환합니다. |
MetricNames(12345678-aaaa-bbbb-cccc-123456789aaa,
aResourceGroup, aNamespace, aResourceName)
|
지정된 구독의 메트릭 이름 목록을 반환합니다. |
예:
-
Resource Groups 쿼리:
ResourceGroups()
-
메트릭 이름 변수 전달:
Namespaces(cosmo)
-
체인 템플릿 변수:
ResourceNames($rg, $ns)
-
매개 변수를 인용하지 마십시오.
MetricNames(hg, Microsoft.Network/publicIPAddresses, grafanaIP)
템플릿 및 템플릿 변수에 대한 자세한 내용은 을 참조하십시오템플릿.
지원되는 Azure 모니터 메트릭 목록
Azure Monitor API에서 반환되는 모든 메트릭에 값이 있는 것은 아닙니다. 쿼리를 더 쉽게 작성할 수 있도록 Grafana 데이터 소스에는 지원되는 Azure Monitor 메트릭 목록이 있으며 값이 없을 메트릭은 무시합니다. 이 목록은 Azure 클라우드에 새 서비스와 메트릭이 추가되면 정기적으로 업데이트됩니다.
Azure 모니터 경고
Grafana 알림은 Azure 모니터 서비스에 지원됩니다. 이는 Azure 알림 지원이 아닙니다. Grafana 경고에 대한 자세한 내용은 을 참조하십시오. Grafana 알림
애플리케이션 인사이트 서비스 쿼리
애플리케이션 인사이트에 대한 별칭을 사용하여 범례 키의 형식 지정
기본 범례 형식은 다음과 같습니다.
metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}
범례 형식 필드에서 다음 별칭을 원하는 대로 조합할 수 있습니다.
애플리케이션 인사이트 예제:
-
city: {{ client/city }}
-
{{ metric }} [Location: {{ client/countryOrRegion }}, {{ client/city }}]
애플리케이션 인사이트의 별칭 패턴
-
{{ groupbyvalue }}
= Grafana 7.1 이상 버전의 레거시 (이전 버전과의 호환성을 위해) 는 첫 번째 차원의 키/레이블 (키/레이블을 기준으로 정렬) 으로 대체되었습니다. -
{{ groupbyname }}
= Grafana 7.1 이상 버전의 레거시 (이전 버전과의 호환성을 위해) 가 첫 번째 차원의 값 (키/레이블을 기준으로 정렬) 으로 대체됨 (예:) BlockBlob -
{{ metric }}
= 지표 이름으로 대체 (예: 요청/개수) -
{{ arbitraryDim }}
= 7.1+에서 사용 가능하며 해당 차원의 값으로 대체되었습니다. (예: 시카고가{{ client/city }}
됨)
애플리케이션 인사이트를 위한 필터 표현식
필터 필드는 OData 필터 표현식을 사용합니다.
예:
-
client/city eq 'Boydton'
-
client/city ne 'Boydton'
-
client/city ne 'Boydton' and client/city ne 'Dublin'
-
client/city eq 'Boydton' or client/city eq 'Dublin'
애플리케이션 인사이트를 위한 변수를 사용한 템플릿
변수 편집 보기의 쿼리 필드에서 다음 쿼리 중 하나를 사용하십시오.
템플릿 및 템플릿 변수에 대한 자세한 내용은 을 참조하십시오템플릿.
명칭 | 설명 |
---|---|
AppInsightsMetricNames()
|
메트릭 이름 목록을 반환합니다. |
AppInsightsGroupBys(aMetricName)
|
지정된 지표 이름의 group by 조항 목록을 반환합니다. |
예:
-
지표 이름 쿼리:
AppInsightsMetricNames()
-
지표 이름 변수 전달:
AppInsightsGroupBys(requests/count)
-
체인 템플릿 변수:
AppInsightsGroupBys($metricnames)
애플리케이션 인사이트 알림
애플리케이션 인사이트에는 Grafana 알림이 지원됩니다. 이는 Azure 알림 지원이 아닙니다. Grafana 경고에 대한 자세한 내용은 을 참조하십시오. Grafana 알림
Azure 로그 분석 서비스 쿼리
쿼리는 새로운 Azure 로그 애널리틱스 (또는 KustoDB
자격 증명으로 여러 구독에 액세스할 수 있는 경우 쿼리를 입력하기 전에 적절한 구독을 선택하십시오.
시계열 쿼리
시계열 쿼리는 그래프 패널 및 기타 패널 (예: 패널) SingleStat 용입니다. 각 쿼리는 최소한 날짜/시간 열과 숫자 값 열을 포함해야 합니다. 결과는 날짜/시간 열을 기준으로 오름차순으로 정렬해야 합니다.
다음 코드 예제는 집계된 수를 시간별로 그룹화하여 반환하는 쿼리를 보여줍니다.
Perf | where $__timeFilter(TimeGenerated) | summarize count() by bin(TimeGenerated, 1h) | order by TimeGenerated asc
쿼리에는 숫자가 아니거나 날짜시간이 아닌 열이 하나 이상 있을 수도 있으며, 이러한 열은 차원으로 간주되어 응답에서 레이블이 됩니다. 시간, 컴퓨터, 시간별로 그룹화된 집계 수를 반환하는 쿼리를 예로 들 수 있습니다. CounterName
Perf | where $__timeFilter(TimeGenerated) | summarize count() by bin(TimeGenerated, 1h), Computer, CounterName | order by TimeGenerated asc
숫자 값 열 (다중 차원 포함 또는 제외) 을 추가로 선택할 수도 있습니다. 예를 들어, 시간 CounterName, 컴퓨터 및 InstanceName 다음을 기준으로 개수 및 평균값을 구하는 경우를 예로 들 수 있습니다.
Perf | where $__timeFilter(TimeGenerated) | summarize Samples=count(), ["Avg Value"]=avg(CounterValue) by bin(TimeGenerated, $__interval), Computer, CounterName, InstanceName | order by TimeGenerated asc
참고
팁: 이전 쿼리에서는 Kusto 구문 및 Samples=count()
["Avg
Value"]=...
를 사용하여 해당 열의 이름을 변경했습니다. 두 번째 구문은 공백을 허용합니다. 이렇게 하면 Grafana가 사용하는 메트릭의 이름이 변경됩니다. 따라서 시리즈 범례 및 테이블 열과 같은 항목이 지정한 것과 일치합니다. 이 예제에서는 Samples
가 대신 표시됩니다_count
.
테이블 쿼리
테이블 쿼리는 주로 테이블 패널에서 사용되며 열과 행 목록을 표시합니다. 이 예제 쿼리는 지정된 열 6개가 있는 행을 반환합니다.
AzureActivity | where $__timeFilter() | project TimeGenerated, ResourceGroup, Category, OperationName, ActivityStatus, Caller | order by TimeGenerated desc
Log Analytics의 표시 이름 형식 지정
기본 표시 이름 형식은 다음과 같습니다.
metricName{dimensionName=dimensionValue,dimensionTwoName=DimensionTwoValue}
표시 이름 필드 옵션을 사용하여 사용자 지정할 수 있습니다.
Azure 로그 분석 매크로
쿼리를 더 쉽게 작성할 수 있도록 Grafana는 쿼리의 where 절에서 사용할 수 있는 여러 매크로를 제공합니다.
-
$__timeFilter()
— Grafana 시간 선택기에서 시작 및 종료 날짜/시간이TimeGenerated ≥ datetime(2018-06-05T18:09:58.907Z) and
TimeGenerated ≤ datetime(2018-06-05T20:09:58.907Z)
있는 위치로 확장합니다. -
$__timeFilter(datetimeColumn)
— Grafana 시간 선택기에서 시작 및 종료 날짜/시간이datetimeColumn ≥ datetime(2018-06-05T18:09:58.907Z) and
datetimeColumn ≤ datetime(2018-06-05T20:09:58.907Z)
있는 위치로 확장합니다. -
$__timeFrom()
— Grafana 피커에서 시작 날짜/시간을 반환합니다. 예:datetime(2018-06-05T18:09:58.907Z)
. -
$__timeTo()
— Grafana 피커에서 시작 날짜/시간을 반환합니다. 예:datetime(2018-06-05T20:09:58.907Z)
. -
$__escapeMulti($myVar)
— 잘못된 문자가 포함된 다중 값 템플릿 변수와 함께 사용됩니다. 다음 두 값이 문자열로'\\grafana-vm\Network(eth0)\Total','\\hello!'
구성된 경우$myVar
다음과 같이 확장됩니다.@'\\grafana-vm\Network(eth0)\Total', @'\\hello!'
단일 값 변수를 사용하는 경우 이 매크로가 필요 없는 경우 대신 변수를 인라인으로 이스케이프하십시오.@'\$myVar'
-
$__contains(colName, $myVar)
— 다중 값 템플릿 변수와 함께 사용됩니다. 값이$myVar
'value1','value2'
있는 경우 다음과 같이 확장됩니다.colName in ('value1','value2')
모두 옵션을 사용하는 경우 모든 옵션 포함 확인란을 선택하고 사용자 지정 모든 값 필드에 다음
all
값을 입력합니다. 값이$myVar
all
있는 경우 매크로가 대신 로1 == 1
확장됩니다. 옵션이 많은 템플릿 변수의 경우 이렇게 하면 “where.. in” 절을 크게 만들지 않아 쿼리 성능이 향상됩니다.
Azure 로그 애널리틱스의 기본 제공 변수
Azure 로그 애널리틱스 쿼리에서 사용할 수 있는 몇 가지 Grafana 변수도 있습니다.
-
$__interval
- Grafana는 쿼리에서 시간별로 그룹화하는 데 사용할 수 있는 최소 시간 그레인을 계산합니다. bin 함수에서 사용할 수1h
있는5m
또는 같은 타임 그레인을 반환합니다 (예:summarize count() by bin(TimeGenerated, $__interval)
구간 변수에 대한 자세한 내용은 을 참조하십시오간격 변수 추가.
Azure Log Analytics용 변수를 사용한 템플릿
값 목록을 반환하는 모든 로그 분석 쿼리는 변수 편집 보기의 쿼리 필드에서 사용할 수 있습니다. 작업 영역 목록을 반환하는 로그 분석용 Grafana 함수도 하나 있습니다.
템플릿 및 템플릿 변수에 대한 자세한 내용은 을 참조하십시오. 템플릿 및 변수
명칭 | 설명 |
---|---|
workspaces()
|
기본 구독의 작업 영역 목록을 반환합니다. |
workspaces(12345678-aaaa-bbbb-cccc-123456789aaa)
|
지정된 구독의 작업 영역 목록을 반환합니다 (매개 변수는 인용되거나 인용되지 않을 수 있음). |
다음 표에는 예제 변수 쿼리가 나와 있습니다.
Query | 설명 |
---|---|
subscriptions()
|
Azure 구독 목록을 반환합니다. |
workspaces()
|
기본 구독을 위한 작업 영역 목록을 반환합니다. |
workspaces("12345678-aaaa-bbbb-cccc-123456789aaa")
|
지정된 구독의 작업 영역 목록을 반환합니다. |
workspaces("$subscription")
|
구독 파라미터용 템플릿 변수 포함. |
workspace("myWorkspace").Heartbeat \|
distinct Computer
|
가상 머신 목록을 반환합니다. |
workspace("$workspace").Heartbeat \|
distinct Computer
|
템플릿 변수를 사용하여 가상 시스템 목록을 반환합니다. |
workspace("$workspace").Perf \| distinct
ObjectName
|
Perf 테이블에서 개체 목록을 반환합니다. |
workspace("$workspace").Perf \| where
ObjectName == "$object" \| distinct
CounterName
|
Perf 테이블에서 메트릭 이름 목록을 반환합니다. |
다음 코드 예제는 변수를 사용한 시계열 쿼리를 보여줍니다.
Perf | where ObjectName == "$object" and CounterName == "$metric" | where TimeGenerated >= $__timeFrom() and TimeGenerated <= $__timeTo() | where $__contains(Computer, $computer) | summarize avg(CounterValue) by bin(TimeGenerated, $__interval), Computer | order by TimeGenerated asc
Grafana 패널에서 Azure 포털의 로그 분석 쿼리 편집기로 딥링킹
패널에서 시계열을 선택하면 Azure Portal에서 보기 링크가 포함된 컨텍스트 메뉴가 표시됩니다. 이 링크를 선택하면 Azure Portal에서 Azure Log Analytics 쿼리 편집기가 열리고 Grafana 패널에서 쿼리가 실행됩니다.
현재 Azure 포털에 로그인하지 않은 경우 링크를 클릭하면 로그인 페이지가 열립니다. 제공된 링크는 모든 계정에 유효하지만, 계정에 쿼리에 지정된 Azure Log Analytics 작업 영역에 대한 액세스 권한이 있는 경우에만 쿼리가 표시됩니다.
Azure 로그 애널리틱스 경고
애플리케이션 인사이트에는 Grafana 알림이 지원됩니다. 이는 Azure 알림 지원이 아닙니다. Grafana 작업 공간에서의 경고에 대한 자세한 내용은 을 참조하십시오. Grafana 알림
애플리케이션 인사이트 분석 서비스 쿼리
서비스 유형을 Insights Analytics로 변경하면 로그 분석 서비스와 유사한 편집기를 사용할 수 있습니다. 또한 이 서비스는 Kusto 언어를 사용하므로 Application Insights Analytics 데이터를 대신 쿼리한다는 점을 제외하면 데이터 쿼리 지침은 동일합니다. Azure 로그 분석 서비스 쿼리