Merge pull request #1421 from artickl/feat-add-wireguard-plugin-metric-active

Adding active peer information into wireguard_ plugin
This commit is contained in:
Kenyon Ralph 2024-03-22 15:59:06 -07:00 committed by GitHub
commit d104e6db99
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 15 additions and 2 deletions

17
plugins/wireguard/wireguard_ Normal file → Executable file
View File

@ -11,7 +11,9 @@ wireguard_ - Wildcard-plugin to monitor wireguard peer count and traffic
=head1 CONFIGURATION =head1 CONFIGURATION
This plugin does not normally require configuration. The following environment variables are used by this plugin
active_threshold_m - threshold to count the connection as inactive (default 3 minutes)
The plugin needs to run as root to be able to call the wg show The plugin needs to run as root to be able to call the wg show
command. This is configured like this: command. This is configured like this:
@ -124,6 +126,9 @@ EOF
pc_on_$iface.label $iface pc_on_$iface.label $iface
pc_on_$iface.info Interface $iface pc_on_$iface.info Interface $iface
pc_on_$iface.min 0 pc_on_$iface.min 0
apc_on_$iface.label Active on $iface
apc_on_$iface.info Active on $iface
apc_on_$iface.min 0
EOF EOF
done done
echo "" echo ""
@ -164,8 +169,16 @@ EOF
*) *)
# Collect & print current monitoring values # Collect & print current monitoring values
echo "multigraph wireguard_peercount" echo "multigraph wireguard_peercount"
active_threshold=$(date --date="${active_threshold_m:-3} min ago" +%s)
for iface in $(wg_interfaces); do for iface in $(wg_interfaces); do
echo "pc_on_$iface.value $(wg show "$iface" peers | wc -l)" iface_peers=$(wg_peers "$iface")
peer_count=$(wc -l <<< "$iface_peers")
active_peer_count=$(awk -F";" -v threshold=$active_threshold '$5 > threshold' <<< "$iface_peers" | wc -l)
echo "pc_on_$iface.value $peer_count"
echo "apc_on_$iface.value $active_peer_count"
done done
echo "" echo ""