diff --git a/roles/openvpn/client/templates/zabbix/cron-openvpn-cert.j2 b/roles/openvpn/client/templates/zabbix/cron-openvpn-cert.j2 new file mode 100644 index 0000000000..2225214f6c --- /dev/null +++ b/roles/openvpn/client/templates/zabbix/cron-openvpn-cert.j2 @@ -0,0 +1,20 @@ +#!/usr/bin/bash +# A script to report days-left on the openvpn cert to zabbix + +# Configuration +CERT_FILE="/etc/openvpn/client/client.crt" + +# Get certificate expiry +EXPIRY=$(openssl x509 -in "$CERT_FILE" -noout -enddate | cut -d= -f2) + +if [ -z "$EXPIRY" ]; then + echo "problem reading $CERT_FILE" + exit 1 +fi + +# Convert to epoch and calculate days remaining +EXPIRY_EPOCH=$(date -d "$EXPIRY" +%s) +NOW_EPOCH=$(date +%s) +DAYS_LEFT=$(( ($EXPIRY_EPOCH - $NOW_EPOCH) / 86400 )) + +/usr/bin/zabbix_sender -c {{ zabbix_agentd }} -k openvpn.cert_date -o "$DAYS_LEFT" > /dev/null