Ir para o conteúdoIr para navegação de página: página anterior [tecla de acesso p]/próxima página [tecla de acesso n]
documentation.suse.com / Documentação do SUSE Enterprise Storage 7.1 / Guia de Administração e Operações / Operação do cluster / Monitoramento e alerta
Aplica-se a SUSE Enterprise Storage 7.1

16 Monitoramento e alerta

No SUSE Enterprise Storage 7.1, o cephadm implanta uma pilha de monitoramento e alerta. Os usuários precisam definir os serviços (como Prometheus, Alertmanager e Grafana) que desejam implantar com o cephadm em um arquivo de configuração YAML ou eles podem usar a CLI para implantá-los. Quando vários serviços do mesmo tipo são implantados, uma configuração altamente disponível é implantada. O exportador de nós é uma exceção a essa regra.

É possível usar o cephadm para implantar os seguintes serviços de monitoramento:

  • Prometheus é o kit de ferramentas de monitoramento e alerta. Ele coleta os dados fornecidos pelos exportadores do Prometheus e dispara alertas pré-configurados se os limites predefinidos forem atingidos.

  • O Alertmanager processa os alertas enviados pelo servidor Prometheus. Ele elimina a duplicação, agrupa e roteia os alertas para o receptor correto. Por padrão, o Ceph Dashboard será configurado automaticamente como o receptor.

  • Grafana é o software de visualização e alerta. A funcionalidade de alerta do Grafana não é usada por esta pilha de monitoramento. Para alertas, o Alertmanager é usado.

  • O exportador de nós do Prometheus é que fornece os dados sobre o nó em que ele está instalado. É recomendável instalar o exportador de nós em todos os nós.

O Módulo do Gerenciador do Prometheus inclui um exportador do Prometheus para transmitir os contadores de desempenho do Ceph do ponto de coleta no ceph-mgr.

A configuração do Prometheus, incluindo os destinos de scrape (daemons que extraem métricas), é definida automaticamente pelo cephadm. O cephadm também implanta uma lista de alertas padrão, por exemplo, erro de saúde, 10% dos OSDs inativos ou páginas inativas.

Por padrão, o tráfego para o Grafana é criptografado com TLS. Você pode fornecer seu próprio certificado TLS ou usar um certificado autoassinado. Se nenhum certificado personalizado foi configurado antes da implantação do Grafana, um certificado autoassinado é criado e configurado automaticamente para o Grafana.

Você pode configurar certificados personalizados para o Grafana seguindo estas etapas:

  1. Configure os arquivos de certificado:

    cephuser@adm >  ceph config-key set mgr/cephadm/grafana_key -i $PWD/key.pem
    cephuser@adm >  ceph config-key set mgr/cephadm/grafana_crt -i $PWD/certificate.pem
  2. Reinicie o serviço Ceph Manager:

    cephuser@adm > ceph orch restart mgr
  3. Reconfigure o serviço Grafana para refletir os caminhos dos novos certificados e defina o URL correto para o Ceph Dashboard:

    cephuser@adm > ceph orch reconfig grafana

O Alertmanager processa os alertas enviados pelo servidor Prometheus. Ele cuida da eliminação de duplicação, do agrupamento e do processamento deles para o receptor correto. É possível usar o Alertmanager para silenciar os alertas, mas as configurações de silenciamento também podem ser gerenciadas no Ceph Dashboard.

Recomendamos que o Node exporter seja implantado em todos os nós. Isso pode ser feito usando o arquivo monitoring.yaml com o tipo de serviço node-exporter. Consulte o Seção 8.3.8, “Implantando a pilha de monitoramento” para obter mais informações sobre como implantar serviços.

16.1 Configurando imagens personalizadas ou locais

Dica
Dica

Esta seção descreve como mudar a configuração das imagens de container usadas quando os serviços são implantados ou atualizados. Ela não inclui os comandos necessários para implantar ou reimplantar os serviços.

O método recomendado para implantar a pilha de monitoramento é aplicando a respectiva especificação, conforme descrito no Seção 8.3.8, “Implantando a pilha de monitoramento”.

Para implantar imagens de container personalizadas ou locais, elas precisam ser definidas no cephadm. Para fazer isso, você precisa executar o seguinte comando:

cephuser@adm > ceph config set mgr mgr/cephadm/OPTION_NAME VALUE

Em que OPTION_NAME é qualquer um dos seguintes nomes:

  • container_image_prometheus

  • container_image_node_exporter

  • container_image_alertmanager

  • container_image_grafana

Se nenhuma opção for definida ou se a configuração for removida, as seguintes imagens serão usadas como VALUE:

  • registry.suse.com/ses/7.1/ceph/prometheus-server:2.32.1

  • registry.suse.com/ses/7.1/ceph/prometheus-node-exporter:1.1.2

  • registry.suse.com/ses/7.1/ceph/prometheus-alertmanager:0.21.0

  • registry.suse.com/ses/7.1/ceph/grafana:7.5.12

Por exemplo:

cephuser@adm > ceph config set mgr mgr/cephadm/container_image_prometheus prom/prometheus:v1.4.1
Nota
Nota

Ao definir uma imagem personalizada, o valor padrão será anulado (mas não sobregravado). O valor padrão muda quando as atualizações ficam disponíveis. Ao definir uma imagem personalizada, você não poderá atualizar o componente para o qual definiu a imagem personalizada automaticamente. Você precisará atualizar manualmente a configuração (nome e tag da imagem) para poder instalar as atualizações.

Em vez disso, se você seguir as recomendações, poderá redefinir a imagem personalizada. Após esse procedimento, o valor padrão será usado novamente. Use ceph config rm para redefinir a opção de configuração:

cephuser@adm > ceph config rm mgr mgr/cephadm/OPTION_NAME

Por exemplo:

cephuser@adm > ceph config rm mgr mgr/cephadm/container_image_prometheus

16.2 Atualizando os serviços de monitoramento

Conforme mencionado na Seção 16.1, “Configurando imagens personalizadas ou locais”, o cephadm é fornecido com os URLs das imagens de container recomendadas e testadas, e eles são usados por padrão.

Quando há atualizações dos pacotes do Ceph, novas versões desses URLs podem ser fornecidas. Isso apenas atualiza o local de onde as imagens de container são extraídas, mas não atualiza os serviços.

Depois que os URLs para as novas imagens de container forem atualizados, seja manualmente (conforme descrito na Seção 16.1, “Configurando imagens personalizadas ou locais”) ou automaticamente por meio de uma atualização do pacote do Ceph, os serviços de monitoramento poderão ser atualizados.

Para fazer isso, use ceph orch reconfig da seguinte maneira:

cephuser@adm > ceph orch reconfig node-exporter
cephuser@adm > ceph orch reconfig prometheus
cephuser@adm > ceph orch reconfig alertmanager
cephuser@adm > ceph orch reconfig grafana

Atualmente, não existe um único comando para atualizar todos os serviços de monitoramento. A ordem em que esses serviços são atualizados não é importante.

Nota
Nota

Se você usar imagens de container personalizadas, os URLs especificados para os serviços de monitoramento não serão automaticamente modificados se os pacotes do Ceph forem atualizados. Se você especificou imagens de container personalizadas, precisa especificar os URLs das novas imagens de container manualmente. Esse poderá ser o caso se você usar um registro de container local.

Você encontra os URLs das imagens de container recomendadas para uso na seção Seção 16.1, “Configurando imagens personalizadas ou locais”.

16.3 Desabilitando o monitoramento

Para desabilitar a pilha de monitoramento, execute os seguintes comandos:

cephuser@adm > ceph orch rm grafana
cephuser@adm > ceph orch rm prometheus --force   # this will delete metrics data collected so far
cephuser@adm > ceph orch rm node-exporter
cephuser@adm > ceph orch rm alertmanager
cephuser@adm > ceph mgr module disable prometheus

16.4 Configurando o Grafana

O back end do Ceph Dashboard requer que o URL do Grafana possa verificar a existência de Grafana Dashboards antes mesmo de serem carregados pelo front end. Devido à natureza da implementação do Grafana no Ceph Dashboard, isso significa que duas conexões de trabalho são necessárias para poder ver os gráficos do Grafana no Ceph Dashboard:

  • O back end (módulo MGR do Ceph) precisa verificar a existência do gráfico solicitado. Se essa solicitação for bem-sucedida, ela informará ao front end que ele pode acessar o Grafana com segurança.

  • Em seguida, o front end solicita os gráficos do Grafana diretamente do browser do usuário usando um iframe. A instância do Grafana é acessada diretamente sem qualquer desvio pelo Ceph Dashboard.

Agora, talvez seja o caso de o seu ambiente dificultar o acesso direto do browser do usuário ao URL configurado no Ceph Dashboard. Para resolver esse problema, é possível configurar um URL separado que será usado exclusivamente para informar ao front end (o browser do usuário) qual URL ele deve usar para acessar o Grafana.

Para mudar o URL que é retornado ao front end, execute o seguinte comando:

cephuser@adm > ceph dashboard set-grafana-frontend-api-url GRAFANA-SERVER-URL

Se nenhum valor for definido para essa opção, ela simplesmente retornará para o valor da opção GRAFANA_API_URL, que é definida automaticamente e atualizada com frequência pelo cephadm. Se definida, ela instruirá o browser a usar esse URL para acessar o Grafana.

16.5 Configurando o módulo do gerenciador do Prometheus

O Módulo do Gerenciador do Prometheus é um módulo do Ceph que estende a funcionalidade do Ceph. O módulo lê os (meta)dados do Ceph sobre seu estado e saúde, fornecendo os dados (extraídos) em um formato consumível pelo Prometheus.

Nota
Nota

O Módulo do Gerenciador do Prometheus precisa ser reiniciado para que as mudanças de configuração sejam aplicadas.

16.5.1 Configurando a interface de rede

Por padrão, o Módulo do Gerenciador do Prometheus aceita solicitações HTTP na porta 9283 em todos os endereços IPv4 e IPv6 no host. A porta e o endereço de escuta podem ser configurados usando o ceph config-key set, com as chaves mgr/prometheus/server_addr e mgr/prometheus/server_port. Essa porta está registrada no registro do Prometheus.

Para atualizar o server_addr, execute o seguinte comando:

cephuser@adm > ceph config set mgr mgr/prometheus/server_addr 0.0.0.0

Para atualizar o server_port, execute o seguinte comando:

cephuser@adm > ceph config set mgr mgr/prometheus/server_port 9283

16.5.2 Configurando o scrape_interval

Por padrão, o Módulo do Gerenciador do Prometheus está configurado com um intervalo de extração de 15 segundos. Não é recomendável usar um intervalo de extração abaixo de 10 segundos. Para definir um intervalo de extração diferente no módulo do Prometheus, defina scrape_interval com o valor desejado:

Importante
Importante

Para funcionar corretamente e não causar problemas, o scrape_interval desse módulo deve ser definido sempre com o mesmo valor do intervalo de extração do Prometheus.

cephuser@adm > ceph config set mgr mgr/prometheus/scrape_interval 15

16.5.3 Configurando o cache

Em clusters grandes (mais de 1.000 OSDs), o tempo para buscar as métricas pode aumentar significativamente. Sem o cache, o Módulo do Gerenciador do Prometheus pode sobrecarregar o gerenciador e fazer com que as instâncias do Ceph Manager não respondam ou travem. Como resultado, o cache é habilitado por padrão e não pode ser desabilitado, mas isso significa que o cache pode se tornar obsoleto. O cache é considerado obsoleto quando o tempo para buscar as métricas do Ceph excede o scrape_interval configurado.

Se esse for o caso, um aviso será registrado e o módulo:

  • Responderá com um código de status HTTP 503 (serviço não disponível).

  • Retornará o conteúdo do cache, mesmo que ele seja obsoleto.

Esse comportamento pode ser configurado usando os comandos ceph config set.

Para instruir o módulo a responder com dados possivelmente obsoletos, defina-o como return:

cephuser@adm > ceph config set mgr mgr/prometheus/stale_cache_strategy return

Para instruir o módulo a responder com serviço não disponível, defina-o como fail:

cephuser@adm > ceph config set mgr mgr/prometheus/stale_cache_strategy fail

16.5.4 Habilitando o monitoramento de imagens RBD

O Módulo do Gerenciador do Prometheus pode coletar estatísticas de E/S por imagem RBD habilitando contadores de desempenho OSD dinâmicos. As estatísticas são coletadas de todas as imagens nos pools especificados no parâmetro de configuração mgr/prometheus/rbd_stats_pools.

O parâmetro é uma lista separada por vírgulas ou espaços de entradas pool[/namespace]. Se o namespace não for especificado, as estatísticas serão coletadas para todos os namespaces no pool.

Por exemplo:

cephuser@adm > ceph config set mgr mgr/prometheus/rbd_stats_pools "pool1,pool2,poolN"

O módulo explora os pools e namespaces especificados, cria uma lista de todas as imagens disponíveis e a atualiza periodicamente. É possível configurar o intervalo usando o parâmetro mgr/prometheus/rbd_stats_pools_refresh_interval (em segundos). O padrão é 300 segundos (cinco minutos).

Por exemplo, se você mudou o intervalo de sincronização para 10 minutos:

cephuser@adm > ceph config set mgr mgr/prometheus/rbd_stats_pools_refresh_interval 600

16.6 Modelo de segurança do Prometheus

O modelo de segurança do Prometheus presume que os usuários não confiáveis têm acesso ao endpoint HTTP e aos registros do Prometheus. Os usuários não confiáveis têm acesso a todos os (meta)dados que o Prometheus coleta que estão contidos no banco de dados, além de uma variedade de informações operacionais e de depuração.

No entanto, a API HTTP do Prometheus é limitada a operações apenas leitura. As configurações não podem ser mudadas usando a API, e os segredos não são expostos. Além disso, o Prometheus tem algumas medidas incorporadas para mitigar o impacto dos ataques de negação de serviço.

16.7 Gateway SNMP do Alertmanager do Prometheus

Para ser notificado sobre alertas do Prometheus por meio de detecções de SNMP, você pode instalar o gateway SNMP do Alertmanager do Prometheus por meio do cephadm ou do Ceph Dashboard. Para fazer isso com o SNMPv2c, por exemplo, você precisa criar um arquivo de especificação de serviço e posicionamento com o seguinte conteúdo:

Nota
Nota

Para obter mais informações sobre arquivos de serviço e posicionamento, consulte o Seção 8.2, “Especificação de serviço e posicionamento”.

service_type: snmp-gateway
service_name: snmp-gateway
placement:
    ADD_PLACEMENT_HERE
spec:
  credentials:
    snmp_community: ADD_COMMUNITY_STRING_HERE
  snmp_destination: ADD_FQDN_HERE:ADD_PORT_HERE
  snmp_version: V2c

Se preferir, use o Ceph Dashboard para implantar o serviço de gateway SNMP para SNMPv2c e SNMPv3. Para obter mais detalhes, visite Seção 4.4, “Exibindo serviços”.