Coletando métricas de sensor de dispositivo IPMI

Além do conjunto de métricas que são coletadas automaticamente pelo agente de monitoramento, talvez você queira coletar outras métricas, como métricas de sensores. É possível usar o Prometheus IPMI Exporter para realizar a coleta das métricas de sensor de dispositivo da Intelligent Platform Management Interface (IPMI).

  • O exportador Prometheus IPMI Exporter suporta dispositivos IPMI locais e dispositivos remotos que podem ser acessados usando o Remote Management Control Protocol (RMCP).
  • Ao usar o RMCP para acessar dispositivos remotos, é possível usar um IPMI Exporter para monitorar vários dispositivos IPMI. Você identifica cada dispositivo transmitindo o nome do host de destino como um parâmetro.
  • O IPMI Exporter conta com ferramentas do conjunto FreeIPMI.

Os números a seguir mostram diferentes configurações que você pode usar para monitorar as métricas de sensor a partir de hosts que podem estar disponíveis na IBM Cloud ou fora da IBM Cloud:

Componentes
IPMI: Exportador IPMI e agente Kubernetes em hosts

É possível coletar as métricas a seguir ao configurar o exportador da IPMI em um servidor:

  • Métricas do administrador do IPMI

    A métrica ipmi_up {collector="<NAME>"} relata 1 quando dados de um host remoto são coletados com sucesso. Ele relata 0 para a coleta de dados em um host local.

    A métrica ipmi_scrape_duration_seconds relata o período de tempo que leva para o coletor recuperar os dados.

  • Métricas do Log de eventos do sistema (SEL) IPMI

    A métrica ipmi_sel_entries_count relata o número de entradas no log de eventos do sistema.

    A métrica ipmi_sel_free_space_bytes relata o número de bytes livres para novas entradas de log de eventos do sistema.

  • Dados do sensor IPMI

    O IPMI Exporter coleta duas métricas por tipo de sensor: estado e valor. Um valor de 0 relata um estado normal. Um valor de 1 relata um estado de aviso. Um valor de 2 relata um estado crítico. Um valor de NaN relata informações não disponíveis. Por exemplo, consulte as métricas para diferentes sensores:

    Métricas do sensor de temperatura: ipmi_temperature_celsius, ipmi_temperature_state

    Métricas do sensor de velocidade do ventilador: ipmi_fan_speed_rpm, ipmi_fan_speed_state

    Métricas do sensor de voltagem: ipmi_voltage_state, ipmi_voltage_volts

  • Estado de energia do chassi da máquina do IPMI

    A métrica ipmi_chassis_power_state informa sobre o estado atual do chassi da máquina. Ele tem um valor de 1 quando a energia está ligada. Ele tem um valor de 0 quando a energia está desligada.

  • Dados DCMI

    A métrica ipmi_dcmi_power_consumption_current_watts informa sobre o consumo de energia em tempo real da máquina em Watts.

  • Detalhes do BMC

    A métrica ipmi_bmc_info inclui informações sobre a revisão e o fabricante de firmware em rótulos e tem um valor de 1.

Para obter mais informações, consulte Prometheus IPMI Exporter.

Conclua as etapas a seguir para configurar um agente de monitoramento para coletar métricas da IPMI a partir de um ou mais hosts:

Configurar um agente de monitoramento

Para monitorar um ou mais hosts, deve-se configurar um agente de monitoramento. O agente coleta automaticamente um conjunto de métricas que podem ser monitoradas por meio da IU de monitoramento.

Consulte Escolha de um tipo de agente por infraestrutura e escolha o agente de monitoramento que você deseja configurar para monitorar um host.

Configurando o Prometheus IPMI Exporter

É possível instalar o exportador da IPMI em um ou mais hosts para coletar as métricas da IPMI.

Para cada host que você desejar coletar as métricas da IPMI, conclua as etapas a seguir para instalar o exportador da IPMI Por exemplo, conclua as seguintes etapas para um host baseado em Linux:

  1. Em um terminal local , faça o download do exportador IPMI Prometheus.

  2. No servidor, a partir da sessão de ssh, crie um diretório /usr/sysdig. Execute os seguintes comandos:

    cd /usr
    
    mkdir sysdig
    
  3. Copie o arquivo no servidor. No diretório no qual o arquivo está disponível, execute o comando a seguir:

    scp ipmi_exporter-v1.2.0.linux-amd64.tar.gz  root@<IP_ADDRESS>:/usr/sysdig/
    

    Em que <IP_ADDRESS> é o endereço IP público do servidor.

    Se o comando falhar, verifique se a conexão VPN ainda está aberta.

  4. Descompacte o arquivo. Execute os seguintes comandos:

    cd /usr/sysdig/
    
    tar -xvf ipmi_exporter-v1.2.0.linux-amd64.tar.gz
    
  5. Instale a suite FreeIPMI. Execute os seguintes comandos:

    sudo apt-get update
    
    sudo apt-get install freeipmi
    
  6. Configure o arquivo ipmi_local.yml.

    • É possível atualizar o arquivo para excluir os sensores que você não deseja monitorar.

    Mude para o diretório no qual você extraiu o IPMI Exporter:

    cd ipmi_exporter-v1.2.0.linux-amd64/
    

    Verifique o arquivo de configuração. Execute o comando: more ipmi_local.yml. Você deve ver um arquivo com conteúdo semelhante.

    # Configuration file for ipmi_exporter
    
    # This is an example config for scraping the local host.
    # In most cases, this should work without using a config file at all.
    modules:
            default:
                    # Available collectors are bmc, ipmi, chassis, dcmi, and sel
                    collectors:
                    - bmc
                    - ipmi
                    - dcmi
                    - chassis
                    - sel
                    # Got any sensors you don't care about? Add them here.
                    exclude_sensor_ids:
                    # - 2
    
  7. Se o exportador IPMI estiver instalado em um host a partir do qual você pretende coletar as métricas de sensor de vários hosts, configure o arquivo ipmi_remote.yml. Ver Arquivo de amostra remota IPMI.

  8. Execute o exportador da IPMI.

    ./ipmi_exporter --config.file=ipmi_local.yml &
    
  9. Verifique se o IPMI Exporter está em execução. Execute o comando:

    ps -aux | grep ipmi
    

    Você deve ver o IPMI Exporter em execução.

Definir configurações de rede

Se desejar coletar as métricas da IPMI de servidores remotos, conclua as etapas a seguir:

  1. Ative o firewall para permitir o acesso ao ipmi_exporter.

  2. [Opcional] Atualize as regras do VPC

    Se você usar os terminais privados, inclua uma regra de entrada para o grupo de segurança para a porta 9290 com o source type = Security Group e escolha o grupo de segurança para o servidor.

Atualize o agente de monitoramento para coletar métricas de IPMI

Deve-se configurar o agente de monitoramento para ativar a coleta de métricas de IPMI.

Escolha uma das seguintes opções baseado no tipo de agente de monitoramento que você configurou

Agente de monitoramento do Kubernetes

Execute o comando a seguir para editar o configmap e inclua informações sobre os hosts no qual o exportador da IPMI foi configurado:

kubectl edit configmap sysdig-agent -n ibm-observe

Modifique o arquivo yaml para incluir a configuração prometheus do exportador da IPMI:

log:
  file_priority: error
configmap: true
### Agent tags
# tags: linux:ubuntu,dept:dev,local:nyc

#### Software related config ####

# Collector address
# collector: 192.168.1.1

# Collector TCP port
# collector_port: 6666

# Whether collector accepts ssl
# ssl: true

# collector certificate validation
# ssl_verify_certificate: true

#######################################
# new_k8s: true
# k8s_cluster_name: production
security:
  k8s_audit_server_url: 0.0.0.0
  k8s_audit_server_port: 7765
k8s_cluster_name: <CLUSTER_NAME>/<CLUSTER_ID>
tags: ibm.containers-kubernetes.cluster.id:<CLUSTER_ID>
collector: <INGESTION_ENDPOINT>
collector_port: 6443
ssl: true
ssl_verify_certificate: true
sysdig_capture_enabled: false
promscrape_fastproto: true
use_promscrape: true
prom_service_discovery: true
prometheus:
  enabled: true
  log_errors: true
  max_metrics: 200000
  max_metrics_per_process: 200000
  max_tags_per_metric: 100
  ingest_raw: true
  ingest_calculated: false
prometheus.yaml:
----
global:
  scrape_interval: 10s
scrape_configs:
- job_name: ipmi
  metrics_path: /metrics
  static_configs:
  - targets:
    - '<IP_ADDRESS_OF_REMOTE_SERVER_WHERE_IPMI_EXPORTER_IS_RUNNING>:9290'
    - '<IP_ADDRESS_OF_REMOTE_SERVER_WHERE_IPMI_EXPORTER_IS_RUNNING>:9290'
    - '<IP_ADDRESS_OF_REMOTE_SERVER_WHERE_IPMI_EXPORTER_IS_RUNNING>:9290'

em que

  • <IP_ADDRESS_OF_REMOTE_SERVER> é o endereço IP de um servidor que você deseja monitorar.
  • <INGESTION_ENDPOINT> é o terminal de ingestão da instância do IBM Cloud Monitoring , por exemplo, ingest.us-south.monitoring.cloud.ibm.com. Consulte Terminais do coletor.
  • <IP_ADDRESS_OF_REMOTE_SERVER>:9290 é o endereço IP do servidor que você deseja monitorar.

As alterações serão aplicadas ao salvar o arquivo.

Agente de monitoramento do serviço Linux

Conclua as seguintes etapas para atualizar o agente de monitoramento para coletar as métricas de IPMI:

  1. SSH no host em que o agente de monitoramento está em execução. Em seguida, altere o diretório /opt/draios/etc/ e execute o comando a seguir:

    cd /opt/draios/etc/
    
  2. Atualize o /opt/draios/etc/dragent.yaml enable remotepara permitir o scraping remoto.

    Anexe a seção a seguir ao arquivo dragent.yaml:

    customerid: xxxxxxxxxx
    collector: ingest.us-south.monitoring.cloud.ibm.com
    collector_port: 6443
    ssl: true
    sysdig_capture_enabled: false
    use_promscrape: true
    promscrape_fastproto: false
    prom_service_discovery: true
    prometheus:
      enabled: true
      process_filter:
        - include:
            port: 9290
            conf:
              port: 9290
              path: "/metrics"
    
  3. Reinicie o agente de monitoramento. Execute o comando a seguir:

    service dragent restart
    

Verifique se você está recebendo métricas de IPMI

  1. Ativar a IU de monitoramento.

  2. Crie um painel.

  3. Crie um painel para cada uma das seguintes consultas:

Consultas de amostra do exportador IPMI
Métrica PromQL Query Opções
Ipmi Up ipmi_up number (auto)
Voltagem ipmi_voltage_volts number (auto)
Temperatura em Celsius ipmi_temperature_celsius number (auto)
Velocidade do ventilador em RPM ipmi_fan_speed_rpm number (auto)

Por exemplo, é possível criar um painel com a seguinte aparência:

Exemplo de painel{: caption="IPMIAmostra de painel IPMIAmostra de painel " caption-side="bottom"}