Updated Docker Image needed for 24.4.x due to device_perf table changes

Following the changes that removed the device_perf table in v24.4 being deployed on my server (managed using daily.sh), my pollers (using docker) are only able to get up to the 24.3 release with the latest image tag (Docker). This (I think) is resulting in pollers failing to record data due to the error with the missing db table.

validate.php from server (daily.sh enabled via cron)

===========================================
Component | Version
--------- | -------
LibreNMS  | 24.4.1 (2024-04-20T15:26:51+01:00)
DB Schema | 2024_04_10_093513_remove_device_perf (291)
PHP       | 8.1.2-1ubuntu2.14
Python    | 3.10.12
Database  | MariaDB 10.6.16-MariaDB-0ubuntu0.22.04.1
RRDTool   | 1.7.2
SNMP      | 5.9.1
===========================================

[OK]    Composer Version: 2.7.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]    Database and column collations are correct
[OK]    Database schema correct
[OK]    MySQL and PHP time match
[OK]    Distributed Polling setting is enabled globally
[OK]    Connected to rrdcached
[OK]    Active pollers found
[OK]    Dispatcher Service is enabled
[OK]    Locks are functional
[OK]    No active python wrapper pollers found
[OK]    Redis is functional
[OK]    rrdtool version ok
[OK]    Connected to rrdcached

validate.php from poller (deployed using docker image librenms/librenms:latest:

24579e01bf1b:/opt/librenms$ php validate.php
===========================================
Component | Version
--------- | -------
LibreNMS  | 24.3.0 (2024-04-06T12:25:48+01:00)
DB Schema | 2024_04_10_093513_remove_device_perf (291)
PHP       | 8.2.17
Python    | 3.11.8
Database  | MariaDB 10.6.16-MariaDB-0ubuntu0.22.04.1
RRDTool   | 1.8.0
SNMP      | 5.9.4
===========================================

[OK]    Installed from package; no Composer required
[FAIL]  APP_KEY does not match key used to encrypt data. APP_KEY must be the same on all nodes.
	[FIX]: 
	If you rotated APP_KEY, run lnms key:rotate to resolve.
[OK]    Database connection successful
[WARN]  Your database schema has extra migrations (2024_04_10_093513_remove_device_perf). If you just switched to the stable release from the daily release, your database is in between releases and this will be resolved with the next release.
[OK]    SQL Server meets minimum requirements
[OK]    lower_case_table_names is enabled
[OK]    MySQL engine is optimal
[OK]    MySQL and PHP time match
[OK]    Distributed Polling setting is enabled globally
[OK]    Connected to rrdcached
[OK]    Active pollers found
[OK]    Dispatcher Service is enabled
[OK]    Locks are functional
[OK]    No active python wrapper pollers found
[WARN]  Using database for locking, you should set CACHE_DRIVER=redis
[WARN]  IPv6 is disabled on your server, you will not be able to add IPv6 devices.
[OK]    rrdtool version ok
[OK]    Connected to rrdcached
[FAIL]  Scheduler is not running
	[FIX]: 
	sudo cp /opt/librenms/dist/librenms-scheduler.cron /etc/cron.d/
[WARN]  Non-git install, updates are manual or from package

you could ask here for image to be update → GitHub - librenms/docker: LibreNMS Docker image where the docker images are maintained

So you can either

  1. wait for them to be updated, or you can
  2. rollback your ‘server’ (unsure how that will work with the database unless you have a backup from before you upgraded it …), or you can
  3. clone and cut your own dockers based on the Dockerfile ^ and update your pollers

All versions need to be the same, so you probably need some method of ensuring you don’t get into the same state again as the release versions will always occur before the Docker images are updated, and the docker image update guy is a different person than the release guys…

1 Like

Thanks for the pointer to the docker image repo, I can see that there’s an outstanding pull request on there to update the image to the latest release.
Since all versions need to be the same, I imagine I will be disabling the servers daily cron that calls daily.sh, rather than building local images, so that upgrades can be handled manually in future while there’s no direct correlation between a github version release and the appropriate image being tagged on DockerHub.

@murrant Could the LibreNMS Docker Image be released simultaneously with the monthly version?