terça-feira, 25 de fevereiro de 2014

Verificando a data de expiração do Certificado do Exchange com PowerShell e Zabbix



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

Referências





Um comentário:

Leonardo disse...

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 ?