Deixe-me começar dando a saída que eu consigo ver em /var/log/syslog
e com dmesg
:
[559151.898586] ACPI Error: SMBus/IPMI/GenericSerialBus write requires Buffer of length 66, found length 32 (20170831/exfield-427)
[559151.911578] No Local Variables are initialized for Method [_PMM]
[559151.911580] No Arguments are initialized for method [_PMM]
[559151.911584] ACPI Error: Method parse/execution failed \_SB.PMI0._PMM, AE_AML_BUFFER_LIMIT (20170831/psparse-550)
[559151.916648] ACPI Exception: AE_AML_BUFFER_LIMIT, Evaluating _PMM (20170831/power_meter-338)
Claramente, o Prometheus Node Exporter está acionando o erro, embora não pareça ser a causa do erro que é registrado.
Agora, o que eu quero alcançar é - de preferência - dizer ao Prometheus Node Exporter para parar de consultar qualquer informação que esteja tentando consultar. Caso contrário, gostaria de silenciar essas mensagens para que não enviem spam aos meus arquivos de log.
Como eu iria sobre qualquer uma dessas opções? ... ou talvez existam outras opções que não considerei ...
Isso está acontecendo no Ubuntu 18.04 com o pacote prometheus-node-exporter
(também aconteceu com as versões 0.16 e 0.17 prometheus-node-exporter
que podem ser instaladas via stretch-backports
- sim, no Ubuntu).
Aparentemente, o melhor método é colocar na lista negra o módulo do kernel nomeado
acpi_power_meter
adicionando uma linha da seguinte forma/etc/modprobe.d/blacklist.conf
(ou um arquivo recém-criado na mesma pasta):Em um sistema em execução, deve-se também executar
rmmod acpi_power_meter
como superusuário para descarregar o módulo. Já testei e funciona perfeitamente em todos os servidores HP que estou cuidando. A causa do erro é supostamente um defeito do BIOS no referido hardware HP.Este parece o único método viável e eu o encontrei através deste comentário no projeto Prometheus
node_exporter
.Eu tinha essas
[_PMM]
mensagens de log do tipo em um novoopenvz
contêiner (portanto, as mensagens estavam fora do meu controle).Com
rsyslog
você pode criar um filtro de propriedade em/etc/rsyslog.d/discard.conf
(os arquivos neste diretório são originados antes que todas as outras configurações sejam aplicadas):Para um
syslog
sem filtros (por exemplo, inetutils-syslogd) - uma correção simples é criar/etc/cron.hourly/pmmlog
e torná-lo executável: