Oxidized "Sync status: success" but Config Isn't Populating in LibreNMS

I’m having issues with getting my device configurations to show up in LibreNMS. Oxidized is able to successfully pull the configs and the “Config” tab shows up in LibreNMS. However when we click on Config in LibreNMS, it tells us “Sync status: success” but it doesn’t show the configuration.

---
interval: 3600 #interval in seconds
log: ~/.config/oxidized/log
debug: true
threads: 30
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
vars: {}
rest: 0.0.0.0:8888
pid: ~/.config/oxidized/oxidized.pid
input:
  default: ssh, telnet
  debug: true
  ssh:
    secure: false
output:
  default: file
  file:
     directory: ~/.config/oxidized/configs
source:
  default: csv
  csv:
    file: ~/.config/oxidized/router.db
    delimiter: !ruby/regexp /:/
    map:
      name: 0
      ip: 1
      model: 2
      username: 3
      password: 4
    vars_map:
      enable: 5
    headers:
      X-Auth-Token: '--------------'
model_map:
  cisco: ios
  juniper: junos
  ADTRAN: adtran
  EDGE: edge

When we try to pull up the config in LibreNMS, Oxidized gives these errors:

2018-08-21 18:11:30 - NoMethodError - undefined method `output' for nil:NilClass:
	/var/lib/gems/2.3.0/gems/oxidized-0.24.0/lib/oxidized/nodes.rb:174:in `block in yield_node_output'
	/var/lib/gems/2.3.0/gems/oxidized-0.24.0/lib/oxidized/nodes.rb:128:in `synchronize'
	/var/lib/gems/2.3.0/gems/oxidized-0.24.0/lib/oxidized/nodes.rb:128:in `with_lock'
	/var/lib/gems/2.3.0/gems/oxidized-0.24.0/lib/oxidized/nodes.rb:172:in `yield_node_output'
	/var/lib/gems/2.3.0/gems/oxidized-0.24.0/lib/oxidized/nodes.rb:60:in `fetch'
	/var/lib/gems/2.3.0/gems/oxidized-web-0.11.1/lib/oxidized/web/webapp.rb:82:in `block in <class:WebApp>'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1611:in `call'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1611:in `block in compile!'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (3 levels) in route!'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:994:in `route_eval'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (2 levels) in route!'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1015:in `block in process_route'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `catch'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `process_route'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:973:in `block in route!'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `each'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `route!'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1085:in `block in dispatch!'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1082:in `dispatch!'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `block in call!'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `call!'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:895:in `call'
	/var/lib/gems/2.3.0/gems/rack-protection-1.5.5/lib/rack/protection/xss_header.rb:18:in `call'
	/var/lib/gems/2.3.0/gems/rack-protection-1.5.5/lib/rack/protection/path_traversal.rb:16:in `call'
	/var/lib/gems/2.3.0/gems/rack-protection-1.5.5/lib/rack/protection/json_csrf.rb:18:in `call'
	/var/lib/gems/2.3.0/gems/rack-protection-1.5.5/lib/rack/protection/base.rb:49:in `call'
	/var/lib/gems/2.3.0/gems/rack-protection-1.5.5/lib/rack/protection/base.rb:49:in `call'
	/var/lib/gems/2.3.0/gems/rack-protection-1.5.5/lib/rack/protection/frame_options.rb:31:in `call'
	/var/lib/gems/2.3.0/gems/rack-1.6.10/lib/rack/nulllogger.rb:9:in `call'
	/var/lib/gems/2.3.0/gems/rack-1.6.10/lib/rack/head.rb:13:in `call'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/show_exceptions.rb:25:in `call'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:182:in `call'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:2013:in `call'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `block in call'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1787:in `synchronize'
	/var/lib/gems/2.3.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `call'
	/var/lib/gems/2.3.0/gems/rack-1.6.10/lib/rack/urlmap.rb:66:in `block in call'
	/var/lib/gems/2.3.0/gems/rack-1.6.10/lib/rack/urlmap.rb:50:in `each'
	/var/lib/gems/2.3.0/gems/rack-1.6.10/lib/rack/urlmap.rb:50:in `call'
	/var/lib/gems/2.3.0/gems/rack-1.6.10/lib/rack/builder.rb:153:in `call'
	/var/lib/gems/2.3.0/gems/puma-3.12.0/lib/puma/configuration.rb:225:in `call'
	/var/lib/gems/2.3.0/gems/puma-3.12.0/lib/puma/server.rb:658:in `handle_request'
	/var/lib/gems/2.3.0/gems/puma-3.12.0/lib/puma/server.rb:472:in `process_client'
	/var/lib/gems/2.3.0/gems/puma-3.12.0/lib/puma/server.rb:332:in `block in run'
	/var/lib/gems/2.3.0/gems/puma-3.12.0/lib/puma/thread_pool.rb:133:in `block in spawn_thread'

curl http://xxxxxxx:8888/node/show/HOSTNAME?format=json
{“name”:“HOSTNAME”,“full_name”:“HOST”,“ip”:“XXXXXXX”,“group”:null,“model”:“ADTRAN”,“last”:{“start”:“2018-08-22 00:32:14 UTC”,“end”:“2018-08-22 00:32:19 UTC”,“status”:“success”,“time”:5.436203045},“vars”:{“enable”:“DFASFASD”},“mtime”:“2018-08-22 00:32:20 UTC”}

What’s your config in librenms for oxidized

This same exact thing happens to me with a core Fortigate we have.
I think the problem is somehow related with the length of the file. Whereas for example Cisco devices have shorter configuration files and those show up with no issues, with this specific firewall with, again, a very very long configuration file (hence a heavy file), no text appears.

Shall I share my oxidized config file as well?

My coworker got it all straightened out. This was his solution:

“In order to get LibreNMS to successfully pull the configs in Oxidized, I had to use the IP Address of the routers in Oxidized as their names since I noticed that LibreNMS uses the IP Address as device name.”

If this happens in the webui of oxidized itself then it’s an issue there.