New Requirements for 1.40

To move our project forward, we are introducing Laravel into our code base and with it come some new requirements. Below are detailed instructions on how to handle these. Only some may be done before the merge.

Issues

  1. New php extension requirement mbstring. You can install this at any time to prevent issues when LibreNMS updates. Make sure you install the same version as the PHP version you are using. Example package names php7.0-mbstring, php72w-mbstring, php-mbstring. Ubuntu users, don’t forget to enable the extension phpenmod mbstring.

  2. MySQL max connections. We will be slowly migrating to a new MySQL connection library to improve our support. This will require roughly double the amount of MySQL connections until the migration is complete. Not having enough connections may cause devices to fail polling. To be safe, double your max_connections value in your my.cnf.

  3. New folders with write access, several new folders will be created under /opt/librenms and some require write access. LibreNMS tries to apply the correct permissions, but it may not have permission to. You cannot run these commands before the update, because the folders don’t exist yet.

    chown -R librenms:librenms /opt/librenms
    setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
    setfacl -R -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
    

    If using SELinux, you will need additional steps. See the install docs for instructions CentOS+NGINX CentOS+Apache

  4. Some plugins may cause issues. If you have plugin issues, check in with plugin author or try on Discord.

  5. Database credentials are now stored in /opt/librenms/.env They will be automatically copied from config.php once.

Possible benefits of this change

  1. Translatable Web UI
  2. Alternative database server support such as Postgres or SQLite.
  3. Safer database migrations.
  4. Easier to make and maintain the Web UI
  5. Take advantage of the Open Source ecosystem around Laravel
  6. The ability to move the Web UI forward and use new technologies like WebSockets

Some of these will take a lot of work, if you would like to help write some code, send it to GitHub - librenms/librenms: Community-based GPL-licensed network monitoring system and come talk with others on Discord

Where to get help

Search on the community site! Most problems have been solved by users of daily updates (some info may be out-dated as several fixes were merged after the main merge).

https://community.librenms.org/search

Come chat on Discord, there are plenty of helpful people hanging around there.

4 Likes