newdevice: Added basic detection for Geist Watchdog (#6467)

* newdevice: Added basic detection for Geist Watchdog

* Added further support

* Added more health sensors
This commit is contained in:
Neil Lathwood 2017-04-22 14:11:21 +01:00 committed by Tony Murray
parent d49e893a0a
commit 21a70dcb8a
12 changed files with 13074 additions and 0 deletions

BIN
html/images/logos/geist.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

BIN
html/images/os/geist.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

View File

@ -0,0 +1,11 @@
os: geist-watchdog
text: 'Geist Watchdog'
type: environment
icon: geist
discovery:
- sysObjectId:
- .1.3.6.1.4.1.21239.
mib_dir:
- geist
over:
- { graph: device_bits, text: 'Device Traffic' }

View File

@ -0,0 +1,29 @@
<?php
/**
* geist-watchdog.inc.php
*
* LibreNMS airflow discovery module for Geist Watchdog
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2017 Neil Lathwood
* @author Neil Lathwood <gh+n@laf.io>
*/
$value = snmp_get($device, 'climateAirflow', '-Oqv', 'GEIST-MIB-V3');
$current_oid = '.1.3.6.1.4.1.21239.2.2.1.9.1';
$descr = 'Airflow';
discover_sensor($valid['sensor'], 'airflow', $device, $current_oid, 'climateAirflow', 'geist-watchdog', $descr, 1, 1, null, null, null, null, $value);

View File

@ -0,0 +1,38 @@
<?php
/**
* geist-watchdog.inc.php
*
* LibreNMS humidity discovery module for Geist Watchdog
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2017 Neil Lathwood
* @author Neil Lathwood <gh+n@laf.io>
*/
$value = snmp_get($device, 'climateHumidity', '-Oqv', 'GEIST-MIB-V3');
if ($value) {
$current_oid = '.1.3.6.1.4.1.21239.2.2.1.7.1';
$descr = 'Humidity';
discover_sensor($valid['sensor'], 'humidity', $device, $current_oid, 'climateHumidity', 'geist-watchdog', $descr, 1, 1, null, null, null, null, $value);
}
$value = snmp_get($device, 'internalHumidity.1', '-Oqv', 'GEIST-V4-MIB');
if ($value) {
$current_oid = '.1.3.6.1.4.1.21239.5.1.2.1.6.1';
$descr = 'Internal humidity';
discover_sensor($valid['sensor'], 'humidity', $device, $current_oid, 'internalHumidity.1', 'geist-watchdog', $descr, 1, 1, null, null, null, null, $value);
}

View File

@ -0,0 +1,53 @@
<?php
/**
* geist-watchdog.inc.php
*
* LibreNMS temperature discovery module for Geist Watchdog
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2017 Neil Lathwood
* @author Neil Lathwood <gh+n@laf.io>
*/
$value = snmp_get($device, 'climateTempC', '-Oqv', 'GEIST-MIB-V3');
if ($value) {
$current_oid = '.1.3.6.1.4.1.21239.2.2.1.5.1';
$descr = 'Temperature';
discover_sensor($valid['sensor'], 'temperature', $device, $current_oid, 'climateTempC', 'geist-watchdog', $descr, 1, 1, null, null, null, null, $value);
}
$value = snmp_get($device, 'internalTemp.1', '-Oqv', 'GEIST-V4-MIB');
if ($value) {
$current_oid = '.1.3.6.1.4.1.21239.5.1.2.1.5.1';
$descr = 'Internal temperature';
$divisor = 10;
$value = $value / $divisor;
discover_sensor($valid['sensor'], 'temperature', $device, $current_oid, 'internalTemp.1', 'geist-watchdog', $descr, $divisor, 1, null, null, null, null, $value);
}
$temp_table = snmpwalk_cache_oid($device, 'tempSensorTable', array(), 'GEIST-MIB-V3');
foreach ($temp_table as $index => $temp_data) {
if ($temp_data['tempSensorAvail'] == 1) {
$current_oid = '.1.3.6.1.4.1.21239.2.4.1.5.' . $index;
$descr = $temp_data['tempSensorName'] . ': #' . $temp_data['tempSensorSerial'];
$value = $temp_data['tempSensorTempC'];
discover_sensor($valid['sensor'], 'temperature', $device, $current_oid, $index, 'geist-watchdog', $descr, 1, 1, null, null, null, null, $value);
}
}
unset($temp_table);

View File

@ -0,0 +1,29 @@
<?php
/**
* geist-watchdog.inc.php
*
* LibreNMS voltage discovery module for Geist Watchdog
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2017 Neil Lathwood
* @author Neil Lathwood <gh+n@laf.io>
*/
$value = snmp_get($device, 'climateVolts', '-Oqv', 'GEIST-MIB-V3');
$current_oid = '.1.3.6.1.4.1.21239.2.2.1.14.1';
$descr = 'Voltage';
discover_sensor($valid['sensor'], 'voltage', $device, $current_oid, 'climateVolts', 'geist-watchdog', $descr, 1, 1, null, null, null, null, $value);

View File

@ -0,0 +1,26 @@
<?php
/**
* geist-watchdog.inc.php
*
* LibreNMS OS poller module for Geist Watchdog
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
* @package LibreNMS
* @link http://librenms.org
* @copyright 2017 Neil Lathwood
* @author Neil Lathwood <gh+n@laf.io>
*/
$serial = snmp_get($device, 'climateSerial', '-Oqv', 'GEIST-MIB-V3');

11477
mibs/geist/GEIST-MIB-V3 Normal file

File diff suppressed because it is too large Load Diff

1404
mibs/geist/GEIST-V4-MIB Normal file

File diff suppressed because it is too large Load Diff

View File

@ -824,6 +824,11 @@ class DiscoveryTest extends \PHPUnit_Framework_TestCase
$this->checkOS('gamatronicups');
}
public function testGeistWatchdog()
{
$this->checkOS('geist-watchdog');
}
public function testGenerexUps()
{
$this->checkOS('generex-ups');

View File

@ -0,0 +1,2 @@
1.3.6.1.2.1.1.1.0|4|Watchdog 100
1.3.6.1.2.1.1.2.0|6|1.3.6.1.4.1.21239.5.1