From c8103f175d0c38a3f2fd967cf35fc0ca2c3f7c45 Mon Sep 17 00:00:00 2001 From: VictorRobellini <39597627+VictorRobellini@users.noreply.github.com> Date: Tue, 27 Apr 2021 09:51:08 -0400 Subject: [PATCH] Some earlier versions of pfSense do not return substatus --- plugins/telegraf_pfinterface.php | 110 +++++++++++++++---------------- 1 file changed, 55 insertions(+), 55 deletions(-) diff --git a/plugins/telegraf_pfinterface.php b/plugins/telegraf_pfinterface.php index f12015b..134e3de 100755 --- a/plugins/telegraf_pfinterface.php +++ b/plugins/telegraf_pfinterface.php @@ -2,65 +2,65 @@ $friendly) { - $ifinfo = get_interface_info($ifname); - $ifstatus = $ifinfo['status']; - $ifconf = $config['interfaces'][$ifname]; - $ip4addr = get_interface_ip($ifname); - $ip4subnet = get_interface_subnet($ifname); - $ip6addr = get_interface_ipv6($ifname); - $ip6subnet = get_interface_subnetv6($ifname); - $realif = get_real_interface($ifname); - $mac = get_interface_mac($realif); +$gw_array = return_gateways_array(); +$gw_statuses = return_gateways_status(true); - if (!isset($ip4addr)){ - $ip4addr = "Unassigned"; - } - if (!isset($ip4subnet)){ - $ip4subnet = "Unassigned"; - } - if (!isset($ip6addr)){ - $ip6addr = "Unassigned"; - } - if (!isset($ip6subnet)){ - $ip6subnet = "Unassigned"; - } - if (!isset($mac)){ - $mac = "Unavailable"; - } - if (strtolower($ifstatus) == "up"){ - $ifstatus = 1; - } - if (strtolower($ifstatus) == "active"){ - $ifstatus = 1; - } - if (strtolower($ifstatus) == "no carrier"){ - $ifstatus = 0; - } - if (strtolower($ifstatus) == "down"){ - $ifstatus = 0; - } - if (!isset($ifstatus)){ - $ifstatus = 2; - } +foreach ($gw_array as $gw => $gateway) { - printf("interface,host=%s,name=%s,ip4_address=%s,ip4_subnet=%s,ip6_address=%s,ip6_subnet=%s,mac_address=%s,friendlyname=%s,source=%s status=%s\n", - $host, - $realif, - $ip4addr, - $ip4subnet, - $ip6addr, - $ip6subnet, - $mac, - $friendly, - $source, - $ifstatus - ); -} + $name = $gw_statuses[$gw]["name"]; + $monitor = $gw_statuses[$gw]["monitorip"]; + $source = $gw_statuses[$gw]["srcip"]; + $delay = $gw_statuses[$gw]["delay"]; + $stddev = $gw_statuses[$gw]["stddev"]; + $loss = $gw_statuses[$gw]["loss"]; + $status = $gw_statuses[$gw]["status"]; + $substatus = $gw_statuses[$gw]["substatus"]; + + $interface = $gateway["interface"]; + $friendlyname = $gateway["friendlyiface"]; # This is not the friendly interface name so I'm not using it + $friendlyifdescr = $gateway["friendlyifdescr"]; + $gwdescr = $gateway["descr"]; + $defaultgw = $gateway['isdefaultgw']; + + if (isset($gateway['isdefaultgw'])) { + $defaultgw = "1"; + } else { + $defaultgw = "0"; + } + + if ($gw_statuses[$gw]) { + if (isset($gateway['monitor_disable'])) { + $monitor = "Unmonitored"; + $delay = "Pending"; + $stdev = "Pending"; + $loss = "Pending"; + } + } + + + // Some earlier versions of pfSense do not return substatus + if (isset($gw_statuses[$gw]["substatus"])) { + $substatus = $gw_statuses[$gw]["substatus"]; + } else { + $substatus = "N/A"; + } + + printf("gateways,host=%s,interface=%s monitor=\"%s\",source=\"%s\",defaultgw=%s,gwdescr=\"%s\",delay=%s,stddev=%s,loss=%s,status=\"%s\",substatus=\"%s\"\n", + $host, + $interface, + $monitor, + $source, + $defaultgw, + $gwdescr, + floatval($delay), + floatval($stddev), + floatval($loss), + $status, + $substatus + ); +}; ?>