. * * @package LibreNMS * @link http://librenms.org * @copyright 2020 Tony Murray * @author Tony Murray */ namespace LibreNMS\OS; use LibreNMS\Interfaces\Polling\OSPolling; use LibreNMS\OS\Shared\Unix; use LibreNMS\RRD\RrdDefinition; class Openbsd extends Unix implements OSPolling { public function pollOS() { $oids = snmp_get_multi($this->getDeviceArray(), ['pfStateCount.0', 'pfStateSearches.0', 'pfStateInserts.0', 'pfStateRemovals.0'], '-OQUs', 'OPENBSD-PF-MIB'); if (is_numeric($oids[0]['pfStateCount'])) { $rrd_def = RrdDefinition::make()->addDataset('states', 'GAUGE', 0); $fields = [ 'states' => $oids[0]['pfStateCount'], ]; $tags = compact('rrd_def'); data_update($this->getDeviceArray(), 'pf_states', $tags, $fields); $this->enableGraph('pf_states'); } if (is_numeric($oids[0]['pfStateSearches'])) { $rrd_def = RrdDefinition::make()->addDataset('searches', 'COUNTER', 0); $fields = [ 'searches' => $oids[0]['pfStateSearches'], ]; $tags = compact('rrd_def'); data_update($this->getDeviceArray(), 'pf_searches', $tags, $fields); $this->enableGraph('pf_searches'); } if (is_numeric($oids[0]['pfStateInserts'])) { $rrd_def = RrdDefinition::make()->addDataset('inserts', 'COUNTER', 0); $fields = [ 'inserts' => $oids[0]['pfStateInserts'], ]; $tags = compact('rrd_def'); data_update($this->getDeviceArray(), 'pf_inserts', $tags, $fields); $this->enableGraph('pf_inserts'); } if (is_numeric($oids[0]['pfStateCount'])) { $rrd_def = RrdDefinition::make()->addDataset('removals', 'COUNTER', 0); $fields = [ 'removals' => $oids[0]['pfStateCount'], ]; $tags = compact('rrd_def'); data_update($this->getDeviceArray(), 'pf_removals', $tags, $fields); $this->enableGraph('pf_removals'); } } }