A couple times ago I updated my LibreNMS server from Debian10 to Debian11 and updated PHP from 7.4 to 8.1.11
Since then, the syslog Transport does not work anymore.
When i go to the transport webUI page, i click on the test button for my syslog transport and i get a red popup saying “test to syslog failed : general error”
The librenms logs gets written with this line everytime i click on the syslog transort test button :
“[2022-11-08T14:11:13.208665+01:00] production.ERROR: Call to undefined function LibreNMS\Alert\Transport\device_by_id_cache() {“userId”:11,“exception”:”[object] (Error(code: 0): Call to undefined function LibreNMS\Alert\Transport\device_by_id_cache() at /opt/librenms/LibreNMS/Alert/Transport/Syslog.php:44)"}"
[OK] Composer Version: 2.4.4
[OK] Dependencies up-to-date.
[OK] Database connection successful
[OK] Database Schema is current
[OK] SQL Server meets minimum requirements
[OK] lower_case_table_names is enabled
[OK] MySQL engine is optimal
[OK]
[OK] Database schema correct
[OK] MySQl and PHP time match
[OK] Active pollers found
[OK] Dispatcher Service not detected
[OK] Locks are functional
[OK] Python poller wrapper is polling
[OK] Redis is unavailable
[OK] rrdtool version ok
[OK] Connected to rrdcached
I found on a forum that swithing to php-fpm could solve my issue : but it did not solve the issue.
My daily.sh runs perfectly, no errors gets out.
I rebooted the server.
I removed every firewall rule.
I tried to reinstall the destination client which is supposed to receive the syslog transmission from the librenms server.
=> Nothing changed, the issue remains.
When i do a “logger” from the librenms (in CLI) to my syslog client server, it gets through, so something seems broken in librenms since the updates, and i can’t figure out how to repair it.
Of course i had a backup of the VM, but the retention was long gone when i saw that no syslog alert was being sent from the librenms server; and i’d love to repair it, and not reinstall my whole librenms server.
PS : This is my first post in the community, so hello everyone, and i sincerly hope i forgot nothing in my post to help you.
I thought it was due to the fact that my Librenms instance was on a Debian11, upgraded from a Debian10.
So i installed a brand new Debian11 from the official ISO of Debian11, then i installed a brand new Librenms instance on that new server and began to migrate the old datas to the new instance, following the FAQ :
I haven’t got the time to finish to migrate everything that i tested the syslog and i got the very same result :
“[2022-11-14T17:24:21.819518+01:00] production.ERROR: Call to undefined function LibreNMS\Alert\Transport\device_by_id_cache() {“userId”:11,“exception”:”[object] (Error(code: 0): Call to undefined function LibreNMS\Alert\Transport\device_by_id_cache() at /opt/librenms/LibreNMS/Alert/Transport/Syslog.php:44)"}"
So either i got something broken in my database or librenms.conf (the only things i migrated so far from the old server to the new one), or their is a bug in the new version of librenms regarding the Syslog Transport Type.
My Validate says that i have no polling method detected, which i think is normal since i am still copying the old datas to the new server, so my crons are disabled.
I tested to install a brand new librenms instance on a Debian11, with no migration at all.
Fresh out, with nothing to monitor; all fresh and new and naked.
I installed it by following this tutorial : Installing LibreNMS - LibreNMS Docs
I tested the syslog alert transport, and i got the very same error.
It appears to be a bug.
I always have this line in the logs :
production.ERROR: Call to undefined function LibreNMS\Alert\Transport\device_by_id_cache() {“userId”:1,“exception”:"[object] (Error(code: 0): Call to undefined function LibreNMS\Alert\Transport\device_by_id_cache() at /opt/librenms/LibreNMS/Alert/Transport/Syslog.php:44)"}
Just to test, i tried to create another transport alert, with “Alerta” (trying to workaround the issue)
My instance is a brand new one on a new and dedicated VM, and when i click on the test i got this message in the logs :
“production.ERROR: ErrorException: Undefined array key “sysName” in /opt/librenms/LibreNMS/Alert/Transport/Alerta.php:55”
[OK] Composer Version: 2.4.4
[OK] Dependencies up-to-date.
[OK] Database connection successful
[OK] Database Schema is current
[OK] SQL Server meets minimum requirements
[OK] lower_case_table_names is enabled
[OK] MySQL engine is optimal
[OK]
[OK] Database schema correct
[OK] MySQl and PHP time match
[OK] Active pollers found
[OK] Dispatcher Service not detected
[OK] Locks are functional
[OK] Python poller wrapper is polling
[OK] Redis is unavailable
[OK] rrd_dir is writable
[OK] rrdtool version ok
Sorry, but my knowledge in coding is too weak to continue my investigations further.
Sorry for the late answers,
No sadly it’s just not the test button.
My transport alert has not changed and right after the update it stopped working.
I realised that too late when my monitoring screen was not reacting whenever my librenms instance was seeing an issue.
So i tested the transport alert with the button and then i saw the error message.
Another test was to shutdown a monitored test VM.
Quickly after, librenms showed the VM as not accessible anymore, and i monitored my librenms instance as well as my syslog client with tcpdump.
Both were silent on the interface regarding traffic with the port 514.
My syslog client was not getting new logs either.