Como monitorar a saúde do disco SSD e NVMe com smartctl e smartd, e receber alertas de temperatura e de hardware pelo próprio servidor.

Para que serve

SSDs e NVMe costumam dar sinais antes de falhar: setores realocados, erros de mídia, desgaste chegando ao limite, temperatura alta. Se você recebe esses avisos a tempo, troca o disco com calma e sem perder dados. Este artigo mostra como monitorar a saúde do disco no Linux/Proxmox, configurar o smartd para alertar automaticamente e ler os sensores de hardware (fontes, ventoinhas, temperatura) pelo próprio sistema, com ipmitool local.

Monitorar não substitui backup. RAID e ZFS espelhado protegem contra a falha de um disco, não contra exclusão acidental, ransomware ou falha simultânea. Mantenha backups fora do servidor.

Pré-requisitos

  • Acesso root ao servidor (Proxmox VE, Debian ou Ubuntu).
  • Console remoto pela Central do Cliente → Serviços → clique no servidor → Console (para quando o sistema não responder pela rede).
  • Um canal de alerta configurado (e-mail ou Telegram; veja o artigo «Como receber alertas do servidor no Telegram, e-mail ou WhatsApp»).

Passo 1: como monitorar a saúde do disco com smartctl

  1. Instale as ferramentas (o Proxmox já traz o smartmontools):
    apt install -y smartmontools nvme-cli
  2. Liste os discos que o smartctl enxerga:
    smartctl --scan
    lsblk -d -o NAME,MODEL,SIZE,ROTA,TRAN
  3. Leia o relatório de cada disco:
    smartctl -a /dev/sda        # SSD SATA
    smartctl -a /dev/nvme0      # NVMe
    nvme smart-log /dev/nvme0   # NVMe, visão do nvme-cli

O que observar

IndicadorOnde apareceQuando se preocupar
Resultado geralSMART overall-health ... PASSEDQualquer coisa diferente de PASSED/OK
Desgaste (NVMe)Percentage UsedAcima de 80%: planeje a troca. 100% = vida útil estimada esgotada
Reserva (NVMe)Available Spare vs Available Spare ThresholdPróximo do limite
Erros de mídia (NVMe)Media and Data Integrity ErrorsQualquer valor maior que zero e crescendo
Setores realocados (SATA)Reallocated_Sector_Ct, Reported_UncorrectValor crescendo entre leituras
Desgaste (SSD SATA)Wear_Leveling_Count, Media_Wearout_Indicator ou similarValor normalizado baixo (varia por fabricante)
TemperaturaTemperatureNVMe acima de ~70 °C de forma constante

Se você usa ZFS (comum no Proxmox), confira também zpool status -x. A resposta esperada é all pools are healthy. Erros nas colunas READ/WRITE/CKSUM indicam disco, cabo ou controladora com problema.

Discos atrás da controladora RAID (SSDs de sistema)

Na maioria dos servidores da E-Consulters, os SSDs de sistema ficam em RAID por hardware na controladora HPE Smart Array. O sistema enxerga só o volume lógico, e o smartctl -a /dev/sda não mostra os discos físicos. Consulte cada disco pelo índice na controladora (o manual do smartmontools indica o nó /dev/sgN da controladora, que aparece em lsscsi -g; em muitos servidores o /dev/sda também funciona):

smartctl -a -d cciss,0 /dev/sda
smartctl -a -d cciss,1 /dev/sda

O SMART mostra a saúde de cada SSD, mas não o estado do espelho. Para isso, use a ferramenta da HPE (ssacli ctrl all show config); o artigo «Como verificar o RAID da controladora HPE Smart Array (ssacli) no Linux e no Proxmox» mostra como instalar o ssacli e criar um alerta de RAID degradado. Os NVMe não passam pela controladora (ficam sempre em RAID por software, mdadm ou ZFS) e são lidos direto, sem -d. O mesmo vale para os SSDs dos poucos servidores sem controladora.

Passo 2: configure o smartd para alertar sozinho

  1. Edite /etc/smartd.conf. Comente a linha DEVICESCAN existente (ela faz o smartd ignorar todas as linhas abaixo dela) e use uma linha como esta:
    DEVICESCAN -a -o on -S on -n standby,q -s (S/../.././02|L/../../6/03) -W 4,60,70 -m root -M exec /usr/share/smartmontools/smartd-runner
    O que cada parte faz:
    • -a: monitora saúde, atributos, log de erros e de autotestes.
    • -s (S/../.././02|L/../../6/03): teste curto todo dia às 2h e teste longo aos sábados às 3h.
    • -W 4,60,70: registra variações de 4 °C, informa a partir de 60 °C e alerta a partir de 70 °C.
    • -m root -M exec ...: envia o aviso pelo mecanismo padrão do Debian. No Proxmox VE 8.1+, e-mails para root são encaminhados ao sistema de notificações, chegando aos destinos configurados em Datacenter → Notifications.
    Para usar o script de Telegram do artigo «Como receber alertas do servidor no Telegram, e-mail ou WhatsApp» em vez do e-mail, troque o final por -m <nomailer> -M exec /usr/local/bin/alerta-telegram. Com o endereço especial <nomailer>, o smartd chama o script sem argumentos e entrega o texto do problema na variável SMARTD_MESSAGE, que o script já usa.
  2. Em servidor com SSDs na Smart Array (a maioria), troque o DEVICESCAN por uma linha para cada disco, incluindo os NVMe, porque o DEVICESCAN não enxerga os SSDs atrás da controladora:
    /dev/sda -d cciss,0 -a -s (S/../.././02|L/../../6/03) -W 4,60,70 -m root
    /dev/sda -d cciss,1 -a -s (S/../.././02|L/../../6/03) -W 4,60,70 -m root
    /dev/nvme0 -a -s (S/../.././02|L/../../6/03) -W 4,60,70 -m root
    /dev/nvme1 -a -s (S/../.././02|L/../../6/03) -W 4,60,70 -m root
    Ajuste o nó (/dev/sda ou /dev/sgN) e os índices conforme o que funcionou no smartctl acima. O smartd não avisa sobre o RAID degradado em si; para isso, use o alerta com ssacli do artigo sobre a HPE Smart Array.
  3. Para validar o envio, adicione temporariamente -M test ao fim da linha e reinicie:
    systemctl restart smartmontools
    journalctl -u smartmontools -n 30
    Um alerta de teste deve chegar. Depois remova o -M test e reinicie de novo.

Passo 3: temperatura e sensores

  • Pelo sistema: apt install -y lm-sensors && sensors mostra temperatura da CPU. Já apt install -y ipmitool && ipmitool sdr type temperature lê os sensores da placa (ambiente, CPU, memória) pela interface IPMI local (/dev/ipmi0), sem precisar de rede nem senha do iLO. ipmitool sdr type fan e ipmitool sdr type "Power Supply" mostram ventoinhas e fontes.
  • Pelo Zabbix ou Netdata: ambos podem coletar esses sensores e gerar gráficos e alertas (veja os artigos próprios).

Passo 4: alertas de hardware pelo próprio sistema

A controladora de gerenciamento (iLO) monitora fontes, ventoinhas, memória e temperatura independentemente do sistema operacional e grava os eventos no log de eventos do sistema (SEL). Pelo console da Central do Cliente você tem apenas a tela remota, não a interface web completa do iLO; por isso, leia esses dados pelo próprio servidor:

  1. Carregue os módulos IPMI, se o /dev/ipmi0 ainda não existir:
    modprobe ipmi_si
    modprobe ipmi_devintf
    ls -l /dev/ipmi0
  2. Veja o resumo dos sensores e o log de eventos:
    ipmitool sdr elist
    ipmitool sel elist | tail -n 20
    Sensores com estado diferente de ok ou eventos recentes de fonte, ventoinha, memória ou temperatura merecem um ticket.
  3. Para receber o aviso automaticamente, agende uma verificação simples no cron que envia alerta quando algum sensor sai do normal (use o script de alerta do artigo sobre Telegram/e-mail):
    cat > /usr/local/bin/checa-sensores <<'SCRIPT'
    #!/bin/sh
    RUIM=$(ipmitool sdr elist 2>/dev/null | grep -viE '\| ok +\||\| ns +\|')
    [ -n "$RUIM" ] && echo "Sensores fora do normal em $(hostname): $RUIM" | mail -s "Alerta de hardware" root
    exit 0
    SCRIPT
    chmod +x /usr/local/bin/checa-sensores
    echo '*/15 * * * * root /usr/local/bin/checa-sensores' > /etc/cron.d/checa-sensores
    O Zabbix e o Netdata também coletam esses sensores com alertas prontos, se preferir uma solução completa.
Se o servidor travar por completo, o sistema não envia alerta nenhum. Para isso, use um monitoramento externo (ping ou HTTP a partir de outro lugar) e, ao detectar a queda, abra o console pela Central do Cliente para ver a tela.

Como saber se funcionou

  • systemctl status smartmontools ativo e o alerta de teste (-M test) recebido.
  • smartctl -l selftest /dev/sda (ou /dev/nvme0) mostra os autotestes agendados sendo executados nos dias seguintes.
  • ipmitool sdr elist responde e o /usr/local/bin/checa-sensores roda sem erro; echo teste | mail -s teste root confirma que o e-mail do root chega ao seu destino.

Problemas comuns

  • "Unable to detect device type" ou disco sem dados SMART: o disco está atrás da controladora RAID (caso comum nos SSDs de sistema). Use -d cciss,N ou consulte pelo ssacli.
  • Linhas do smartd.conf ignoradas: há um DEVICESCAN acima delas.
  • NVMe aquecendo: verifique ventoinhas e temperatura ambiente com ipmitool sdr type fan e ipmitool sdr type temperature; picos durante backup ou cargas pesadas de I/O são normais, temperatura alta constante não.
  • "Could not open device at /dev/ipmi0": carregue os módulos ipmi_si e ipmi_devintf. Para que subam no boot, adicione os dois nomes em /etc/modules.
  • Encontrou um disco degradado? Abra um ticket informando o serial do disco (aparece no smartctl -i) e a saída do smartctl -a ou do zpool status. Se o disco estiver na Smart Array, informe também a baía (ex.: 1I:1:2) e a saída de ssacli ctrl all show config.

Perguntas frequentes

Como saber se o SSD ou NVMe está para falhar?

Rode smartctl -a e observe o resultado geral, o Percentage Used, o Available Spare e os erros de mídia. Valores de erro crescendo entre leituras são o principal sinal de alerta.

Qual a temperatura normal de um NVMe?

Picos durante cargas pesadas de I/O são normais. O preocupante é ficar acima de ~70 °C de forma constante; nesse caso confira ventoinhas e temperatura com ipmitool sdr type fan e ipmitool sdr type temperature, e abra um ticket se algo estiver fora do normal.

Por que o smartctl não mostra os discos do RAID?

Porque os SSDs de sistema estão atrás da controladora HPE Smart Array, que apresenta só o volume lógico. Use -d cciss,N para ler cada disco e o ssacli para ver o estado do RAID.

Consigo ver a temperatura e os alertas na interface web do iLO?

Não. O console da Central do Cliente dá acesso só à tela remota, sem as páginas de informação e log do iLO. Use ipmitool local, sensors e smartctl no próprio servidor, ou abra um ticket.

O que fazer quando um disco começa a falhar?

Confirme que o backup está em dia e abra um ticket com o serial do disco e a saída do smartctl -a (ou do zpool status/ssacli). Para NVMe em RAID por software, veja também o artigo «RAID por software com mdadm: como verificar o estado, receber alertas e trocar um disco com defeito».

Leitura complementar

Precisa de ajuda? Abra um ticket ou fale com o suporte pelo WhatsApp. Problemas de hardware (disco, fonte, ventoinha) são tratados pelo suporte da E-Consulters: envie as evidências e combine a janela de troca.

Esta resposta lhe foi útil? 0 Usuários acharam útil (0 Votos)

Leia também