Oxidized config-search not working in librenms

I am not getting config-search working https://librenms/oxidized/ and the search tab.

my environment:

$ gem list | grep oxidized
oxidized (0.27.0, 0.26.3)
oxidized-script (0.6.0)
oxidized-web (0.13.1)

running stable version of librenms

$ ./validate.php
====================================
Component | Version
--------- | -------
LibreNMS  | 1.59
DB Schema | 2019_12_16_140000_create_customoids_table (152)
PHP       | 7.2.24-0ubuntu0.18.04.2
MySQL     | 10.1.43-MariaDB-0ubuntu0.18.04.1
RRDTool   | 1.7.0
SNMP      | NET-SNMP 5.7.3
====================================

[OK]    Composer Version: 1.9.2
[OK]    Dependencies up-to-date.
[OK]    Database connection successful
[OK]    Database schema correct

My oxidized configuration:

---
interval: 3600
use_syslog: true
threads: 30
timeout: 20
retries: 2
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 127.0.0.1:8888
groups:
  router1:
    username: oxidized
    vars:
      ssh_keys: "~/.ssh/id_rsa"
  router2:
    username: user2
    password: pass2

model_map:
  cisco: ios
  vyos: vyatta
  ciscosb: ciscosmb
vars: {}
input:
  default: ssh, telnet
  debug: false
  ssh:
    secure: false

output:
  default: git
  git:
    user: 'user'
    email: '[email protected]'
    single_repo: true
    repo: "/etc/oxidized/configs-git/"
source:
  default: http
  debug: true
  http:
    url: https://librenms/api/v0/oxidized
    scheme: http
    delimeter: !ruby/regexp /:/
    map:
      name: hostname
      model: os
      group: group
    headers:
      X-Auth-Token: 'xxx'

My oxidized config validation fails, I don’t know if that is related?
image

If I search for anything, it turns green.

image

And the syslog is spanned with this:

Jan 20 09:35:37 librenms oxidized[30774]: 2020-01-20 09:35:37 - NoMethodError - undefined method `output' for nil:NilClass:
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/nodes.rb:176:in `block in yield_node_output'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/nodes.rb:130:in `synchronize'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/nodes.rb:130:in `with_lock'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/nodes.rb:174:in `yield_node_output'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/nodes.rb:62:in `fetch'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/oxidized-web-0.13.1/lib/oxidized/web/webapp.rb:56:in `block (2 levels) in <class:WebApp>'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/oxidized-web-0.13.1/lib/oxidized/web/webapp.rb:54:in `map'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/oxidized-web-0.13.1/lib/oxidized/web/webapp.rb:54:in `each'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/oxidized-web-0.13.1/lib/oxidized/web/webapp.rb:54:in `block in <class:WebApp>'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1611:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1611:in `block in compile!'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (3 levels) in route!'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:994:in `route_eval'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:975:in `block (2 levels) in route!'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1015:in `block in process_route'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `catch'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1013:in `process_route'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:973:in `block in route!'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `each'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:972:in `route!'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1085:in `block in dispatch!'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1082:in `dispatch!'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `block in call!'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `block in invoke'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `catch'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1067:in `invoke'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:907:in `call!'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:895:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-protection-1.5.5/lib/rack/protection/xss_header.rb:18:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-protection-1.5.5/lib/rack/protection/path_traversal.rb:16:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-protection-1.5.5/lib/rack/protection/json_csrf.rb:18:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-protection-1.5.5/lib/rack/protection/base.rb:49:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-protection-1.5.5/lib/rack/protection/base.rb:49:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-protection-1.5.5/lib/rack/protection/frame_options.rb:31:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-1.6.12/lib/rack/nulllogger.rb:9:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-1.6.12/lib/rack/head.rb:13:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/show_exceptions.rb:25:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:182:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:2013:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `block in call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1787:in `synchronize'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/sinatra-1.4.8/lib/sinatra/base.rb:1487:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-1.6.12/lib/rack/urlmap.rb:66:in `block in call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-1.6.12/lib/rack/urlmap.rb:50:in `each'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-1.6.12/lib/rack/urlmap.rb:50:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/rack-1.6.12/lib/rack/builder.rb:153:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/puma-3.11.4/lib/puma/configuration.rb:225:in `call'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/puma-3.11.4/lib/puma/server.rb:632:in `handle_request'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/puma-3.11.4/lib/puma/server.rb:446:in `process_client'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/puma-3.11.4/lib/puma/server.rb:306:in `block in run'
Jan 20 09:35:37 librenms oxidized[30774]: #011/var/lib/gems/2.5.0/gems/puma-3.11.4/lib/puma/thread_pool.rb:120:in `block in spawn_thread'

Have You tried doing what it says?

@Kevin_Krumm could you explain, I dont understand what you mean.

Says in that Red box to enable something

@Kevin_Krumm I might have found something…

If I put this line in my librenms config, oxidized search starts working… So one or more devices that are procurve, that are fed from librenms to oxidized makes oxidized sick

IF this is in config.php, vlan search in oxidized works
$config['oxidized']['ignore_os'] = array('procurve')

here are some procurve OS samples devices that are fed to oxidized from librenms. None of the procurve devices are missing any info in regards to ip/os/group…

hostname,os,ip,group
11122p-swi010.longcustomer.lan,procurve,10.16.253.20,c11122
66666p-swi014.xx.intra,procurve,10.16.208.18,c66666
o12-c7000-3-2.kjcore.com,procurve,10.18.40.138,hp
abc-hpsw04.c12345.doma.in,procurve,192.168.16.133,c12345
us-asdf-hpsw01.c12345.doma.in,procurve,10.17.3.2,c12345_2
44444p-swi005.iii-domain.as,procurve,10.16.248.15,c44444
98765p-swi003.two.asdkfjhasdklfha.es,procurve,10.11.12.4,c98765

I have hundreds of procurve devices, so its kind of hard to ignore them one by one.

I found the issue.

One of the procurve switches had a trailing . in the name field from LibreNMS.

This caused some unknown issues with Oxidized.
After removing the trailing dot from hostname in LibreNMS, the config search is working again.

1 Like