Librenms not gathering devices from oxidized api

Hi everyone,
I’m quite hopeless on my situation, but still, maybe someone has a solution for me. I recently installed oxidized on the same machine where librenms was, and everything works fine. It connects to my equipements, I can reach the api and see the gathered configurations, it’s all good. BUT, I cannot, in any case, have those configurations and nodes displayed in librenms (so when I go to Overview->tools->oxidized, and I click on reload nodes, I get a message saying “Oxidized node list was reloaded”, but nothing is displayed) and I don’t have anything in the config tab of a given device. I can reach and curl the oxidized api on the same machine, and when I do a tcpdump on the interface and port involved, I can see packets when I’m doing the curl, but not when I click on the reload button.
I’ve checked and recheck, tried every strategy possible in the config.php of librenms for oxidized, everything look absolutely fine (the API endpoint for oxidized, etc). I don’t understand, I even tried to modify the involved function in /opt/librenms/includes/functions.php to hardcode the curl destination but nothing happens. And also, I don’t have any http_proxy configured in my env or the config file, does someone have a solution ?

Can you please check the oxidized logs for the error. Also check whether oxidized service is running in background.

I am pasting sample oxidized configuration which I have done in my test environment


username: cisco
password: cisco
model: cisco
resolve_dns: true
interval: 600
use_syslog: false
debug: false
threads: 30
use_max_threads: false
timeout: 20
retries: 3
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
rest: 127.0.0.1:8888
next_adds_job: false
enable: true
vars:
enable: cisco
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: false
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: http://10.10.30.4/api/v0/oxidized
map:
name: hostname
model: os
group: group
headers:
X-Auth-Token: ‘5a7cdce065133447c7db640b6bc2fdf5’

oxidized is up and running via its systemd service, no errors on oxidized side, it’s working fine, the api is up and it’s polling the devices that oxidized gathered thanks to the librenms api. I can still paste the configuration I use for oxidized if you want:
username: toto
password: toto!
model: ios
resolve_dns: false
interval: 3600
use_syslog: true
log: /home/oxidized/.config/oxidized/log
debug: true
threads: 30
timeout: 20
retries: 3
rest: 10.xx.xx.xx:8888
prompt: !ruby/regexp /^([\w.@-]+[#>]\s?)$/
crash:
directory: “/home/oxidized/.config/oxidized/crashes”
hostnames: false
next_adds_job: false
vars: {}
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: true
ssh:
secure: false
ftp:
passive: true
output:
utf8_encoded: true
debug: true
file:
directory: “/home/oxidized/.config/oxidized/configs”
source:
default: http
debug: true
http:
url: https://librenms.infra.zac.stet/api/v0/oxidized
scheme: https
secure: false
file: “/home/oxidized/.config/oxidized/router.db”
delimiter: !ruby/regexp /:confused:
map:
name: hostname
model: os
username: username
password: password
group: group
vars_map:
ssh_port: ssh_port
headers:
X-Auth-Token: ‘XXXXXXXXXXXXXXXXXXXXXX’
model_map:
cisco: ios
iosxe: ios
juniper: junos
mikrotik: routeros