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 with modifications to the script and template.
Added domain registration expiration check
There are no macros links in this template.
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Domains discovery | <p>-</p> | External check |
list.sh[“ssl_check.json”,”1”]<p>Update: 1h</p> |
URLs discovery | <p>-</p> | External check |
list.sh[“ssl_check.json”]<p>Update: 1h</p> |
Name | Description | Type | Key and additional info |
---|---|---|---|
Domain {#DOMAIN_NAME} expire in | <p>-</p> | External check |
whois_expire.sh[{#DOMAIN_NAME}]<p>Update: 1d</p><p>LLD</p> |
HTTPS Service on {#URL}:{#PORT} is running | <p>-</p> | Simple check |
net.tcp.service[https,{#URL},{#PORT}]<p>Update: 5m</p><p>LLD</p> |
SSL certificate validity {#URL}:{#PORT} | <p>-</p> | External check |
zext_ssl_cert.sh[-d,{#URL},{#PORT}]<p>Update: 1h</p><p>LLD</p> |
SSL certificate issuer {#URL}:{#PORT} | <p>-</p> | External check |
zext_ssl_cert.sh[-i,{#URL},{#PORT}]<p>Update: 1h</p><p>LLD</p> |
Name | Description | Expression | Priority |
---|---|---|---|
Domain {#DOMAIN_NAME} expired | <p>-</p> | <p>Expression: {SSL check LLD:whois_expire.sh[{#DOMAIN_NAME}].last()}<=0</p><p>Recovery expression: </p> | disaster |
Domain {#DOMAIN_NAME} will expire in 14 days | <p>-</p> | <p>Expression: {SSL check LLD:whois_expire.sh[{#DOMAIN_NAME}].last()}<14</p><p>Recovery expression: </p> | high |
Domain {#DOMAIN_NAME} will expire in 30 days | <p>-</p> | <p>Expression: {SSL check LLD:whois_expire.sh[{#DOMAIN_NAME}].last()}<30</p><p>Recovery expression: </p> | warning |
HTTPS service is down on {#URL}:{#PORT} | <p>Last value: {ITEM.LASTVALUE1}. HTTPS service is down on {#URL}:{#PORT}</p> | <p>Expression: {SSL check LLD:net.tcp.service[https,{#URL},{#PORT}].max(#3)}=0</p><p>Recovery expression: </p> | average |
Falied to establish SSL connectoin on {#URL}:{#PORT} in last 3 hour | <p>-</p> | <p>Expression: {SSL check LLD:zext_ssl_cert.sh[-d,{#URL},{#PORT}].nodata(210m)}=1</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expired | <p>-</p> | <p>Expression: {SSL check LLD:zext_ssl_cert.sh[-d,{#URL},{#PORT}].last()}<0</p><p>Recovery expression: </p> | disaster |
SSL certificate on {#URL}:{#PORT} expires in less than 7 days | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than week</p> | <p>Expression: {SSL check LLD:zext_ssl_cert.sh[-d,{#URL},{#PORT}].last()}<7</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expires in less than 21 days | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than 3 week</p> | <p>Expression: {SSL check LLD:zext_ssl_cert.sh[-d,{#URL},{#PORT}].last()}<21</p><p>Recovery expression: </p> | warning |
Domain {#DOMAIN_NAME} expired (LLD) | <p>-</p> | <p>Expression: {SSL check LLD:whois_expire.sh[{#DOMAIN_NAME}].last()}<=0</p><p>Recovery expression: </p> | disaster |
Domain {#DOMAIN_NAME} will expire in 14 days (LLD) | <p>-</p> | <p>Expression: {SSL check LLD:whois_expire.sh[{#DOMAIN_NAME}].last()}<14</p><p>Recovery expression: </p> | high |
Domain {#DOMAIN_NAME} will expire in 30 days (LLD) | <p>-</p> | <p>Expression: {SSL check LLD:whois_expire.sh[{#DOMAIN_NAME}].last()}<30</p><p>Recovery expression: </p> | warning |
HTTPS service is down on {#URL}:{#PORT} (LLD) | <p>Last value: {ITEM.LASTVALUE1}. HTTPS service is down on {#URL}:{#PORT}</p> | <p>Expression: {SSL check LLD:net.tcp.service[https,{#URL},{#PORT}].max(#3)}=0</p><p>Recovery expression: </p> | average |
Falied to establish SSL connectoin on {#URL}:{#PORT} in last 3 hour (LLD) | <p>-</p> | <p>Expression: {SSL check LLD:zext_ssl_cert.sh[-d,{#URL},{#PORT}].nodata(210m)}=1</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expired (LLD) | <p>-</p> | <p>Expression: {SSL check LLD:zext_ssl_cert.sh[-d,{#URL},{#PORT}].last()}<0</p><p>Recovery expression: </p> | disaster |
SSL certificate on {#URL}:{#PORT} expires in less than 7 days (LLD) | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than week</p> | <p>Expression: {SSL check LLD:zext_ssl_cert.sh[-d,{#URL},{#PORT}].last()}<7</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expires in less than 21 days (LLD) | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than 3 week</p> | <p>Expression: {SSL check LLD:zext_ssl_cert.sh[-d,{#URL},{#PORT}].last()}<21</p><p>Recovery expression: </p> | warning |
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 with modifications to the script and template.
Added domain registration expiration check
There are no macros links in this template.
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Domains discovery | <p>-</p> | External check |
list.sh[“ssl_check.json”,”1”]<p>Update: 1h</p> |
URLs discovery | <p>-</p> | External check |
list.sh[“ssl_check.json”]<p>Update: 1h</p> |
Name | Description | Type | Key and additional info |
---|---|---|---|
Domain {#DOMAIN_NAME} expire in | <p>-</p> | External check |
whois_expire.sh[{#DOMAIN_NAME}]<p>Update: 1d</p><p>LLD</p> |
HTTPS Service on {#URL}:{#PORT} is running | <p>-</p> | Simple check |
net.tcp.service[https,{#URL},{#PORT}]<p>Update: 5m</p><p>LLD</p> |
SSL certificate validity {#URL}:{#PORT} | <p>-</p> | External check |
zext_ssl_cert.sh[-d,{#URL},{#PORT}]<p>Update: 1h</p><p>LLD</p> |
SSL certificate issuer {#URL}:{#PORT} | <p>-</p> | External check |
zext_ssl_cert.sh[-i,{#URL},{#PORT}]<p>Update: 1h</p><p>LLD</p> |
Name | Description | Expression | Priority |
---|---|---|---|
Domain {#DOMAIN_NAME} expired | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<=0</p><p>Recovery expression: </p> | disaster |
Domain {#DOMAIN_NAME} will expire in 14 days | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<14</p><p>Recovery expression: </p> | high |
Domain {#DOMAIN_NAME} will expire in 30 days | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<30</p><p>Recovery expression: </p> | warning |
HTTPS service is down on {#URL}:{#PORT} | <p>Last value: {ITEM.LASTVALUE1}. HTTPS service is down on {#URL}:{#PORT}</p> | <p>Expression: max(/SSL check LLD/net.tcp.service[https,{#URL},{#PORT}],#3)=0</p><p>Recovery expression: </p> | average |
Falied to establish SSL connectoin on {#URL}:{#PORT} in last 3 hour | <p>-</p> | <p>Expression: nodata(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}],210m)=1</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expired | <p>-</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<0</p><p>Recovery expression: </p> | disaster |
SSL certificate on {#URL}:{#PORT} expires in less than 7 days | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than week</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<7</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expires in less than 21 days | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than 3 week</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<21</p><p>Recovery expression: </p> | warning |
Domain {#DOMAIN_NAME} expired (LLD) | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<=0</p><p>Recovery expression: </p> | disaster |
Domain {#DOMAIN_NAME} will expire in 14 days (LLD) | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<14</p><p>Recovery expression: </p> | high |
Domain {#DOMAIN_NAME} will expire in 30 days (LLD) | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<30</p><p>Recovery expression: </p> | warning |
HTTPS service is down on {#URL}:{#PORT} (LLD) | <p>Last value: {ITEM.LASTVALUE1}. HTTPS service is down on {#URL}:{#PORT}</p> | <p>Expression: max(/SSL check LLD/net.tcp.service[https,{#URL},{#PORT}],#3)=0</p><p>Recovery expression: </p> | average |
Falied to establish SSL connectoin on {#URL}:{#PORT} in last 3 hour (LLD) | <p>-</p> | <p>Expression: nodata(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}],210m)=1</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expired (LLD) | <p>-</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<0</p><p>Recovery expression: </p> | disaster |
SSL certificate on {#URL}:{#PORT} expires in less than 7 days (LLD) | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than week</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<7</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expires in less than 21 days (LLD) | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than 3 week</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<21</p><p>Recovery expression: </p> | warning |
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 with modifications to the script and template.
Added domain registration expiration check
There are no macros links in this template.
There are no template links in this template.
Name | Description | Type | Key and additional info |
---|---|---|---|
Domains discovery | <p>-</p> | External check |
list.sh[“ssl_check.json”,”1”]<p>Update: 1h</p> |
URLs discovery | <p>-</p> | External check |
list.sh[“ssl_check.json”]<p>Update: 1h</p> |
Name | Description | Type | Key and additional info |
---|---|---|---|
Domain {#DOMAIN_NAME} expire in | <p>-</p> | External check |
whois_expire.sh[{#DOMAIN_NAME}]<p>Update: 1d</p><p>LLD</p> |
HTTPS Service on {#URL}:{#PORT} is running | <p>-</p> | Simple check |
net.tcp.service[https,{#URL},{#PORT}]<p>Update: 5m</p><p>LLD</p> |
SSL certificate validity {#URL}:{#PORT} | <p>-</p> | External check |
zext_ssl_cert.sh[-d,{#URL},{#PORT}]<p>Update: 1h</p><p>LLD</p> |
SSL certificate issuer {#URL}:{#PORT} | <p>-</p> | External check |
zext_ssl_cert.sh[-i,{#URL},{#PORT}]<p>Update: 1h</p><p>LLD</p> |
Name | Description | Expression | Priority |
---|---|---|---|
Domain {#DOMAIN_NAME} expired | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<=0</p><p>Recovery expression: </p> | disaster |
Domain {#DOMAIN_NAME} will expire in 14 days | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<14</p><p>Recovery expression: </p> | high |
Domain {#DOMAIN_NAME} will expire in 30 days | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<30</p><p>Recovery expression: </p> | warning |
HTTPS service is down on {#URL}:{#PORT} | <p>Last value: {ITEM.LASTVALUE1}. HTTPS service is down on {#URL}:{#PORT}</p> | <p>Expression: max(/SSL check LLD/net.tcp.service[https,{#URL},{#PORT}],#3)=0</p><p>Recovery expression: </p> | average |
Falied to establish SSL connectoin on {#URL}:{#PORT} in last 3 hour | <p>-</p> | <p>Expression: nodata(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}],210m)=1</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expired | <p>-</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<0</p><p>Recovery expression: </p> | disaster |
SSL certificate on {#URL}:{#PORT} expires in less than 7 days | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than week</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<7</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expires in less than 21 days | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than 3 week</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<21</p><p>Recovery expression: </p> | warning |
Domain {#DOMAIN_NAME} expired (LLD) | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<=0</p><p>Recovery expression: </p> | disaster |
Domain {#DOMAIN_NAME} will expire in 14 days (LLD) | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<14</p><p>Recovery expression: </p> | high |
Domain {#DOMAIN_NAME} will expire in 30 days (LLD) | <p>-</p> | <p>Expression: last(/SSL check LLD/whois_expire.sh[{#DOMAIN_NAME}])<30</p><p>Recovery expression: </p> | warning |
HTTPS service is down on {#URL}:{#PORT} (LLD) | <p>Last value: {ITEM.LASTVALUE1}. HTTPS service is down on {#URL}:{#PORT}</p> | <p>Expression: max(/SSL check LLD/net.tcp.service[https,{#URL},{#PORT}],#3)=0</p><p>Recovery expression: </p> | average |
Falied to establish SSL connectoin on {#URL}:{#PORT} in last 3 hour (LLD) | <p>-</p> | <p>Expression: nodata(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}],210m)=1</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expired (LLD) | <p>-</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<0</p><p>Recovery expression: </p> | disaster |
SSL certificate on {#URL}:{#PORT} expires in less than 7 days (LLD) | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than week</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<7</p><p>Recovery expression: </p> | high |
SSL certificate on {#URL}:{#PORT} expires in less than 21 days (LLD) | <p>Last value: {ITEM.LASTVALUE1}. SSL certificate on {#URL}:{#PORT} expires in less than 3 week</p> | <p>Expression: last(/SSL check LLD/zext_ssl_cert.sh[-d,{#URL},{#PORT}])<21</p><p>Recovery expression: </p> | warning |