Librenms, oxidized. Missing previous config

I seem to have a problem where my previouse configs does not show up in librenms. It is suppose to be on the right top side, but there is nothing there. Not only that but my poller does not pull(no graphs showing). Below is my config for both oxidized and librenms(config.php), any suggestions?


resolve_dns: false
interval: 3600
use_syslog: false
debug: false
threads: 30
timeout: 20
retries: 2
prompt: !ruby/regexp /^(?.+)?\s?[#>]/
rest: 192.168.195.57:8888
next_adds_job: false
groups: {}
models: {}
pid: “/home/oxidized/.config/oxidized/pid”
crash:
directory: “/home/oxidized/.config/oxidized/crashes”
hostnames: false
stats:
history_size: 10
input:
default: ssh
debug: “/home/oxidized/.config/oxidized/log_input”
ssh:
secure: false
ftp:
passive: true
utf8_encoded: true
output:
default: git
git:
user: oxidized
email: “oxidized@example”
repo: /home/oxidized/.config/oxidized/oxidized-git
output:
file:
directory: “/home/oxidized/.config/oxidized/configs”
management ssh:
auth_methods: none, publickey, password, keyboard-interactive
source:
default: http
debug: false
http:
url: http://192.168.195.57/api/v0/oxidized
source:
default: csv
csv:
file: /home/oxidized/.config/oxidized/router.db
delimiter: !ruby/regexp /
map:
name: 0
ip: 1
model: 2
group: 3
vars_map:
enable: 4
model_map:
Juniper: junos
A10: acos
VSP7K: VSP7K
Palo: panos
groups:
palo:
username: admin
password: admin
Juniper:
username: rancid
password: dicnar.13
VSP7K:
username: rancid
password: dicnar.13
A10:
username: rancid
password: dicnar.13
hooks:
post-commit:
type: exec
events: [node_success, post_store]
cmd: ‘cd /home/oxidized/.config/oxidized/devices.git && git push -f -q /home/oxidized/.config/oxidized/devices.git master’

— end of oxidized–

---- config.php —
<?php ## Have a look in defaults.inc.php for examples of settings you can set here. DO NOT EDIT defaults.inc.php!`

### Database config
$config[‘db_host’] = ‘192.168.195.57’;
//$config[‘db_port’] = ‘3306’;
$config[‘db_user’] = ‘librenms’;
$config[‘db_pass’] = ‘KH_password’;
$config[‘db_name’] = ‘librenms’;
$config[‘db_socket’] = ‘’;

// This is the user LibreNMS will run as

//Please ensure this user is created and has the correct permissions to your install
$config[‘user’] = ‘librenms’;

### Locations - it is recommended to keep the default
#$config[‘install_dir’] = “/opt/librenms”;

### This should *only* be set if you want to *force* a particular hostname/port
### It will prevent the web interface being usable form any other hostname

$config[‘base_url’] = “http://librenms.company.com”;

### Enable this to use rrdcached. Be sure rrd_dir is within the rrdcached dir
### and that your web server has permission to talk to rrdcached.
$config[‘rrdcached’] = “unix:/var/run/rrdcached.sock”;

### Default community
$config[‘snmp’][‘community’] = array(“public”);

### Authentication Model
$config[‘auth_mechanism’] = “mysql”; # default, other options: ldap, http-auth
#$config[‘http_auth_guest’] = “guest”; # remember to configure this user if you use http-auth

### List of RFC1918 networks to allow scanning-based discovery
$config[‘nets’][] = “10.0.0.0/8”;
$config[‘nets’][] = “172.16.0.0/12”;
$config[‘nets’][] = “192.168.0.0/16”;

# Update configuration
$config[‘update_channel’] = ‘release’; # uncomment to follow the monthly release channel
$config[‘update’] = 0; # uncomment to completely disable updates

# following is necessary for poller-wrapper
# poller-wrapper is released public domain
$config[‘poller-wrapper’][‘alerter’] = FALSE;
# Uncomment the next line to disable daily updates
$config[‘update’] = 0;

# Uncomment to submit callback stats via proxy
$config[‘callback_proxy’] = “hostname:port”;

# Set default port association mode for new devices (default: ifIndex)
#$config['default_port_association_mode'] = 'ifIndex';

$config[‘enable_billing’] = 1;
$config[‘show_services’] = 1;
$config[‘nagios_plugins’] = “/usr/lib/nagios/plugins”;
$config[‘enable_syslog’] = 1;

# Oxidized configuration
$config[‘oxidized’][‘enabled’] = TRUE;
$config[‘oxidized’][‘url’] = ‘192.168.195.57:8888’;
$config[‘oxidized’][‘features’][‘versioning’] = true;
$config[‘oxidized’][‘group_support’] = true;
$config[‘oxidized’][‘default_group’] = ‘default’;
$config[‘oxidized’][‘reload_nodes’] = true;`

Are you using git on oxidized? Oxidized doesn’t keep previous versions unless you use git.

this is what I have in my oxidized config.

Can I have multiple sources in oxidized like this:
source:
default: http
debug: false
http:
url: http://192.168.195.57/api/v0/oxidized
source:
default: csv
csv:
file: /home/oxidized/.config/oxidized/router.db
delimiter: !ruby/regexp /
map:
name: 0
ip: 1
model: 2
group: 3
vars_map:
enable: 4

An update. I manage to get the git output in oxidized to work the right way, now Im able to compare diffs.The problme seemed to be that I’ve used two different output, so i commented out
#output:
# file:
# directory: "/home/oxidized/.config/oxidized/config
But in Librenms it’s still missing diffs


Is there other settings I need to configure.

The oxidized config looks wrong for integration with librenms and git.

Has this ever worked for any device, or is this just for one device?

Can you see the different versions in oxidized web?

Can you post the oxidized config to https://p.libren.ms/ so it’s formatted nicely

For all devices I’m able to compare config diffs, but I see that i’m not able to get other diffs. It only shows 1 version as available.


I tried using your link, seems like the whole config didnt show up (scroll to the buttom)
https://p.libren.ms/view/3e6dc01c

Did you make a config change on the device since switching to git format?

I assume you restarted oxidized service?

Click the update button on the device
image
watch oxidized logs, and check config versions again

I would remove this from your oxidized config aswell i don’t know what it does.

stats:
  history_size: 10

nothing seems to change after updating after changes in the switch.
I do see that in my oxidized directory new folders have appeared with .git extension
for each model. Previouse it was folders without .git extension, this has probably something to do with the git config in oxidized. I thought all this devices would be created inside the device.git folder

Thats because your using groups, if you want one repo, see here:

#https://github.com/ytti/oxidized/blob/master/docs/Outputs.md#output-git

also make sure /etc/oxidized/config doesn’t exist to ensure its loading the correct config file from ~/.config/oxidized/config

1 Like

I checked everything, still the same problem. I’ll try to make a new oxidized conifg and maybe reinstall Librenms. I there a way to go back to default settings in Librenms, I know I can replace the config.php with the default.config.php , but I’m also having problems with the pollers not showing anything (probably not able to getting the devices in Librenms), which is wierd since in Librenms I have added about 140+ devices which I am able to show config and reload them from the tools -> oxidized menu. Earlier I did try to follow this reddit guide for setting up oxidized and Librenms (https://www.reddit.com/r/LibreNMS/comments/7hb21o/librenms_oxidized/)
One thing I noticed in the guude is that, they do not use router.db to get the device info.

Take a look at “Feeding Oxidized” https://docs.librenms.org/Extensions/Oxidized/

I would try with just the LibreNMS as source, remove the csv section. In your config you need to specify map and headers (Generate an auth token in librenms)

      source:
        default: http
        debug: false
        http:
          url: https://librenms/api/v0/oxidized
          map:
            name: hostname
            model: os
            group: group
          headers:
            X-Auth-Token: '01582bf94c03104ecb7953dsadsadwed'

I did reistall and reconfigure oxidized and Librenms. I have tested with one device to start with. I am able to get the config both in librenms and oxidized using git output. There is two things i notice while playing around with the config. On oxidized config, when I use the router.db to fetch the config I am able to get diffs both in oxidized and librenms


But as you see from the image, I’m not able to get the device OS. It shows up as a generic device. Which makes it so that I cant create groups based on OS

When i tried changing the oxidized config to use librenms with the url (https://p.libren.ms/view/c0614e79) then I’m able to get the right OS (not a generic device) this makes it possible to create groups within Librenms
But’ im not able to start oxidized, it gives me an error:

node {:name=>“172.X.X.X”, :model=>“generic”, :group=>“default”} raised Oxidized::ModelNotFound with message ‘generic not found for node 172.X.X.X’
" source returns no usable nodes" and none of the diffs are available.
I would like to use oxidized with librenms. I did do some changes in the config.php (https://p.libren.ms/view/6f7bd544)

update. Finally everything works as I want it to.
Just a few syntax error and more configuration in the conifg.php

Hi @Nivek90
Can you please help me the changes we need to make in config.php other than the above mentioned.

Just in case anybody else stumbles upon this:

As a rule of thumb, this will occur in case Oxidized itself gets an error trying to provide needed info to LibreNMS. So, among other measures, first check if versioning works in the Oxidized web UI. You might need to use reverse proxy and/or edit “rest:…” line in Oxi config file to get to it.

If versioning works just fine in Oxi Web UI, you can go back to fiddling with LibreNMS itself.
Otherwise, if you do get an error, google it and there likely is going to be a fix on Oxi’s GitHub repo.

In my case, I struggled with this issue for a while until I figured to access Oxi Web UI, got an error there and edited 1 line in git.rb according to their GitHub issue on the text of said error.

integrate oxidized into librenms