Cenário: Criando Dimensões para um Destino do Serviço Monitoring
Saiba como criar dimensões para uma métrica personalizada gerada por um conector. Envie dados de log do serviço Logging para métricas (serviço Monitoring) usando o Connector Hub.
Esse cenário envolve a criação de um conector para gerar uma métrica personalizada com dimensões que fazem referência a dados de log. Use este conector para mover dados de log do Logging para o Monitoring. Depois que os dados forem movidos, você poderá filtrar as novas métricas personalizadas usando as dimensões criadas pelo conector.
Política Obrigatória do Serviço IAM
Se você for membro do grupo Administradores, já terá o acesso necessário para concluir esse cenário. Caso contrário, você precisará de acesso ao serviço Monitoring.
O workflow para criar o conector inclui uma política padrão quando necessário para fornecer permissão para gravar no serviço de destino. Se você não estiver familiarizado com políticas, consulte Visão Geral de Políticas do Serviço IAM.
Meta
Este tópico descreve a meta deste cenário.
A meta deste cenário é filtrar eventos da atualização para buckets do serviço Object Storage. Por exemplo, localize atualizações que alteraram buckets para acesso público. A localização de buckets públicos pode ajudar a evitar vazamento de segredos. Além do tipo de acesso público, esse cenário configura filtros para nome do bucket, nome do compartimento, domínio de disponibilidade, status do controle de versão e um valor estático.
Configurando este Cenário
Este tópico descreve as tarefas envolvidas na configuração deste cenário.
Este cenário cria uma métrica de um log usando o Connector Hub. A configuração desse cenário envolve as tarefas a seguir:
-
Crie um conector para mover logs do serviço Logging para uma métrica personalizada com dimensões no Monitoring.
-
Dados de log: evento Bucket - Atualizar de Logs de auditoria (grupo do log _Audit)
Observação
Embora esse cenário use o grupo de logs _Audit e o evento de atualização do bucket, você pode usar a mesma abordagem com qualquer log disponível na sua tenancy. -
Namespace da métrica:
bucket_events
-
Nome da métrica:
update
-
Valor estático
buckets-from-connector
(nome da dimensão:mytags
) -
Valor extraído usando as dimensões de caminho:
Observação
Cada novo valor de dimensão cria um novo fluxo de métrica. Para evitar a geração de muitos fluxos de métricas exclusivos, que podem resultar em limitação, é recomendável excluir GUIDs ou UUIDs (como OCIDs de compartimento) das dimensões.
Propriedade do caminho (nome da dimensão) Valor bucketName logContent.data.additionalDetails.bucketName compartmentName logContent.data.compartmentName availabilityDomain
logContent.data.availabilityDomain publicAccessType logContent.data.additionalDetails.publicAccessType versioning
logContent.data.additionalDetails.versioning
-
-
Filtre os dados movidos com as dimensões (valores estáticos e extraídos).
Você pode concluir essas tarefas na Console, na CLI ou na API do Oracle Cloud Infrastructure.
Usando a Console
Este tópico descreve como usar a Console para configurar o cenário.
Para obter ajuda para solucionar problemas, consulte Diagnóstico e Solução de Problemas com Conectores e Diagnóstico e Solução de Problemas com Notificações.
Este tópico descreve como usar a Console para criar um conector que mova dados de um log para uma métrica personalizada com dimensões.
-
Abra o menu de navegação e selecione Análise e IA. Em Mensagens, selecione Connector Hub.
- Escolha o Compartimento no qual você deseja criar o conector de serviço.
- Selecione Criar conector.
-
Na página Criar conector, mova eventos de atualização para buckets do serviço Object Storage para uma métrica personalizada com dimensões personalizadas:
- Digite um Nome do conector como "Bucket - Atualizar". Evite digitar informações confidenciais.
- Selecione o Compartimento de recursos no qual você deseja armazenar o novo conector.
- Em Configurar conector, selecione seus serviços de origem e destino para mover dados de log para uma métrica:
- Origem: Logging
- Destino: Monitoring
- Em Configurar conexão de origem, selecione logs de auditoria:
- Compartimento: o compartimento que contém os dados de log.
- Grupo de logs: _Audit
- Logs: (deixe vazio)
- Em Tarefa de filtro de log, selecione o evento de atualização para buckets do serviço Object Storage:
- Filtrar por tipo: Tipo de evento
- Nome do serviço: Object Storage
- Tipo de evento: Objeto - Atualizar
- Ignore Configurar tarefa.
- Em Configurar conexão de destino, informe o namespace de métrica personalizada e o nome da métrica personalizada que você deseja usar para os dados de log filtrados:
- Selecione o Compartimento no qual você deseja armazenar os pontos de dados de métrica correspondentes ao evento de atualização do bucket.
- Informe um novo Namespace da métrica : bucket_events. Observação
Ao digitar um novo namespace de métricas, pressione ENTER para enviá-lo. - Informe uma nova Métrica : atualizar
Em seguida, crie dimensões personalizadas para marcar os dados de log com o valor estático "buckets-from-connector" e para extrair o nome do bucket, o nome do compartimento, o OCID do compartimento, o domínio de disponibilidade, o tipo de acesso público e o status do controle de versão.
- Selecione Adicionar dimensões.
O painel Adicionar dimensões é exibido.
- Extraia o nome do bucket dos dados de log (nome da dimensão
bucketName
):-
Em Selecionar caminho, procure os dados de log disponíveis para o caminho
bucketName
.As seis últimas linhas de dados de log são recuperadas do log especificado em Configurar origem.
Exemplo de fragmento de dados de log, mostrando o caminho
bucketName
:{ "datetime": 1636594090595, "logContent": { "data": { "additionalDetails": { "bucketName": "bucket-20210722-1148",
-
Marque a caixa de seleção do caminho desejado.
Observação
Se nenhum dado de log estiver disponível, você poderá informar manualmente um valor de caminho com um nome de dimensão personalizado em Editar caminho. O caminho deve começar comlogContent
, usando a notação de ponto (.
) ou índice ([]
). Ponto e índice são os únicos selecionadores JMESPath suportados. Por exemplo:logContent.data
(notação de ponto)logContent.data[0].content
(notação de índice)
Exemplo de caminho para o evento de atualização do bucket, usando notação de ponto:
logContent.data.additionalDetails.bucketName
Para obter mais informações sobre notação de caminho válida, consulte JmesPathDimensionValue.
A imagem a seguir mostra um exemplo de um caminho selecionado (
bucketName
) e um caminho não selecionado (eTag
):Em Editar caminho, os seguintes campos são preenchidos automaticamente com base no caminho selecionado. Opcionalmente, você pode editar o Nome da dimensão padrão.
Nome da dimensão Valor bucketName logContent.data.additionalDetails.bucketName
-
-
Repita a extração para cada valor adicional que você deseja usar como uma dimensão (filtro): Em Selecionar caminho, marque a caixa de seleção do caminho correspondente ao Nome da dimensão na tabela a seguir.
O Valor é preenchido automaticamente do caminho selecionado. Opcionalmente, você pode editar o Nome da dimensão padrão.
Nome da dimensão Valor compartmentName logContent.data.compartmentName availabilityDomain
logContent.data.availabilityDomain publicAccessType logContent.data.additionalDetails.publicAccessType versioning
logContent.data.additionalDetails.versioning - Marque os dados de log com o valor estático "buckets-from-connector" (nome da dimensão "mytags"): Em Valores estáticos, informe o seguinte:
- Nome da dimensão: mytags
- Valor: buckets-from-connector
- Selecione Salvar alterações.
O painel Adicionar dimensões é fechado. O foco muda para a página Criar conector.
- Se você for solicitado a criar uma política (necessário para acesso para criar ou atualizar um conector), selecione Criar.
- Selecione Criar.
O novo conector começa imediatamente a mover dados de log para sua métrica personalizada
update
com suas dimensões especificadas.Em seguida, filtre os dados movidos usando as dimensões.
Este tópico descreve como usar a Console para filtrar dados movidos de um log para uma métrica personalizada com dimensões.
-
Abra o menu de navegação e selecione Observabilidade e Gerenciamento. Em Monitoramento, selecione Explorador de Métricas.
- Na página Explorador de Métricas, preencha os campos para uma nova consulta.
- Compartimento: o compartimento que contém a métrica.
- Namespace da métrica: bucket_events
- Nome da métrica: atualizar
-
Intervalo: 1 m
-
Estatística: Contagem
-
Dimensões de métrica: Adicione as seguintes dimensões.
Nome da dimensão Valor da dimensão mytags
buckets-from-connector bucketName
bucket-20210722-1148 compartmentName
desenvolvimento availabilityDomain
PHX - AD-3 publicAccessType
ObjectRead versioning
Ativado
-
Selecione Atualizar Gráfico.
O gráfico mostra os dados de métrica filtrados por dimensão.
Parabéns! Agora você está filtrando dados de log que o conector mudou para uma métrica.
Usando a CLI
Este tópico descreve como usar a CLI para criar o conector e filtrar os dados movidos.
Para obter informações sobre como usar a API e assinar solicitações, consulte a documentação da API REST e Credenciais de Segurança. Para obter informações sobre SDKs, consulte SDKs e a CLI.
-
Defina a origem do log para o conector: salve um arquivo chamado
source.json
.Exemplo de arquivo source.json{ "kind": "logging", "logSources": [ { "compartmentId": "<compartment_OCID>", "logGroupId": "_Audit", "logId": null } ] }
-
Defina o destino (métrica e dimensões) para o conector: salve um arquivo chamado
target.json
.Exemplo de arquivo target.json{ "kind": "monitoring", "compartmentId": "<compartment_OCID>", "metricNamespace": "bucket_events", "metric": "update", "dimensions": [ {"name": "mytags", "dimensionValue": {"kind": "static", "value": "buckets-from-connector"}}, {"name": "bucketName", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.bucketName"}}, {"name": "compartmentName", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.compartmentName"}}, {"name": "availabilityDomain", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.availabilityDomain"}}, {"name": "publicAccessType", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.publicAccessType"}}, {"name": "versioning", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.versioning"}} ] }
-
Crie um conector: Abra um prompt de comando e execute o comando
oci sch service-connector create
:Exemplo de comando para criar um conectoroci sch service-connector create --compartment-id <compartment_OCID> --display-name "Bucket - Update" --source file://source.json --target file://target.json
-
Consulte os dados de métrica usando as dimensões personalizadas: Abra um prompt de comando e execute o comando
oci monitoring metric-data summarize-metrics-data
:Exemplo de comando para consultar dados de métrica usando dimensões personalizadasoci monitoring metric-data summarize-metrics-data --compartment-id <compartment_OCID> --namespace bucket_events --query-text update[1m]{mytags = "buckets-from-connector", bucketName = "bucket-20210722-1148", coompartmentName = "development", availabilityDomain = "PHX-AD-3", publicAccessType = "ObjectRead", versioning = "Enabled"}.count()
Para obter ajuda para solucionar problemas, consulte Diagnóstico e Solução de Problemas com Conectores e Diagnóstico e Solução de Problemas com Notificações.
Usando a API
Este tópico descreve como usar a API para criar o conector e filtrar os dados movidos.
Para obter informações sobre como usar a API e assinar solicitações, consulte a documentação da API REST e Credenciais de Segurança. Para obter informações sobre SDKs, consulte SDKs e a CLI.
Use as seguintes operações:
-
CreateServiceConnector: Cria um conector.
Exemplo de solicitação CreateServiceConnectorPOST /20200909/serviceConnectors Host: service-connector-hub.us-phoenix-1.oraclecloud.com <authorization and other headers> { "compartmentId": "<compartment_OCID>", "displayName": "Bucket - Update", "source": { "kind": "logging", "logSources": [ { "compartmentId": "<compartment_OCID>", "logGroupId": "_Audit", "logId": null } ] }, "target": { "compartmentId": "<compartment_OCID>", "dimensions": [ {"name": "mytags", "dimensionValue": {"kind": "static", "value": "buckets-from-connector"}}, {"name": "bucketName", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.bucketName"}}, {"name": "compartmentName", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.compartmentName"}}, {"name": "availabilityDomain", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.availabilityDomain"}}, {"name": "publicAccessType", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.publicAccessType"}}, {"name": "versioning", "dimensionValue": {"kind": "jmesPath", "path": "logContent.data.additionalDetails.versioning"}} ] "kind": "monitoring", "metric": "update", "metricNamespace": "bucket_events" } }
-
SummarizeMetricsData: consulte os dados de métrica por dimensões.
Exemplo de solicitação SummarizeMetricsDataPOST /20180401/metrics/actions/summarizeMetricsData?compartmentId=<compartment_OCID> Host: telemetry.us-phoenix-1.oraclecloud.com <authorization and other headers> { "namespace": "bucket_events", "query": "update[1m]{mytags = "buckets-from-connector", bucketName = "bucket-20210722-1148", coompartmentName = "development", availabilityDomain = "PHX-AD-3", publicAccessType = "ObjectRead", versioning = "Enabled"}.count()" }
Para obter ajuda para solucionar problemas, consulte Diagnóstico e Solução de Problemas com Conectores e Diagnóstico e Solução de Problemas com Notificações.