Oxidized Cisco, Procurve/Aruba, Vyos and Ubiquiti

Been running LibreNMS for a while now monitoring my network device ranging from Cisco (ios and nxos), Procurve/Aruba, Vyos, Ubiquiti Edge Router, pfSense and other devices. Just recently installed Oxidized on a different server with its own router.db file with some cisco, procurve and vyos device manually added to the router.db file, then I integrate it to LibreNMS.

Its working for the Procurve devices, and not the other devices. Status on Oxidized says “no connection” and they all showing Procurve as the model. I use RADIUS for authentication and a common service account for this. This is my oxdized configuration and any help will be really appreciated

username: xxxxx
password: xxxxx
model: procurve
resolve_dns: true
interval: 600
use_syslog: false
debug: false
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 0.0.0.0:8888
next_adds_job: false
vars: {}
groups: {}
models: {}
pid: “/home/oxidized/.config/oxidized/pid”
crash:
directory: “/home/oxidized/.config/oxidized/crashes”
hostnames: false
stats:
history_size: 10
input:
default: ssh, telnet
debug: false
ssh:
secure: false
ftp:
passive: true
utf8_encoded: true
output:
default: file
file:
directory: /home/oxidized/deviceconfig
source:
default: csv
csv:
file: /home/oxidized/.config/oxidized/router.db
delimiter: !ruby/regexp /:confused:
map:
name: 0
model: 1
username: 2
password: 3
vars_map:
enable: 4
model_map:
juniper: junos
cisco: ios
cisco: nxos
vyatta: vyos
vyos: vyatta
ubiquiti: edgeos
brocade: vyatta

Try to set the debug flag on and run oxidized manually, that should give you more output.

Got this working now with the right device OS and versioning. For starters like me using Ubuntu 18.04.3 LTS here is my step by step instruction and hoping it’ll help someone out there:

  1. On Ubuntu, begin by enabling the universe repository if you have to
    #add-apt-repository universe
  2. Install the dependencies:
    #apt-get install ruby ruby-dev libsqlite3-dev libssl-dev pkg-config cmake libssh2-1-dev libicu-dev zlib1g-dev g++
  3. Finally, install the gems:
    #gem install oxidized
    #gem install oxidized-script oxidized-web
  4. It is recommended not to run Oxidized as root. Add oxidized user:
    #useradd oxidized
  5. Create a home directory for the oxidized user:
    #sudo mkdir /home/oxidized
    #sudo chown -R oxidized:oxidized /home/oxidized
  6. Switch user to oxidized:
    su – oxidized
  7. On $ prompt run $ oxidized with no arguments. This creates a /home/oxidized/.config/oxidized/ directory with a sample configuration in it.
  8. On $ make a directory to store configuration it will download
    $ mkdir /home/oxidized/deviceconfigs
  9. Edit /home/oxidized/.config/oxidized/config
    $ nano /home/oxidized/.config/oxidized/config

username: username

password: password

model: procurve

resolve_dns: true

interval: 3600

use_syslog: false

debug: false

threads: 30

timeout: 20

retries: 3

prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/

rest: 0.0.0.0:8888

next_adds_job: false

vars: {}

groups: {}

models: {}

pid: “/home/oxidized/.config/oxidized/pid”

crash:

directory: “/home/oxidized/.config/oxidized/crashes”

hostnames: false

stats:

history_size: 10

input:

default: ssh, telnet

debug: false

ssh:

secure: false

ftp:

passive: true

utf8_encoded: true

output:

default: git

git:

user: oxidized

email: [email protected]

repo: “/home/oxidized/.config/oxidized/oxidized.git”

source:

default: csv

csv:

file: “/home/oxidized/.config/oxidized/router.db”

delimiter: !ruby/regexp /:confused:

map:

name: 0

model: 1

username: 2

password: 3

vars_map:

enable: 4

model_map:

ios: ios

iosxe: ios

iosxr: iosxr

nxos: nxos

juniper: junos

asa: asa

  1. Create /home/oxidized/.config/oxidized/router.db and make it look something like this depending on the os of your device:
    x.x.x.x:ios

x.x.x.x:procurve

x.x.x.x:vyatta

x.x.x.x:edgeos

  1. Copy the oxidized.services file from extras to /lib/systemd/system/
    #cp /var/lib/gems/2.5.0/gems/oxidized-0.27.0/extra/oxidized.service /lib/systemd/system

  2. Set the service to start at boot
    #sudo systemctl enable oxidized.service

Restart oxidized
#systemctl restart oxidized.service

For LibreNMS integration edit my /opt/librenms/config.php and add in the following:

Integration of Oxidized

$config[‘oxidized’][‘enabled’] = TRUE;

$config[‘oxidized’][‘url’] = ‘http://oxidizedserverip:8888’;

$config[‘oxidized’][‘features’][‘versioning’] = true;

$config[‘oxidized’][‘default_group’] = ‘default’;

$config[‘oxidized’][‘reload_nodes’] = true;

$config[‘oxidized’][‘ignore_types’] = array(‘server’,‘power’,‘storage’,‘wireless’,‘workstation’);

$config[‘oxidized’][‘ignore_os’] = array(‘linux’,‘windows’);

2 Likes