Como sou notificado quando uma máquina Linux equipada com memória ECC reconhece uma falha de memória? Estou interessado em erros corrigíveis e incorrigíveis.
- se uma mensagem for gravada em dmesg/syslog, isso já está bom, mas adoraria saber o que procurar
- instalar daemons adicionais (como smartmontools para discos rígidos) é aceitável
- Monitoramento Nagios/Icinga seria outro caminho a percorrer
- nem todas as máquinas a serem monitoradas possuem IPMI
Os sistemas de interesse possuem placas Supermicro (X9SCM-F), em relação a um Microserver HP N54L Estou apenas curioso, mas não ligo muito. Todos os sistemas rodam Debian ou Ubuntu Linux.
O kernel do Linux suporta os recursos de detecção e correção de erros ( EDAC ) de alguns chipsets. Em um sistema suportado com ECC , o status do seu controlador de memória é acessível via sysfs:
A árvore de diretório sob esses locais deve corresponder ao seu hardware, por exemplo:
Dependendo do seu hardware, você pode ter que carregar explicitamente o driver edac correto, cf.:
O
edac-utils
pacote fornece um front-end de linha de comando e uma biblioteca para acessar esses dados, por exemplo:Você pode configurar algum tipo de trabalho cron que periodicamente chama
eac-util
e alimenta os resultados em seu sistema de monitoramento, onde você pode configurar algumas notificações.Além disso, correr
mcelog
geralmente é uma boa ideia. Depende do sistema, mas erros ECC incorrigíveis/corrigíveis também são relatados como exceção de verificação de máquina ( MCE ). Quero dizer, mesmo breves períodos de aceleração da CPU devido à temperatura mais alta são relatados como MCE.mcelog
irá monitorar o controlador de memória e relatar eventos de erro de memória para o syslog e, em algumas configurações, pode páginas de memória ruins off -line . Isso é, obviamente, além de seu uso usual para monitorar exceções de verificação de máquina e uma variedade de outros erros de hardware.A maioria das distribuições Linux possui um serviço configurado para executá-lo como um daemon, por exemplo, para EL 6:
O
rasdaemon
pacote foi criado como um substituto paraedac-tools
, e os kernels mais recentes nem mesmo suportamedac-tools
oumcelog
.Uma atualização para os drivers do kernel Linux EDAC mudou a forma como os contadores de erros de memória eram gerenciados no espaço do usuário, portanto,
edac-tools
emcelog
estão efetivamente obsoletos.Isso depende do hardware do seu servidor. Uma caixa branca ou um sistema Supermicro lidará com isso de maneira diferente de um Dell, HP ou IBM...
Um dos recursos de valor agregado dos servidores de ponta é que há um nível de integração de hardware/SO. Os servidores Nicer informarão o que você está procurando como parte dos agentes de gerenciamento e/ou solução de gerenciamento fora de banda (ILO, DRAC, IPMI).
Você deve usar as ferramentas nativas da sua plataforma de hardware.
Trecho de servidores HP ProLiant executando Linux e os agentes de gerenciamento HP:
e
ou um mais grave
ou o pior... Ignorar um erro por 6 dias até que o servidor trave por causa da RAM ruim
Estes foram registrados, além de armadilhas SNMP e e-mails foram enviados.
Genericamente, você verá exceções de verificação de máquina no buffer de anel do kernel, para que possa verificar
dmesg
ou executar mcelog . Em minhas experiências com equipamento Supermicro sem IPMI, isso não detectou tudo e ainda tive erros de RAM escapando pelas rachaduras e causando interrupções. Infelizmente, isso levou a políticas arcaicas de queima de RAM antes das implantações do sistema.Conforme mencionado por outro pôster
mcelog
, está obsoleto e efetivamente substituído porrasdaemon
. Eu escrevi sobre como instalá-lo e configurá-lo em muitas distribuições Linux, incluindo instruções para configurar corretamente os rótulos DIMM.