Observação:
- Este tutorial requer acesso ao Oracle Cloud. Para se inscrever e obter uma conta gratuita, consulte Conceitos Básicos do Oracle Cloud Infrastructure Free Tier.
- Ele usa valores de exemplo para credenciais, tenancy e compartimentos do Oracle Cloud Infrastructure. Ao concluir seu laboratório, substitua esses valores por valores específicos do seu ambiente de nuvem.
Monitore a utilização do disco usando métricas personalizadas do Oracle Cloud Infrastructure
Introdução
Os serviços da plataforma Oracle Observability and Management permitem que os clientes monitorem, analisem e gerenciem aplicativos multicloud e ambientes de infraestrutura. Ele usa métricas para monitorar recursos e alarmes para notificá-lo quando essas métricas atenderem aos acionadores especificados pelo alarme. As métricas são emitidas para o serviço Monitoring como pontos de dados brutos ou pares de timestamp-valor, junto com dimensões e metadados.
As métricas vêm de uma variedade de fontes:
- Métricas de recursos postadas automaticamente pelos recursos do Oracle Cloud Infrastructure (OCI). Por exemplo, CpuUtilization.
- Métricas personalizadas publicadas usando a API do Monitoring.
Objetivo
Monitore a utilização do disco usando métricas personalizadas do OCI.
Pré-requisitos
-
Criar Grupo Dinâmico para adicionar a política obrigatória.
# Replace compartment_ocid as per your tenancy instance.compartment.id = '<compartment_ocid>'
-
Adicione políticas necessárias para criar namespace e fornecer permissão ao grupo de usuários para enviar métricas ao serviço Monitoring.
# Replace group-name as per your tenancy Allow dynamic-group <group-name> to use metrics in tenancy
-
OCI Python SDK na instância de computação.
# Using Oracle Linux 7 or 8 sudo yum install python36-oci-sdk
-
Acesso SSH à instância de computação.
Tarefa 1: Criar o arquivo Python
-
Crie
disk_usage.py
na instância de computação na qual a métrica de utilização de disco precisa ser coletada.Observação: Use seu editor de texto preferencial com base no sistema operacional.
-
Copie o script de amostra abaixo para
disk_usage.py
.# This is a sample python script to post disk utilization custom metric to oci monitoring. # Command: python disk_usage.py import oci,psutil,datetime from pytz import timezone # initialize service client with OCI python SDK signer = oci.auth.signers.InstancePrincipalsSecurityTokenSigner() monitoring_client = oci.monitoring.MonitoringClient(config={}, signer=signer, service_endpoint="https://telemetry-ingestion.ap-mumbai-1.oraclecloud.com") # get disk usage with psutil disk = psutil.disk_usage('/') disk_usage=disk.percent print(disk_usage) times_stamp = datetime.datetime.now(timezone('UTC')) # post custom metric to oci monitoring # replace "compartment_ocid“ with your compartmet ocid and srv01 with your compute instance post_metric_data_response = monitoring_client.post_metric_data( post_metric_data_details=oci.monitoring.models.PostMetricDataDetails( metric_data=[ oci.monitoring.models.MetricDataDetails( namespace="custom_metrics", compartment_id="your_compartment_ocid", name="disk_usage", dimensions={'resourceDisplayName': 'srv01'}, datapoints=[ oci.monitoring.models.Datapoint( timestamp=datetime.datetime.strftime( times_stamp,"%Y-%m-%dT%H:%M:%S.%fZ"), value=disk_usage)] )] ) ) # Get the data from response print(post_metric_data_response.data)
Observação: Consulte comandos psutil para extrair mais métricas personalizadas.
-
Adicione permissão de execução ao script usando o comando a seguir.
chmod +x disk_usage.py
-
Atualize o ponto final de ingestão de telelemetria de acordo com sua região.
Observação: Os pontos finais variam de acordo com a operação. Para postar métricas, use os pontos finais de teste de telemetria.
-
Atualize o namespace de acordo com seu requisito.
Observação: Para o namespace de métricas, não use um prefixo reservado (oci_ ou oracle_).
-
Atualize
compartment ocid
com o ocid do compartimento esrv01
com sua instância de computação. -
Adicione mais métricas no script, se necessário, para coletar a mesma instância de computação. Abaixo está um exemplo para coletar espaço livre em disco em GB.
# get metric details using psutil disk_free=round(disk.free/1024/1024/1024,2) print(disk_free) # Add more metric to post if required post_metric_data_response = monitoring_client.post_metric_data( post_metric_data_details=oci.monitoring.models.PostMetricDataDetails( metric_data=[ oci.monitoring.models.MetricDataDetails( namespace="custom_metrics", compartment_id="your_compartment_ocid", name="disk_free", dimensions={'resourceDisplayName': 'srv01'}, datapoints=[ oci.monitoring.models.Datapoint( timestamp=datetime.datetime.strftime( times_stamp,"%Y-%m-%dT%H:%M:%S.%fZ"), value=disk_free)] )] ) )
Tarefa 2: Publicar dados de métrica personalizados
-
Execute o script manualmente no CLI para validar o sucesso.
python disk_usage.py
Output: 27.1 { "failed_metrics": [], "failed_metrics_count": 0 }
-
Programe o script por meio de uma tarefa cron ou de programação para publicar dados com frequência no serviço de monitoramento do OCI.
-
Adicione os detalhes do script no crontab usando
crontab -e
em uma instância de computação que não é do Windows.Observação: as métricas personalizadas podem ser publicadas com tanta frequência, pois a cada segundo intervalo de agregação mínimo e de um minuto. A melhor prática é publicar métrica personalizada a cada intervalo de 1 minuto ou mais.
# Cron job example with every 1 min execution. */1 * * * * /usr/bin/python3 /home/opc/disk_usage.py
-
Verifique a saída no log cron usando
sudo cat /var/log/cron | grep disk
.
-
Tarefa 3: Exibir métrica de utilização de disco usando o explorador de métricas do OCI
-
Abra o menu de navegação e clique em Observação e Gerenciamento.
-
Em Monitoramento, clique em Metrics Explorer.
-
Escolha o compartimento que contém a métrica personalizada que você deseja exibir e clique no nome do namespace de métricas. Por exemplo, custom_metrics.
-
Em Recursos, clique em Métricas. Selecione nome da métrica, intervalo, nome da dimensão e valor da dimensão.
-
Clique em Atualizar Gráfico para exibir a métrica personalizada no Metrics Explorer.
Links Relacionados
Confirmações
Autor - Dipesh Kumar Rathod (Master Principal Arquiteto de Nuvem, Infraestrutura)
Mais Recursos de Aprendizagem
Explore outros laboratórios no site docs.oracle.com/learn ou acesse mais conteúdo de aprendizado gratuito no canal YouTube do Oracle Learning. Além disso, visite education.oracle.com/learning-explorer para se tornar um Oracle Learning Explorer.
Para obter a documentação do produto, visite o Oracle Help Center.
Monitor disk utilization using Oracle Cloud Infrastructure custom metrics
F86088-01
August 2023
Copyright © 2023, Oracle and/or its affiliates.