5.02021-11-21T21:47:16ZTemplatesSSL check LLDSSL check LLD## Overview
Main idea is monitoring several URL with SSL in one Zabbix host. Data for LLD provide JSON file.
This is originally based on [https://share.zabbix.com/cat-app/web-servers/ssl-certificates-check](cat-app/web-servers/ssl-certificates-check) with modifications to the script and template.
Added domain registration expiration check
TemplatesDomain checksHTTPS ServiceSSL ChecksDomains discoveryEXTERNALlist.sh["ssl_check.json","1"]1h60dDomain {#DOMAIN_NAME} expire inEXTERNALwhois_expire.sh[{#DOMAIN_NAME}]1d730dday(s)Domain checks{last()}<=0Domain {#DOMAIN_NAME} expiredDISASTER{last()}<14Domain {#DOMAIN_NAME} will expire in 14 daysHIGHDomain {#DOMAIN_NAME} expired{SSL check LLD:whois_expire.sh[{#DOMAIN_NAME}].last()}<=0{last()}<30Domain {#DOMAIN_NAME} will expire in 30 daysWARNINGDomain {#DOMAIN_NAME} will expire in 14 days{SSL check LLD:whois_expire.sh[{#DOMAIN_NAME}].last()}<14{#DOMAIN_NAME}$.d_nameJAVASCRIPTvar urls = JSON.parse(value);
var dom_names = [];
for (var i = 0; i < urls.length; i++) {
var j = urls[i].url.split('.');
var dn = j[j.length - 2] + '.' + j[j.length - 1];
if (dom_names.indexOf(dn) == -1) {
dom_names.push(dn);
}
}
var dnames = [];
for (var i = 0; i < dom_names.length; i++) {
dnames.push({'d_name': dom_names[i]});
}
return JSON.stringify(dnames);URLs discoveryEXTERNALlist.sh["ssl_check.json"]1h60dHTTPS Service on {#URL}:{#PORT} is runningSIMPLEnet.tcp.service[https,{#URL},{#PORT}]5m10d730dHTTPS ServiceService state{max(#3)}=0HTTPS service is down on {#URL}:{#PORT}AVERAGELast value: {ITEM.LASTVALUE1}.
HTTPS service is down on {#URL}:{#PORT}SSL certificate validity {#URL}:{#PORT}EXTERNALzext_ssl_cert.sh[-d,{#URL},{#PORT}]1h10d730dday(s)SSL Checks{nodata(210m)}=1Falied to establish SSL connectoin on {#URL}:{#PORT} in last 3 hourDISABLEDHIGH{last()}<0SSL certificate on {#URL}:{#PORT} expiredDISASTER{last()}<7SSL certificate on {#URL}:{#PORT} expires in less than 7 daysHIGHLast value: {ITEM.LASTVALUE1}.
SSL certificate on {#URL}:{#PORT} expires in less than weekSSL certificate on {#URL}:{#PORT} expired{SSL check LLD:zext_ssl_cert.sh[-d,{#URL},{#PORT}].last()}<0{last()}<21SSL certificate on {#URL}:{#PORT} expires in less than 21 daysWARNINGLast value: {ITEM.LASTVALUE1}.
SSL certificate on {#URL}:{#PORT} expires in less than 3 weekSSL certificate on {#URL}:{#PORT} expires in less than 7 days{SSL check LLD:zext_ssl_cert.sh[-d,{#URL},{#PORT}].last()}<7SSL certificate issuer {#URL}:{#PORT}EXTERNALzext_ssl_cert.sh[-i,{#URL},{#PORT}]1h10d0CHARSSL Checks{#PORT}$.port{#URL}$.urlService state0Down1Up