Syslog transport broken since update

Greetings,

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)"}"

Here is the output from my validate.php

===========================================

Component Version
LibreNMS 22.10.0-92-gb807fd526 (2022-11-07T21:28:16+01:00)
DB Schema 2022_08_15_084507_add_rrd_type_to_wireless_sensors_table (248)
PHP 8.1.11
Python 3.9.2
Database MariaDB 10.5.15-MariaDB-0+deb11u1
RRDTool 1.7.2
SNMP 5.9

===========================================

[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.

Thank you for your clues, fix or advices.

Kind regards,

Greetings,

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.

Thank you for your assistance.

Kind regards,

Greetings again,

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”

This is the Validate from my new instance:

===========================================

Component Version
LibreNMS 22.10.0-113-gc26cbc9a4 (2022-11-14T17:19:08+01:00)
DB Schema 2022_09_03_091314_update_ports_adsl_table_with_defaults (248)
PHP 8.1.12
Python 3.9.2
Database MariaDB 10.5.15-MariaDB-0+deb11u1
RRDTool 1.7.2
SNMP 5.9

===========================================

[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.

Kind regards

Hello @tuxpilot,

Does the transport itself fail, or just the test button? The test button is a known and expected issue.

Hello,

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.

This topic was automatically closed 90 days after the last reply. New replies are no longer allowed.