tuto:pfsense:zabbix_user_parameters

Ceci est une ancienne révision du document !


Pour les versions récentes

Le script principal est tiré de https://github.com/rbicelli/pfsense-zabbix-template

Dans System → Package Manager → Available packages, sélectionner le paquet sudo et l'installer

Dans SYstem → sudo,ajouter une règle autorisant l'utilisateur Zabbix à exécuter /usr/local/bin/php /root/zabbix/* sans mot de passe

Ces scripts permettent de remonter des données sur les connexions VPN, les services, les descriptions des interfaces etc. Cette partie se fait en CLI

mkdir /root/zabbix
cd /root/zabbix
curl -o pfsense_zbx.php https://git.fws.fr/fws/pfsense-zabbix/raw/branch/master/pfsense_zbx.php
UserParameter=pfsense.states.max,grep "limit states" /tmp/rules.limits | cut -f4 -d ' '
UserParameter=pfsense.states.current,grep "current entries" /tmp/pfctl_si_out | tr -s ' ' | cut -f4 -d ' '
UserParameter=pfsense.mbuf.current,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f1
UserParameter=pfsense.mbuf.cache,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f2
UserParameter=pfsense.mbuf.max,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f4
UserParameter=pfsense.discovery[*],/usr/local/bin/sudo /usr/local/bin/php /root/zabbix/pfsense_zbx.php discovery $1
UserParameter=pfsense.value[*],/usr/local/bin/sudo /usr/local/bin/php /root/zabbix/pfsense_zbx.php $1 $2 $3

Pour les machines sans sudo

Si vous ne voulez pas, ou ne pouvez pas utiliser sudo, il est possible de faire tourner l'agent Zabbix en tant que root (ce n'est pas recommandé cependant) :

UserParameter=pfsense.states.max,grep "limit states" /tmp/rules.limits | cut -f4 -d ' '
UserParameter=pfsense.states.current,grep "current entries" /tmp/pfctl_si_out | tr -s ' ' | cut -f4 -d ' '
UserParameter=pfsense.mbuf.current,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f1
UserParameter=pfsense.mbuf.cache,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f2
UserParameter=pfsense.mbuf.max,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f4
UserParameter=pfsense.discovery[*],/usr/local/bin/php /root/zabbix/pfsense_zbx.php discovery $1
UserParameter=pfsense.value[*],/usr/local/bin/php /root/zabbix/pfsense_zbx.php $1 $2 $3
AllowRoot=1

Pour les anciennes versions

Pour les anciennes version de PfSense (où il ne serait pas possible d'utiliser le script PHP), on peut utiliser simplement les UserParameters suivants

UserParameter=pfsense.states.max,grep "limit states" /tmp/rules.limits | cut -f4 -d ' '
UserParameter=pfsense.states.current,grep "current entries" /tmp/pfctl_si_out | tr -s ' ' | cut -f4 -d ' '
UserParameter=pfsense.mbuf.current,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f1
UserParameter=pfsense.mbuf.cache,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f2
UserParameter=pfsense.mbuf.max,netstat -m | grep "mbuf clusters" | cut -f1 -d ' ' | cut -d '/' -f4
UserParameter=pfsense.discovery[*],if [ "$1" == "interfaces" ]; then ifconfig | awk ' BEGIN { printf "\[" } /^[a-z][a-z0-9]+((\.|_vlan)[0-9]+)?:/ { gsub(/\:/,"",$ 1); printf "{\"{#IFNAME}\":\"" $ 1"\",\"{#IFDESCR}\":\"" $ 1"\"}," } END { print "]" } ' | sed -e 's/,\]/]/'; fi

Ça permettra d'émuler au moins la découverte des interfaces réseaux

  • tuto/pfsense/zabbix_user_parameters.1611048605.txt.gz
  • Dernière modification: 19/01/2021 10:30
  • de dani