Librenms CentOS OVA and Oxidized service: How To?

hi everyone,

i don’t know how, but librenms and oxidized are working in my test environment (Virualbox), including devices groups and config versioning.

Because I do not have any clue about linux and this stuff, I had used the CentOS OVA as base.

What I actually did not get to work is the oxidized.service.

I adjusted the ExecStart, don’t know if thats correct:

[Unit]
Description=Oxidized - Network Device Configuration Backup Tool
After=network-online.target multi-user.target
Wants=network-online.target

[Service]
ExecStart=/opt/librenms/.gem/ruby/gems/oxidized-0.27.0/bin/oxidized
User=oxidized
KillSignal=SIGKILL
#Environment="OXIDIZED_HOME=/home/oxidized"
Restart=on-failure
RestartSec=300s

[Install]
WantedBy=multi-user.target

What can I do to get oxidized.service to work?
changing username to the librenms user (“librenms”) makes no difference.

Error-Msg:

[librenms@localhost /]$ sudo systemctl stop oxidized.service
[librenms@localhost /]$ sudo systemctl start oxidized.service
[librenms@localhost /]$ sudo systemctl status oxidized.service -l
● oxidized.service - Oxidized - Network Device Configuration Backup Tool
   Loaded: loaded (/etc/systemd/system/oxidized.service; enabled; vendor preset: disabled)
   Active: activating (auto-restart) (Result: exit-code) since Fri 2020-08-14 08:56:03 CEST; 7s ago
  Process: 14131 ExecStart=/opt/librenms/.gem/ruby/gems/oxidized-0.27.0/bin/oxidized (code=exited, status=1/FAILURE)
 Main PID: 14131 (code=exited, status=1/FAILURE)

Aug 14 08:56:03 localhost.localdomain systemd[1]: oxidized.service: main process exited, code=exited, status=1/FAILURE
Aug 14 08:56:03 localhost.localdomain systemd[1]: Unit oxidized.service entered failed state.
Aug 14 08:56:03 localhost.localdomain systemd[1]: oxidized.service failed.

Kind Regards

Robert

first, give yourself some credit brother. This stuff actually isn’t as hard as you might think, it’s just unfamiliar.
I had issues getting oxidized to daemonize under RHEL/Centos. I run on deb now, so I don’t think it’s a 1:1 sort of thing but just in case it helps:

# /lib/systemd/system/oxidized.service
[Unit]
Description=Oxidized - Network Device Configuration Backup Tool
After=network-online.target multi-user.target
Wants=network-online.target

[Service]
ExecStart=/usr/local/bin/oxidized
User=oxidized
KillSignal=SIGKILL
PIDFile=/home/oxidized/pid

[Install]
WantedBy=multi-user.target

What I remember about this is that I ended up creating an oxidized user because when I was running on RHEL/Centos I was running as root which is not good. I created a home directory for the oxidized user also and as you can see in the config I pointed the process id file (PID) to /home/oxidized. This also went into my oxidized config file.

it looks like you are running this under the oxidized user. it also looks like you have the oxidized home set but commented out. I’m vaguely remembering something about if you run the gem or something it has to be in a container…not that I understood what that meant exactly except that it wasn’t as simple as pointing at the executable file.

i.e.

Nevermind I managed to fix my install. Effectively you need to point it to the rvm wrapper of oxidized. To do this open up your etc/systemd/system/oxidized.service and change to the following:

execstart=/usr/local/rvm/gems/ruby-2.3.7/wrappers/oxidized

Hi Killo, again :wink:

Well, I ask here hoping someone else uses the CentOS OVA.
I guess using the OVA the configuration file should be the same then.

homedir is commented out, because the instructions does not tell to remove it. I just copied the oxidized.service (not sure if it was the correct one, as there are multiple copies), and only adjusted the ExecPath (even not knowing if its correct).
#For RHEL / CentOS 7 put it in /etc/systemd/system/
#and call it with systemctl start oxidized.service

There should be no Linux user oxidized, the only user should be librenms (and perhaps root, but I do not have passwd). I did not setup a user named oxidized Librenms OVA uses Username librenms.

Also I do not have an wrappers directory…

[librenms@localhost /]$ sudo find . -name "wrappers"
find: ‘./proc/8541’: No such file or directory
[librenms@localhost /]$

OK. since a few minutes my librenms installtion is not working properly. The network adapter inside the VM is flapping from up to down and back. :frowning:

That kills my ssh session and GUI access. wtf

I don’t run Centos/RHEL anymore. I was running that with Observium before I switched to Deb and LibreNMS. I know 100% that I had problems getting oxidized to daemonize. I actually had problems getting smokeping to daemonize also. I thought I fixed it with that wrappers thing…and I really don’t know much about ruby on rails and gems and all of that but the impression I got was that the wrappers thing is an encapsulation layer. You could always try running oxidized from the command like with the wrappers path in it. Wish I had more information.

Also, no clue on why your machine is flaking out now. When I built my box, I just setup a template for deb and then followed the instructions to install Libre. It was fairly easy. Wish I could be of more help brother.