I’ve just installed oxidized on my LibreNMS server in order to integrate LibreNMS with oxidized. After the install, I modified the oxidized config to allow it to pull devices from LibreNMS. oxidized will not start, and crashes every time with the following error: “no implicit conversion of String into Integer”.
Here’s the crashfile output:
2020-05-04 21:15:51 UTC
no implicit conversion of String into Integer [TypeError]
/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/source/http.rb:53:in block in string_navigate' /var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/source/http.rb:52:in
each’
/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/source/http.rb:52:in string_navigate' /var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/source/http.rb:29:in
block (2 levels) in load’
/var/lib/gems/2.5.0/gems/asetus-0.3.0/lib/asetus/configstruct.rb:21:in each' /var/lib/gems/2.5.0/gems/asetus-0.3.0/lib/asetus/configstruct.rb:21:in
each’
/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/source/http.rb:28:in block in load' /var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/source/http.rb:23:in
each’
/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/source/http.rb:23:in load' /var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/nodes.rb:15:in
block in load’
/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/nodes.rb:130:in synchronize' /var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/nodes.rb:130:in
with_lock’
/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/nodes.rb:10:in load' /var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/nodes.rb:125:in
initialize’
/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/core.rb:14:in new' /var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/core.rb:14:in
initialize’
/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/core.rb:4:in new' /var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/core.rb:4:in
new’
/var/lib/gems/2.5.0/gems/oxidized-0.27.0/lib/oxidized/cli.rb:13:in run' /var/lib/gems/2.5.0/gems/oxidized-0.27.0/bin/oxidized:8:in
<top (required)>’
/usr/local/bin/oxidized:23:in load' /usr/local/bin/oxidized:23:in
’
I have confirmed that my API key is working by issuing “curl -H ‘X-Auth-Token: MYAPIKEY’ http://127.0.0.1/api/v0/oxidized” and it returns JSON in the format below:
[
{
“hostname”: “fortigate1”,
“os”: “fortios”,
“ip”: “192.168.1.1”
},
Here is a copy of my oxidized config:
username: OMITTED
password: OMITTED
model: junos
resolve_dns: true
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: “/home/librenms/.config/oxidized/pid”
crash:
directory: “/home/librenms/.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
source:
default: http
http:
url: http://localhost/api/v0/oxidized
map:
name: hostname
model: os
group: group
headers:
X-Auth-Token: ‘OMITTED’
model_map:
juniper: junos
cisco: ios
I’m at a loss here. Any reference I’ve been able to find of this issue so far was caused by a bad API key, but I’ve confirmed my API key is good, so i’m really striking out on a resolution.
Any help is greatly appreciated.