Hello,
I’m implementing librenms and oxidized on Kubernetes. I managed to create a deploy for both and “make it work”. However, when adding devices through LibreNMS, the Oxidized pod returns CrashLoopBackoff and when looking at the logs, it displays the error
source returns on usable nodes
/var/lib/gems/3.2.0/gems/oxidized-0.33.0/lib/oxidized/core.rb:15:in `initialize': source returns no usable nodes (Oxidized::Core::NoNodesFound)
I tested directly from the pod and the ping on the target device is being done, there is no firewall blocking or anything like that. Another detail is that when testing the API, everything works, it returns the devices registered in Libre, the problem is getting Oxidized to see these devices. Another test I did was changing the source from http to csv and oxidized finds the devices in router.db.
Bellow is my oxidized config.
model: junos
resolve_dns: false
interval: 3600
use_syslog: false
debug: true
run_once: false
threads: 30
use_max_threads: false
timeout: 60
retries: 10
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
extensions:
oxidized-web:
load: true
listen: '[::]'
url_prefix: oxidized
vhosts:
- myazurehost
next_adds_job: false
vars: {}
groups: {}
group_map: {}
models: {}
pid: "/home/oxidized/.config/oxidized/pid"
crash:
directory: "/home/oxidized/.config/oxidized/crashes"
hostnames: false
stats:
history_size: 10
input:
default: ssh, telnet
debug: true
ssh:
secure: false
ftp:
passive: true
utf8_encoded: true
output:
default: file
file:
directory: "/home/oxidized/.config/oxidized/configs"
source:
default: http
debug: true
http:
url: https://myazurehost/api/v0/oxidized
scheme: https
secure: false
map:
name: hostname
model: os
group: group
headers:
X-Auth-Token: ''
# source:
# default: csv
# csv:
# file: "/home/oxidized/.config/oxidized/router.db"
# delimiter: !ruby/regexp /:/
# map:
# name: 0
# model: 1
# gpg: false
model_map:
juniper: junos
cisco: ios
Just for context, everything is on Azure. The pods, the mysql database that I used Azure for MySQL instead of MariaDB and the PVC that I created to keep the config separate. I have configured ingress and DNS for both deployments.