Introdução
Independentemente de o certificado ter sido adquirido junto
a uma empresa certificadora, ou gerado internamente, ele tem uma validade e
quando ela expirar os serviços do Exchange vão apresentar problemas, para
evitar isso iremos colher os dados do certificado via PowerShell e monitorar
essa informação com o Zabbix.
Obtendo informações do Certificado
Abra o Exchange Management Shell
Entre no diretório do certificado
cd Cert:\LocalMachine\My
Digite o comando abaixo para visualizar todos os seus
certificados
Get-ChildItem
Verificando as informações de um certificado em particular
Get-ChildItem
-Path E9***************************************3D2 | Format-List
Mas o que nos interessa é um objeto em particular, a data de
expiração
Get-ChildItem
-Path E9***************************************3D2 | Format-List -Property NotAfter
A sequencia de comandos abaixo é usada para transformar esse
objeto em texto (String) e cortar apenas o pedaço da informação que nos
interessa: a data. Você pode ir executando o comando parte por parte e
acompanhar o que acontece ;-)
Get-ChildItem
-Path E9***************************************3D2 | Format-List -Property NotAfter
| Out-String | %{$_.split(':')[1]} | %{$_.split(' ')[1]} | %{$_.split(' ')[0]}
Automatizando a leitura da Informação
certificado.ps1
A primeira parte é criar um script em PowerShell para
executar os comando acima, nomeei-o de certificado.ps1
Como pode ser observado acima a saída do comando, que é a
data de expiração do certificado será armazenada no arquivo C:\Zabbix\certificado_tmp.txt
certificado.bat
Criei um pequeno arquivo .bat que chama o script em
PowerShell, esse arquivo será utilizado no Agendador de Tarefas e diariamente
irá gerar o arquivo com a data de expiração do certificado, teoricamente isso
não é necessário, já que a data de expiração do certificado não muda, mas o
seguro morreu de velho and shit happens ;-)
Confirme no executável do Exchange Management Shell o
caminho do atalho.
Agendador de Tarefas
Abra o Agendador de Tarefas
Clique em Criar tarefa básica
Coloque um nome e Descrição e clique em Avançar
Marque a opção Diariamente e clique em Avançar
Marque para começar na data atual, no horário que lhe for
mais conveniente e clique em Avançar
Escolha a opção Iniciar um programa e clique em Avançar
Coloque o caminho do script e clique em Avançar
Clique em Finalizar
Configurando a informação no Zabbix
Configuração do agente
Vamos utilizar o recurso de UserParameter para que o Zabbix leia a informação do arquivo certificado.txt, após alterar o arquivo de configuração é necessário reiniciar o serviço.
Testando a leitura da informação
Vamos utilizar o comando zabbix_get para testar a leitura da informação. A sintaxe é zabbix_get -s IP_do_Servidor_Monitorado -k chave.
Criando o item no Zabbix
Acesse a interface do Zabbix // Configuração -> Hosts // Na linha do servidor clique em Itens // Clique no botão Criar item. Configure o item conforme imagem abaixo.
Observe que vamos monitorar o item a cada 24 horas (86400 segundos).
Download dos scripts
Os scripts podem ser baixados aqui. Não se esqueça de colocar a informação referente ao seu certificado no script certificado.ps1
Um comentário:
Bom dia !
Muito bom seu post, acredito que vai me ajudar muito, mas meu caso tenho que monitorar varias certificados do IIS, eu consigo usar esse template ? no meu caso como eu faria ? pode me ajudar ?
Postar um comentário