Eventos
11 de fev., 15 - 12 de fev., 18
Aprenda as melhores práticas técnicas para seus projetos do Azure e se destaque na adoção do Azure e da IA.
Adicionar ao calendárioNão há mais suporte para esse navegador.
Atualize o Microsoft Edge para aproveitar os recursos, o suporte técnico e as atualizações de segurança mais recentes.
Logs JSON personalizados é uma das fontes de dados usadas em uma regra de coleta de dados (DCR). Os detalhes para a criação da DCR são fornecidos em Coleta de dados com o Agente do Azure Monitor. Este artigo fornece detalhes adicionais sobre o tipo de texto e logs JSON.
Muitos aplicativos e serviços registram informações em arquivos JSON em vez de serviços de registro em log padrão, como o log de eventos do Windows ou Syslog. Esses dados podem ser coletados com Agente do Azure Monitor e armazenados em um workspace do Log Analytics com dados coletados de outras fontes.
O diagrama a seguir mostra a operação básica de coleta de dados de log de um arquivo json.
O arquivo que o Agente do Azure Monitor está monitorando deve atender aos seguintes requisitos:
Siga as seguintes recomendações para garantir que você não tenha problemas de perda de dados ou desempenho:
Antes de coletar dados de log de um arquivo JSON, você deve criar uma tabela personalizada no workspace do Log Analytics para receber os dados. O esquema de tabela deve corresponder às colunas no fluxo de entrada ou você deve adicionar uma transformação para garantir que o esquema de saída corresponda à tabela.
Aviso
Você não deve usar uma tabela personalizada existente usada por um agente do Log Analytics. Os agentes herdados não conseguirão gravar na tabela depois que o primeiro agente do Azure Monitor gravar nela. Crie uma tabela a ser usada pelo agente do Azure Monitor para evitar a perda de dados do agente do Log Analytics.
Por exemplo, você pode usar o script do PowerShell a seguir para criar uma tabela personalizada com várias colunas.
$tableParams = @'
{
"properties": {
"schema": {
"name": "{TableName}_CL",
"columns": [
{
"name": "TimeGenerated",
"type": "DateTime"
},
{
"name": "MyStringColumn",
"type": "string"
},
{
"name": "MyIntegerColumn",
"type": "int"
},
{
"name": "MyRealColumn",
"type": "real"
},
{
"name": "MyBooleanColumn",
"type": "bool"
},
{
"name": "FilePath",
"type": "string"
},
{
"name": "Computer",
"type": "string"
}
]
}
}
}
'@
Invoke-AzRestMethod -Path "/subscriptions/{subscription}/resourcegroups/{resourcegroup}/providers/microsoft.operationalinsights/workspaces/{WorkspaceName}/tables/{TableName}_CL?api-version=2021-12-01-preview" -Method PUT -payload $tableParams
Observação
A ingestão de arquivo personalizado JSON baseada em agente está atualmente em versão prévia e ainda não tem uma experiência de interface do usuário no portal. Embora você possa criar a DCR usando o portal, deve modificá-la para definir as colunas no fluxo de entrada. Esta seção inclui detalhes sobre como criar o DCR usando um modelo do ARM.
Observação
O suporte a várias linhas que usa um carimbo de data/hora para delimitar eventos já está disponível
Os arquivos JSON incluem um nome de propriedade com cada valor e o fluxo de entrada na DCR precisa incluir uma coluna que corresponda ao nome de cada propriedade. Você precisa modificar a seção columns
do modelo do ARM com as colunas do log.
A tabela a seguir descreve colunas opcionais que você pode incluir além das colunas que definem os dados em seu arquivo de log.
Coluna | Type | Descrição |
---|---|---|
TimeGenerated |
datetime | A hora em que o registro foi gerado. Esse valor será preenchido automaticamente com o tempo em que o registro for adicionado ao workspace do Log Analytics se ele não estiver incluído no fluxo de entrada. |
FilePath |
string | Se você adicionar essa coluna ao fluxo de entrada na DCR, ela será preenchida com o caminho para o arquivo de log. Esta coluna não é criada automaticamente e não pode ser adicionada usando o portal. Você deve modificar manualmente o DCR criado pelo portal ou criar o DCR usando outro método em que você pode definir explicitamente o fluxo de entrada. |
Computer |
string | Se você adicionar esta coluna ao fluxo de entrada no DCR, ela será preenchida com o nome do computador com o arquivo de log. Esta coluna não é criada automaticamente e não pode ser adicionada usando o portal. Você deve modificar manualmente o DCR criado pelo portal ou criar o DCR usando outro método em que você pode definir explicitamente o fluxo de entrada. |
A transformação potencialmente modifica o fluxo de entrada para filtrar registros ou modificar o esquema para corresponder à tabela de destino. Se o esquema do fluxo de entrada for o mesmo que a tabela de destino, você poderá usar a transformação padrão de source
. Caso contrário, modifique a seção transformKql
do modelo do ARM com uma consulta KQL que retorna o esquema necessário.
Use o modelo do ARM a seguir para criar um DCR para coletar arquivos de log JSON, fazendo as alterações descritas nas seções anteriores. A tabela a seguir descreve os parâmetros que exigem valores ao implantar o modelo.
Configuração | Descrição |
---|---|
Nome da regra de coleta de dados | Nome exclusivo para o DCR. |
ID do recurso do ponto de extremidade de coleta de dados | ID do recurso do DCE (ponto de extremidade de coleta de dados). |
Localidade | Região para o DCR. Precisa ser o mesmo local que o workspace do Log Analytics. |
Padrões de arquivo | Identifica o local e o nome dos arquivos de log no disco local. Use um caractere curinga para nomes de arquivo que variam, por exemplo, quando um novo arquivo é criada todos os dias com um novo nome. Você pode inserir vários padrões de arquivo separados por vírgulas (AMA versão 1.26 ou superior necessária para vários padrões de arquivo no Linux). Exemplos: - C:\Logs\MyLog.json - C:\Logs\MyLog*.json - C:\App01\AppLog.json, C:\App02\AppLog.json - /var/mylog.json - /var/mylog*.json |
Nome da tabela | Nome da tabela de destino no workspace do Log Analytics. |
ID do recurso do espaço de trabalho | ID do recurso do workspace do Log Analytics com a tabela de destino. |
timeFormat | Os formatos de hora a seguir são aceitos. Use as citações no modelo do ARM. Não inclua o tempo de amostra que está entre parênteses. - “yyyy-MM-ddTHH:mm:ssk” (2024-10-29T18:28:34) - “YYYY-MM-DD HH:MM:SS” (2024-10-29 18:28:34) - “M/D/YYYY HH:MM:SS AM/PM” (10/29/2024 06:28:34 PM) - “Mon DD, YYYY HH:MM:SS” (Oct[ober] 29, 2024 18:28:34) - “yyMMdd HH:mm:ss” (241029 18:28:34) - “ddMMyy HH:mm:ss” (291024 18:28:34) - “MMM d HH:mm:ss” (Oct 29 18:28:34) - “dd/MMM/yyyy:HH:mm:ss zzz” (14/Out/2024:18:28:34 -00) |
Importante
Quando você criar o DCR usando um modelo do ARM, ainda precisará associar o DCR aos agentes que o usarão. Você pode editar o DCR no portal do Azure e selecionar os agentes conforme descrito em Adicionar recursos
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"dataCollectionRuleName": {
"type": "string",
"metadata": {
"description": "Unique name for the DCR."
}
},
"dataCollectionEndpointResourceId": {
"type": "string",
"metadata": {
"description": "Resource ID of the data collection endpoint (DCE)."
}
},
"location": {
"type": "string",
"metadata": {
"description": "Region for the DCR. Must be the same location as the Log Analytics workspace."
}
},
"filePatterns": {
"type": "string",
"metadata": {
"description": "Path on the local disk for the log file to collect. May include wildcards.Enter multiple file patterns separated by commas (AMA version 1.26 or higher required for multiple file patterns on Linux)."
}
},
"tableName": {
"type": "string",
"metadata": {
"description": "Name of destination table in your Log Analytics workspace. "
}
},
"workspaceResourceId": {
"type": "string",
"metadata": {
"description": "Resource ID of the Log Analytics workspace with the target table."
}
},
"timeFormat": {
"type": "string",
"metadata": {
"description": "The time format that you would like to use to split multi line input."
}
}
},
"variables": {
"tableOutputStream": "[concat('Custom-', parameters('tableName'))]"
},
"resources": [
{
"type": "Microsoft.Insights/dataCollectionRules",
"apiVersion": "2022-06-01",
"name": "[parameters('dataCollectionRuleName')]",
"location": "[parameters('location')]",
"properties": {
"dataCollectionEndpointId": "[parameters('dataCollectionEndpointResourceId')]",
"streamDeclarations": {
"Custom-Json-stream": {
"columns": [
{
"name": "TimeGenerated",
"type": "datetime"
},
{
"name": "FilePath",
"type": "string"
},
{
"name": "MyStringColumn",
"type": "string"
},
{
"name": "MyIntegerColumn",
"type": "int"
},
{
"name": "MyRealColumn",
"type": "real"
},
{
"name": "MyBooleanColumn",
"type": "boolean"
}
]
}
},
"dataSources": {
"logFiles": [
{
"streams": [
"Custom-Json-stream"
],
"filePatterns": [
"[parameters('filePatterns')]"
],
"format": "json",
"name": "Custom-Json-stream",
"settings": {
"text": {
"recordStartTimestampFormat": "[parameters('timeFormat')]"
}
}
}
]
},
"destinations": {
"logAnalytics": [
{
"workspaceResourceId": "[parameters('workspaceResourceId')]",
"name": "workspace"
}
]
},
"dataFlows": [
{
"streams": [
"Custom-Json-stream"
],
"destinations": [
"workspace"
],
"transformKql": "source",
"outputStream": "[variables('tableOutputStream')]"
}
]
}
}
]
}
Siga as etapas a seguir se você não estiver coletando dados do log JSON esperado.
Saiba mais sobre:
Eventos
11 de fev., 15 - 12 de fev., 18
Aprenda as melhores práticas técnicas para seus projetos do Azure e se destaque na adoção do Azure e da IA.
Adicionar ao calendárioTreinamento
Módulo
Descubra como configurar e integrar um agente do Log Analytics a um workspace no Defender para Nuvem usando o portal do Azure, aprimorando os recursos de análise de dados de segurança.
Certificação
Microsoft Certified: Azure Cosmos DB Developer Specialty - Certifications
Escreva consultas eficientes, crie políticas de indexação, gerencie e provisione recursos na API e no SDK do SQL com o Microsoft Azure Cosmos DB.