Jorge, bom dia!
quando tenho problemas de travamento sempre vou pelo caminho do minitoramento dos Logs.
Por exemplo, o que iniciou o travamento da máquina?
Se foi após uma aplicação web, coloco modo debug no servidor web e no interpretador/linguagem. Seja ela java, php, python, etc.
Se foi no banco de dados, debug no mysql ou postgres.
Um lance legal que você pode fazer, é:
zabbix monitorando cpu e memória e o uso das aplicações.
Muitas vezes há alguma aplicação que quando chama determinada função, acaba excedendo o limite de cpu da máquina e a mesma acaba travanado.
Outra coisa legal, não sei se você conheçe, uso o Graylog para envio dos logs de aplicações. Mesmo que a máquina trave, geralmente algum log é enviado para o graylog e consigo ter esse registro para futuro monitoramento. Ou seja, se o tipo de log aparecer no Graylog, ele enviar/emitir um alerta para a equipe de monitoramento e suporte.
TOP, PS , etc te ajudam no momento em que a coisa acontece, mas na maioria das vezes as coisas acontecem justamente quando você não está de olho.