From: Robin Roevens Date: Thu, 17 Jul 2025 17:52:03 +0000 (+0200) Subject: zabbix_agentd: Add LocationDB functionality X-Git-Tag: v2.29-core197~25^2~63 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c297c347d96460bcab651b4f58038d5e857fd2ff;p=ipfire-2.x.git zabbix_agentd: Add LocationDB functionality Adds new IPFire specific monitoring capabilities to Zabbix Agent: - ipfire.locationdb.lookup[,,...]: Perform IPFire LocationDB lookups from within Zabbix. Returns a JSON dict. - ipfire.locationdb.version: Get LocationDB version timestamp in unixtime. Signed-off-by: Robin Roevens Signed-off-by: Michael Tremer --- diff --git a/config/rootfiles/packages/zabbix_agentd b/config/rootfiles/packages/zabbix_agentd index 52cb37e93..7f1f39b64 100644 --- a/config/rootfiles/packages/zabbix_agentd +++ b/config/rootfiles/packages/zabbix_agentd @@ -23,6 +23,7 @@ var/ipfire/zabbix_agentd/userparameters/userparameter_ipfire.conf var/ipfire/zabbix_agentd/userparameters/userparameter_ovpn.conf var/ipfire/zabbix_agentd/userparameters/userparameter_gateway.conf var/ipfire/zabbix_agentd/userparameters/userparameter_wireguard.conf +var/ipfire/zabbix_agentd/userparameters/userparameter_locationdb.conf var/ipfire/zabbix_agentd/scripts var/ipfire/zabbix_agentd/scripts/ipfire_certificate_detail.sh var/ipfire/zabbix_agentd/scripts/ipfire_services.pl diff --git a/config/zabbix_agentd/userparameter_locationdb.conf b/config/zabbix_agentd/userparameter_locationdb.conf new file mode 100644 index 000000000..4aa540762 --- /dev/null +++ b/config/zabbix_agentd/userparameter_locationdb.conf @@ -0,0 +1,6 @@ +# Parameters for querying IPFire Location DB +# +# Returns Location DB lookup for one or more IP addresses +UserParameter=ipfire.locationdb.lookup[*],/usr/bin/location lookup $1 $2 $3 $4 $5 $6 $7 $8 $9 2>&1 | awk -F"[[:space:]]*:[[:space:]]*" 'BEGIN { printf "{" } /[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+\.[[:digit:]]+:/ { printf "%s\"%s\":{",separator,$$1; separator = "," } /^[[:space:]]*Network/ { printf "\"network\":\"" $$2 "\"" } /^[[:space:]]*Country/ { printf ",\"country\":\"" $$2 "\"" } /^[[:space:]]*Autonomous System/ { printf ",\"as\":\"" $$2 "\"}" } /Errno [[:digit:]]+/ { printf "\"error\":\"%s\"",$$0 } END { printf "}" }' +# Returns the Unix timestamp of the IPFire Location DB version +UserParameter=ipfire.locationdb.version,date -d"$(/usr/bin/location version)" +%s diff --git a/lfs/zabbix_agentd b/lfs/zabbix_agentd index 6d0a6b4ea..db43bd611 100644 --- a/lfs/zabbix_agentd +++ b/lfs/zabbix_agentd @@ -116,6 +116,8 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects)) /var/ipfire/zabbix_agentd/userparameters/userparameter_gateway.conf install -v -m 644 $(DIR_SRC)/config/zabbix_agentd/userparameter_wireguard.conf \ /var/ipfire/zabbix_agentd/userparameters/userparameter_wireguard.conf + install -v -m 644 $(DIR_SRC)/config/zabbix_agentd/userparameter_locationdb.conf \ + /var/ipfire/zabbix_agentd/userparameters/userparameter_locationdb.conf # Install IPFire-specific Zabbix Agent scripts -mkdir -pv /var/ipfire/zabbix_agentd/scripts