O mcelog não funciona nessa CPU AMD ou mais recente (como visto em mcelog.c family >= 15 ). O mesmo problema existe para processadores AMD EPYC.
Em vez de mcelog, use o módulo do kernel edac_mce_amd , que colocará os logs do MCE no log do kernel, que deve terminar no disco via syslog. É possível que o mcelog tenha carregado esse módulo para você desta vez, mas sugiro carregá-lo na inicialização de outra forma, como o arquivo /etc/initramfs-tools/modules no Linux baseado em Debian e update-initramfs -u .
Mas eu não consigo encontrar nada dizendo o formato de tal log ... então aqui está um palpite sobre o código-fonte do Linux ...
em include/linux/printk.h , vemos:
#define HW_ERR "[Hardware Error]: "
em drivers/edac/mce_amd.c , vemos coisas assim começando alguma saída com pr_emerge(HW_ERR ...) :
pr_emerg(HW_ERR "MC0 Error: ");
E mais linhas com pr_cont(...) , mas sem HW_ERR .
Então, eu acho que você pode procurar por "[Hardware Error]:" em seus registros. E talvez as linhas digam edac_mce_amd também.
Aqui está uma regra que eu acho que vai registrar o primeiro pr_emerg, mas não as partes do pr_cont (veja aqui ). Aqui, eu configuro uma regra rsyslog.d que procura "[Hardware Error]:" . Mas isso vai combinar com outras coisas além do módulo edac_mce_amd.
vim /etc/rsyslog.d/09-edac_mce_amd.conf
if ($syslogfacility-text == 'kern') and \
($msg contains '[Hardware Error]:') \
then -/var/log/edac_mce_amd.log
#uncomment this to also remove it from the other files
#& stop
Ter apenas a primeira linha é boa o suficiente para mim, pois configurarei um script de monitoramento que simplesmente verifica se o tamanho do arquivo é 0. Se alguém souber uma maneira de fazer isso corretamente, comente.