Oxidized is a great tool for automating backups of device configs like ASA Firewalls, IOS routers, and all types of switches! I chose Oxidized because it very easy integrates into Librenms.
The instructions for how to integrate oxidized into LibreNMS are below:
go to the working directory
cd /root/
install ruby and crap
sudo yum -y install nano cmake sqlite-devel openssl-devel libssh2-devel ruby gcc ruby-devel
install oxidized
sudo gem install oxidized sudo gem install oxidized-script oxidized-web
run oxidized twice to generate config files
oxidized oxidized
edit the config file
nano /root/.config/oxidized/config
contents of the config file
--- username: username password: password model: junos interval: 3600 use_syslog: false debug: false threads: 30 timeout: 20 retries: 3 prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/ rest: 127.0.0.1:8888 next_adds_job: false vars: {} groups: {} models: {} pid: /root/.config/oxidized/pid input: default: ssh, telnet debug: false ssh: secure: false output: default: git file: directory: /root/.config/oxidized/configs output: default: git git: user: Oxidized email: [email protected] repo: "/var/lib/oxidized/devices.git" source: default: csv csv: file: /root/.config/oxidized/router.db delimiter: !ruby/regexp /:/ map: name: 0 model: 1 username: 2 password: 3 vars_map: enable: 4 gpg: false model_map: cisco: ios juniper: junos hp: procurve
Generate the router.db file which will house our passwords
nano /root/.config/oxidized/router.db
contents of the file
#Firewalls 10.0.0.1:asa:admin:pass:enablepass #Switches 10.0.0.8:hp:manager:pass
run oxidized
oxidized
You should see this
Now let’s configure it to run as a service
note: You should check your version of oxidized, the latest as of right now is 0.20.0
sudo cp /usr/local/share/gems/gems/oxidized-0.20.0/extra/oxidized.service /lib/systemd/system/
Now edit this file we created. Edit the user to be “root” and save it.
nano /lib/systemd/system/oxidized.service
Now let’s reload systemctl and start up the service
sudo systemctl daemon-reload sudo systemctl enable oxidized.service sudo systemctl start oxidized sudo systemctl status oxidized
Status should show:
In LibreNMS my config for Oxidized (Gear Icon | Global Settings | External Settings| Oxidized Integration)
As of right now you should see a “Config” tab per device, and a config saved for the devices we added to router.db.
We can see here that my device config is saved.
Documents I referenced when creating this:
http://packetpushers.net/install-oxidized-network-configuration-backup/
https://docs.librenms.org/Extensions/Oxidized/
If you’re interested in installing nagios plugins for librenms to enable services, click here