Logging via the shell script extension
This solution uses the script hook (part of the open source version of Kea-DHCP: https://kea.readthedocs.io/en/kea-2.6.1/arm/hooks.html#libdhcp-run-script-so-run-script-support-for-external-hook-scripts ).
Script hook configuration in kea-dhcp4.conf:
"hooks-libraries": [
{
"library": "/usr/lib64/kea/hooks/libdhcp_run_script.so",
"parameters": {
"name": "/var/lib/kea/hookscript.sh",
"sync": false
}
}],
The Script (in this example in /var/lib/kea/hookscript.sh must be executable):
#!/bin/sh
logfile="/var/log/kea/kea-hook-script.log"
case "${1}" in
"lease4_renew")
echo "lease4_renew: ${QUERY4_TYPE} via ${QUERY4_GIADDR} from ${PKT4_HWADDR} for ${LEASE4_ADDRESS}" >> ${l$
;;
"lease4_expire")
echo "lease4_expire: ${LEASE4_ADDRESS}" >> ${logfile}
;;
"lease4_recover")
echo "lease4_recover: ${QUERY4_TYPE} via ${QUERY4_GIADDR} from ${PKT4_HWADDR} for ${QUERY4_YIADDR}" >> ${$
;;
"leases4_committed")
;;
"lease4_release")
echo "lease4_release: ${QUERY4_TYPE} via ${QUERY4_GIADDR} from ${LEASE4_HWADDR} for ${LEASE4_ADDRESS}" >>$
;;
"lease4_decline")
echo "lease4_decline: ${QUERY4_TYPE} via ${QUERY4_GIADDR} from ${PKT4_HWADDR} for ${QUERY4_YIADDR}" >> ${$
;;
esac
Content of the created logfile in /var/log/kea/kea-hook-script.log:
lease4_renew: DHCPREQUEST via 192.168.1.122 from 00:60:6e:65:a2:e5 for 172.22.1.100 lease4_renew: DHCPREQUEST via 192.168.1.122 from 00:60:6e:65:a2:e5 for 172.22.1.100 lease4_renew: DHCPREQUEST via 192.168.1.122 from 00:60:6e:65:a2:e5 for 172.22.1.100 lease4_renew: DHCPREQUEST via 192.168.1.122 from 00:60:6e:65:a2:e5 for 172.22.1.100 lease4_release: DHCPRELEASE via 192.168.1.122 from 00:60:6e:65:a2:e5 for 172.22.1.100 lease4_renew: DHCPDISCOVER via 192.168.1.122 from 00:60:6e:65:a2:e5 for 172.22.1.100 lease4_renew: DHCPDISCOVER via 192.168.1.122 from 00:60:6e:65:a2:e5 for 172.22.1.100 lease4_expire: 172.22.1.100 lease4_renew: DHCPREQUEST via 192.168.1.122 from 00:60:6e:65:a2:e5 for 172.22.1.100 lease4_renew: DHCPREQUEST via 192.168.1.122 from 00:60:6e:65:a2:e5 for 172.22.1.100