É para isso que você usa o monitoramento. Há uma abundância de sistemas de monitoramento, com diferentes aspectos positivos e negativos, e este não é o lugar para uma discussão exaustiva das diferentes opções. Seu monitoramento deve, em princípio, representar todas as afirmações que você faz sobre o seu sistema, tanto em termos de saídas como de tempos de resposta. Encorajo o uso de "administração de sistemas de primeiro monitoramento" em minha equipe, e os paralelos com o desenvolvimento devem ser óbvios.
Agora, assim como algumas coisas são difíceis de testar na unidade, há também algumas coisas que são difíceis de monitorar. Seu exemplo SSH é um deles - enquanto você certamente pode tentar fazer o login, e se isso falhar, então diga que está pronto, mas muitas coisas podem confundir seu teste - "tente logar como root com uma senha falha" pode ser enganado por alguém alterando a senha root para test123
e ativando a senha - você não sabe qual foi a senha definida, então é claro que o seu login de teste irá falhar.
Para as coisas , você quer um sistema de gerenciamento de configuração, como Chef ou Puppet. Esses sistemas permitem que você faça afirmações sobre o estado de um sistema (como "A opção PasswordAuthentication
em /etc/ssh/sshd_config
deve ser definida como false
"), e o sistema de gerenciamento de configuração garantirá que esse seja o caso sempre que corre. Bons sistemas também podem fornecer relatórios de exceção ("ei, eu achei que você gostaria de saber que PasswordAuthentication
foi definido como true
; tudo bem, eu consertei, mas você pode querer quebrar os dedos de alguém") você pode saber quando algo estranho acontece .