Criando Monitoramento de SSL no Zabbix

Solução de monitoramento utilizando as ferramentas:

Vamos utilizar o recurso de checagem externa do zabbix (External Check) https://www.zabbix.com/documentation/3.4/pt/manual/config/items/itemtypes/external

A solução proposta checa a validade do certificado utilizando o script ssl-cert-check e a URL do host monitorado, existem outras utilidades bem úteis para o ssl-cert-check, dê uma olha na documentação que vale a pena.

Para utilizar os scripts externos, confirme o path dos scritps externos em seu servidor Zabbix:

$ grep ExternalScripts /etc/zabbix/zabbix_server.conf

Acesse o diretorio:
$ cd /usr/lib/zabbix/externalscripts

Baixe o script:
$ wget https://raw.githubusercontent.com/Matty9191/ssl-cert-check/master/ssl-cert-check

Ajuste as permissões:
$ chmod +x ssl-cert-check
$ chown zabbix: ssl-cert-check

Crie um shell script para usar no item do Zabbix:

$ vim /usr/lib/zabbix/externalscripts/zabbix-check-ssl.sh

#!/bin/bash
/usr/lib/zabbix/externalscripts/ssl-cert-check -s $1 -p 443 -n | cut -d "=" -f2

Ajuste as permissões:
$ chmod +x zabbix-check-ssl.sh
$ chown zabbix: zabbix-check-ssl.sh

Testando o script: $ bash zabbix-check-ssl.sh www.terra.com.br

Resumindo, vamos chamar esse script pelo zabbix e passar o argumento do host para pegar quantos dias faltam para expirar o certificado.

Tudo funcionando, vamos para as configurações no Zabbix.


Importando Template

Clone o repositório

$ git clone https://github.com/terasaka/zabbix-monitoring.git

Importe o template

Configuration -> Templates

Import Template

Escolha o arquivo TemplateSSL.xml

Import

Template importado

Template

Basta associar os hosts que pretende monitorar e usar no hostname do host a URL monitorada.

Criando Template e configurando o host monitorado

Caso queria criar o template manualmente e entender um pouco melhor, siga os passos abaixo:

Configuration -> Templates

Após a criação, adicione um novo item:

Items -> Create Item

Create Item

Mantenha o intervalo de checagem em 30s somente durante os testes, após as configurações você pode manter em 24h ou no intervalo que desejar.

Crie o host e associe o templete no host que deseja monitorar.

Host

Host-Template

Após a criação do template, vamos validar se o item está coletando corretamente:

Monitoring -> Latest data

Filtre o Host que você criou e expanda o item para verificar.

Item

Pronto, já temos o item coletando corretamente, agora só falta criar as triggers para alarmar.

Nesse caso criremos duas trigger uma para 30 e outra para 60 dias.

Volte no template que foi criado e crie uma nova trigger:

Configuration -> Templates -> {Template} -> Triggers -> Create Trigger

Trigger para 60 dias:

Trigger-60

Trigger para 30 dias:

Trigger-30

Dependencia para trigger de 30 dias:

Trigger-60-Dependencies

Triggers criadas:

Triggers

Pronto, dessa forma quando algum certificado estiver com a data de validades abaixo de 60 dias será alarmado com a severidade Average e quando chegar em 30 dias a severidade será High.