diff --git a/doc/Support/Support-New-OS.md b/doc/Support/Support-New-OS.md new file mode 100644 index 000000000..18cbc3ef6 --- /dev/null +++ b/doc/Support/Support-New-OS.md @@ -0,0 +1,306 @@ +This document will explain how to add full support for a new OS. **Some knowledge in PHP is needed.** + +#### MIB + +At first we copy the MIB file into the default directory: + +```bash +/opt/librenms/mibs +``` + +We are now ready to look at inside the file and find the OID we want to use. _For this documentation we'll use Pulse Secure devices._ + +Then we can test it with the snmpget command (hostname must be reachabled): + +```bash +//for example the OID iveCpuUtil.0: +snmpget -v2c -c public -OUsb -m PULSESECURE-PSG-MIB -M /opt/librenms/mibs -t 30 secure iveCpuUtil.0 +//quick explanation : snmpget -v2c -c COMMUNITY -OUsb -m MIBFILE -M MIB DIRECTORY HOSTNAME OID + +//Result here: +iveCpuUtil.0 = Gauge32: 28 +``` + +#### New OS definition +Let's begin to declare the new OS in LibreNMS. At first we modify the definition file located here: + +```bash +includes/definitions.inc.php +``` + +```php +// Pulse Secure OS definition +$os = 'pulse'; +$config['os'][$os]['text'] = 'Pulse Secure'; +$config['os'][$os]['type'] = 'firewall'; +$config['os'][$os]['icon'] = 'junos'; +$config['os'][$os]['over'][0]['graph'] = 'device_bits'; +$config['os'][$os]['over'][0]['text'] = 'Device Traffic'; +$config['os'][$os]['over'][1]['graph'] = 'device_processor'; +$config['os'][$os]['over'][1]['text'] = 'CPU Usage'; +$config['os'][$os]['over'][2]['graph'] = 'device_mempool'; +$config['os'][$os]['over'][2]['text'] = 'Memory Usage'; + + +//Don't forget to declare the specific graphs if needed. It will be located near the end of the file. + +//Pulse Secure Graphs +$config['graph_types']['device']['pulse_users']['section'] = 'firewall'; +$config['graph_types']['device']['pulse_users']['order'] = '0'; +$config['graph_types']['device']['pulse_users']['descr'] = 'Active Users'; +$config['graph_types']['device']['pulse_sessions']['section'] = 'firewall'; +$config['graph_types']['device']['pulse_sessions']['order'] = '0'; +$config['graph_types']['device']['pulse_sessions']['descr'] = 'Active Sessions'; +``` + +#### Discovery OS + +We create a new file named as our OS definition and in this directory: + +```bash +includes/discovery/os/pulse.inc.php +``` + +Look at other files to get help in the code structure. For this example, it can be like this : + +```php +// Pulse Secure OS definition +