Azure Monitor 로그에서 테이블 및 열 추가 또는 삭제
이 문서의 내용
데이터 수집 규칙 을 사용하면 데이터를 Azure 테이블 또는 사용자 지정 표 로 보내기 전에 로그 데이터를 필터링하고 변환 할 수 있습니다. 이 문서에서는 사용자 지정 표를 만들고 Log Analytics 작업 영역의 테이블에 사용자 지정 열을 추가하는 방법을 설명합니다.
Important
테이블 스키마를 업데이트할 때마다 테이블에 데이터를 보내는 데이터 수집 규칙을 업데이트 해야 합니다. 데이터 수집 규칙에서 정의하는 테이블 스키마는 Azure Monitor가 대상 테이블로 데이터를 스트리밍하는 방법을 결정합니다. Azure Monitor는 테이블 스키마를 변경할 때 데이터 수집 규칙을 자동으로 업데이트하지 않습니다.
필수 조건
사용자 지정 테이블을 만들려면 다음이 필요합니다.
최소한 기여자 권한 이 있는 Log Analytics 작업 영역.
DCE(데이터 수집 엔드포인트) .
사용자 지정 테이블에 대한 샘플 레코드가 하나 이상 있는 JSON 파일입니다. 이는 다음과 유사합니다.
[
{
"TimeGenerated": "supported_datetime_format",
"<column_name_1>": "<column_name_1_value>",
"<column_name_2>": "<column_name_2_value>"
},
{
"TimeGenerated": "supported_datetime_format",
"<column_name_1>": "<column_name_1_value>",
"<column_name_2>": "<column_name_2_value>"
},
{
"TimeGenerated": "supported_datetime_format",
"<column_name_1>": "<column_name_1_value>",
"<column_name_2>": "<column_name_2_value>"
}
]
Log Analytics 작업 영역의 모든 테이블에는 TimeGenerated
라는 열이 있어야 합니다. 샘플 데이터에 TimeGenerated
라는 열이 있는 경우 이 값을 사용하여 레코드의 수집 시간을 식별합니다. 그렇지 않은 경우 테이블에 대한 DCR의 변환에 TimeGenerated
열이 추가됩니다. TimeGenerated
형식에 대한 자세한 내용은 지원되는 날짜/시간 형식 을 참조하세요.
사용자 지정 테이블 만들기
Azure 테이블에는 미리 정의된 스키마가 있습니다. 다른 스키마에 로그 데이터를 저장하려면 데이터 수집 규칙을 사용하여 데이터를 컬렉션, 변환하고 Log Analytics 작업 영역의 사용자 지정 표로 보내는 방법을 정의합니다. 보조 계획으로 사용자 지정 테이블을 만들려면 보조 계획으로 테이블 설정(미리 보기) 을 참조하세요.
Important
사용자 지정 테이블에는 _CL ; 접미사(예: tablename_CL )가 있습니다. Azure Portal은 테이블 이름에 _CL 접미사를 자동으로 추가합니다. 다른 메서드를 사용하여 사용자 지정 테이블을 만드는 경우 _CL 접미사를 직접 추가해야 합니다. 데이터 수집 규칙의 DataFlows Streams 속성에 있는 tablename_CL 은 Log Analytics 작업 영역의 tablename_CL 이름과 일치해야 합니다.
Warning
테이블 이름은 청구 목적으로 사용되므로 중요한 정보를 포함하지 않아야 합니다.
Azure Portal을 사용하여 사용자 지정 테이블을 만들려면 다음을 수행합니다.
Log Analytics 작업 영역 메뉴에서 테이블 을 선택합니다.
만들기 를 선택한 다음 새 사용자 지정 로그(DCR 기반) 를 선택합니다.
이름을 지정하고 필요에 따라 테이블에 대한 설명을 지정합니다. 사용자 지정 표 이름에 _CL 접미사를 추가할 필요가 없습니다. 이는 포털에서 지정한 이름에 자동으로 추가됩니다.
데이터 수집 규칙 드롭다운에서 기존 데이터 수집 규칙을 선택하거나 새 데이터 수집 규칙 만들기 를 선택하고 구독 , 리소스 그룹 및 새 데이터 수집 규칙의 이름 을 지정합니다.
데이터 수집 엔드포인트 를 선택하고 다음 을 선택합니다.
파일 찾아보기 를 선택하고 새 테이블의 샘플 데이터가 있는 JSON 파일을 찾습니다.
샘플 데이터에 TimeGenerated
열이 포함되어 있지 않으면 이 열로 변환이 만들어지고 있다는 메시지가 표시됩니다.
테이블로 수집 전에 로그 데이터를 변환 하려는 경우:
변환 편집기 를 선택합니다.
변환 편집기를 사용하면 수신 데이터 스트림에 대한 변환을 만들 수 있습니다. 이는 들어오는 각 레코드에 대해 실행되는 KQL 쿼리입니다. Azure Monitor 로그는 쿼리 결과를 대상 테이블에 저장합니다.
결과를 보려면 실행 을 선택합니다.
적용 을 선택하여 변환을 저장하고 만들 테이블의 스키마를 봅니다. 계속 진행하려면 다음 을 선택합니다.
최종 세부 정보를 확인하고 만들기 를 선택하여 사용자 지정 로그를 저장합니다.
Tables - Update PATCH API 를 사용하여 아래의 PowerShell 코드로 사용자 지정 표를 만듭니다. 이 코드는 두 개의 열이 있는 MyTable_CL 이라는 테이블을 만듭니다. 다른 테이블을 수집하려면 이 스키마를 수정합니다.
Azure Portal에서 Cloud Shell 단추를 선택하고 환경이 PowerShell 로 설정되어 있는지 확인합니다.
다음 PowerShell 코드를 복사하고 Path 매개 변수를 Invoke-AzRestMethod
명령의 작업 영역에 대한 적절한 값으로 바꿉니다. Cloud Shell 프롬프트에 붙여넣어 실행합니다.
$tableParams = @'
{
"properties": {
"schema": {
"name": "MyTable_CL",
"columns": [
{
"name": "TimeGenerated",
"type": "DateTime"
},
{
"name": "RawData",
"type": "String"
}
]
}
}
}
'@
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/MyTable_CL?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
테이블 삭제
Azure Monitor 로그에는 여러 형식의 테이블이 있습니다. Azure 테이블이 아닌 모든 테이블을 삭제할 수 있지만, 테이블을 삭제할 때 데이터에 발생하는 상황은 테이블 형식마다 다릅니다.
자세한 내용은 Log Analytics 작업 영역에서 테이블을 삭제하면 데이터는 어떻게 되나요? 를 참조하세요.
Azure Portal에서 테이블을 삭제하려면 다음을 수행합니다.
Log Analytics 작업 영역 메뉴에서 테이블 을 선택합니다.
삭제하려는 테이블을 이름으로 검색하거나 형식 입력란에서 검색결과 를 선택합니다.
삭제하려는 표를 선택하고 표 오른쪽에 있는 줄임표( ... )를 선택한 다음 삭제 를 선택하고 yes 를 입력하여 삭제를 확인합니다.
PowerShell을 사용하여 테이블을 삭제하려면 다음을 수행합니다.
Azure Portal에서 Cloud Shell 단추를 선택하고 환경이 PowerShell 로 설정되어 있는지 확인합니다.
다음 PowerShell 코드를 복사하고 Path 매개 변수를 Invoke-AzRestMethod
명령의 작업 영역에 대한 적절한 값으로 바꿉니다. Cloud Shell 프롬프트에 붙여넣어 실행합니다.
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/NewCustom_CL?api-version=2021-12-01-preview" -Method DELETE
사용자 지정 열 추가 또는 삭제
사용자 지정 테이블의 스키마를 수정하고 표준 테이블에 사용자 지정 열을 추가하거나 해당 테이블에서 열을 삭제할 수 있습니다.
참고 항목
열 이름은 문자로 시작해야 하며 최대 45자의 영숫자와 밑줄(_
)로 구성될 수 있습니다. _ResourceId
, id
, _ResourceId
, _SubscriptionId
, TenantId
, Type
, UniqueId
및 Title
은 예약된 열 이름입니다.
Log Analytics 작업 영역의 테이블에 사용자 지정 열을 추가하거나 열을 삭제하려면 다음을 수행합니다.
Log Analytics 작업 영역 메뉴에서 테이블 을 선택합니다.
편집하려는 테이블의 오른쪽에 있는 줄임표( ... )를 선택하고 스키마 편집 을 선택합니다.
그러면 스키마 편집기 화면이 열립니다.
스키마 편집기 화면의 사용자 지정 열 섹션까지 아래로 스크롤합니다.
새 열을 추가하려면:
열 추가 를 선택합니다.
열 이름과 설명(선택 사항)을 설정하고 형식 드롭다운에서 예상 값 형식을 선택합니다.
저장 을 선택하여 새 열을 저장합니다.
열을 삭제하려면 삭제할 열 왼쪽에 있는 삭제 아이콘을 선택합니다.
Azure 또는 사용자 지정 테이블에 새 열을 추가하려면 다음을 실행합니다.
$tableParams = @'
{
"properties": {
"schema": {
"name": "<TableName>",
"columns": [
{
"name": ""<ColumnName>",
"description": "First custom column",
"type": "string",
"isDefaultDisplay": true,
"isHidden": false
}
]
}
}
}
'@
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/<TableName>?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
PUT
호출은 업데이트된 테이블 속성을 반환하는데, 여기에는 새로 추가된 열이 포함되어야 합니다.
예제
이 명령을 실행하여 Custom1_CF
라는 사용자 지정 열을 Azure Heartbeat
테이블에 추가합니다.
$tableParams = @'
{
"properties": {
"schema": {
"name": "Heartbeat",
"columns": [
{
"name": "Custom1_CF",
"description": "The second custom column",
"type": "datetime",
"isDefaultDisplay": true,
"isHidden": false
}
]
}
}
}
'@
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/Heartbeat?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
이제 새로 추가된 열을 삭제하고 대신 다른 열을 추가하려면 다음을 실행합니다.
$tableParams = @'
{
"properties": {
"schema": {
"name": "Heartbeat",
"columns": [
{
"name": "Custom2_CF",
"description": "The second custom column",
"type": "datetime",
"isDefaultDisplay": true,
"isHidden": false
}
]
}
}
}
'@
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/Heartbeat?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
테이블에서 사용자 지정 열을 모두 삭제하려면 다음을 실행합니다.
$tableParams = @'
{
"properties": {
"schema": {
"name": "Heartbeat",
"columns": [
]
}
}
}
'@
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{workspace}/tables/Heartbeat?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
다음 단계
자세히 알아보기: