在 Azure 監視器記錄中新增或刪除資料表和資料行
資料收集規則可讓您先篩選和轉換記錄資料,再將資料傳送至 Azure 資料表或自訂資料表。 本文說明如何建立自訂資料表,以及將自訂資料行新增至 Log Analytics 工作區中的資料表。
重要
每當您更新資料表結構描述時,請務必更新任何資料收集規則以傳送資料至資料表。 您在資料收集規則中定義的資料表結構描述會決定 Azure 監視器如何將資料串流至目的地資料表。 當您進行資料表結構描述變更時,Azure 監視器並不會自動更新資料收集規則。
必要條件
若要建立自訂資料表,必須要有:
您至少擁有 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
的資料行,則會使用此值來識別記錄的擷取時間。 如果沒有,則會將 TimeGenerated
資料行新增至資料表 DCR 中的轉換。 如需 TimeGenerated
格式的相關資訊,請參閱支援的日期時間格式。
建立自訂資料表
Azure 資料表具有預先定義的結構描述。 若要使用不同的結構描述中儲存記錄資料,請使用資料收集規則來定義如何收集、轉換資料,及將資料傳送至 Log Analytics 工作區中的自訂資料表。 若要使用輔助方案建立自訂資料表,請參閱使用輔助方案設定資料表 (預覽)。
重要
自訂資料表的尾碼為 _CL;例如,tablename_CL。 Azure 入口網站會將 _CL 後置詞自動新增至資料表名稱。 使用不同的方法建立自訂資料表時,您必須自行新增 _CL 尾碼。 資料收集規則中 DataFlows Streams 屬性的 tablename_CL 必須符合 Log Analytics 工作區中的 tablename_CL 名稱。
警告
資料表名稱用於計費用途,因此不應包含敏感性資訊。
若要在 Azure 入口網站中建立自訂資料表:
從 [Log Analytics 工作區] 功能表選取 [資料表]。
選取 [建立],然後選取 [新增自訂記錄 (DCR 型)]。
為資料表指定名稱並選擇性地輸入描述。 您不需要將 _CL 尾碼新增至自訂資料表的名稱 - 這會自動新增至您在入口網站中指定的名稱。
從 [資料收集規則] 下拉式清單中選取現有的資料收集規則,或選取 [建立新的資料收集規則],並指定新資料收集規則的 [訂用帳戶]、[資源群組] 和 [名稱]。
選取資料收集端點,然後選取 [下一步]。
選取 [瀏覽檔案],然後找出含有新資料表中範例資料的 JSON 檔案。
如果您的範例資料不包含 TimeGenerated
資料行,則您會收到一則訊息,指出正使用此資料行建立轉換。
如果您想要在內嵌至資料表之前轉換記錄資料:
選取轉換編輯器。
轉換編輯器可讓您建立傳入資料流的轉換。 這是對每個傳入資料列執行的 KQL 查詢。 Azure 監視器記錄會將查詢的結果儲存在目的地資料表中。
選取 [執行] 以檢視結果。
選取 [套用] 儲存轉換,並檢視即將建立之資料表的結構描述。 選取 [下一步] 繼續進行。
確認最終詳細資料,然後選取 [建立] 以儲存自訂記錄。
使用 [資料表 - 更新 PATCH API],建立具有下列 PowerShell 程式碼的自訂資料表。 此程式碼會建立名為 MyTable_CL 的資料表,其中包含兩個資料行。 修改此結構描述來收集不同的資料表。
選取 Azure 入口網站中的 [Cloud Shell] 按鈕,並確保已將環境設定為 [PowerShell]。
複製下列 PowerShell 程式碼,並以 Invoke-AzRestMethod
命令中工作區的適當值取代 Path 參數。 將其貼至 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 監視器記錄中有數種類型的資料表。 您可以刪除任何不是 Azure 資料表的資料表,但刪除資料表時,各種資料表類型的資料會發生的情況各有不同。
如需詳細資訊,請參閱當您刪除 Log Analytics 工作區中的資料表時,資料所發生的情況。
若要從 Azure 入口網站刪除資料表:
從 [Log Analytics 工作區] 功能表中,選取 [資料表]。
搜尋您想要依名稱刪除的資料表,或在 [類型] 欄位中選取 [搜尋結果]。
選取您要刪除的資料表,選取資料表右邊的省略號 (...),選取 [刪除],然後輸入 [是] 確認刪除。
若要使用 PowerShell 刪除資料表:
選取 Azure 入口網站中的 [Cloud Shell] 按鈕,並確保已將環境設定為 [PowerShell]。
複製下列 PowerShell 程式碼,並以 Invoke-AzRestMethod
命令中工作區的適當值取代 Path 參數。 將其貼至 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
下一步
深入了解: