LibreNMS – Řešení problémů (LibreNMS TSHOOT)

By | 18/01/2023

Last Updated on 24/03/2025 by administrator

LibreNMS – Řešení problémů (LibreNMS TSHOOT)

LibreNMS – Řešení problémů

Motivace:

Článek popisuje LibreNMS – Řešení problémů, které vyvstaly po instalaci aplikace LibreNMS, na Ubuntu 24.04 Ubuntu 22.04, tak na Ubuntu 20.04.

OS:

Řešení problémů probíhalo na Ubuntu 24.04 LTS, Ubuntu 22.04 LTS a Ubuntu 20.04 LTS.

Řešení problémů:

1) Chyba „Fail: Database: incorrect column“ [1]

Při přihlášení je možné, že se objeví chyba Fail: Database: incorrect column:

Fail: Database: incorrect column LibreNMS

Řešení problému:

Varianta 1:

Tu mám odzkoušenou na Ubuntu 24 – Jednoduše stačí kliknout na Attempt to automatically fix:

LibreNMS - Řešení problémů

A kliknout znovu na ozubenné kolečko a na Validate Config pro novou kontrolu:

Validate config librenms

Varianta 2:

Pokud se tlačítko Attempt to automatically fix nezobraží pak je nutné manuálního zásahu:

Přihlásit se do MariaDB přes uživatele librenms a pomocí definovaného hesla pro librenms, které bylo vytvořeno výše v článku:

mysql -u librenms -p librenms

A stačí překopírovat příkazy níže:

mysql> SET TIME_ZONE='+00:00';
mysql> ALTER TABLE `notifications` CHANGE `datetime` `datetime` timestamp NOT NULL DEFAULT '1970-01-02 00:00:00' ;
mysql> ALTER TABLE `users` CHANGE `created_at` `created_at` timestamp NOT NULL DEFAULT '1970-01-02 00:00:01' ;

Následně stačí provést refresh webové stránky.

2) Chyba „Make sure your daily.sh cron is running and run ./daily.sh by hand to see if there are any errors.“

Při přihlášení je možné, že se objeví chyba Make sure your daily.sh cron is running and run ./daily.sh by hand to see if there are any errors.

Řešení problému:

Přihlásit se přes uživatele librenms:

su - librenms

A spustit script daily.sh:

./daily.sh

3) Chyba – Po přidání síťového zařízení se nic neděje:

Po přidání síťových zařízení se nevykreslují grafy, chybí zobrazení detekce OS či platformy a ostatní informace:

poller error LibreNMS - Řešení problémů

Řešení problému:

Může být chybějící soubor pro Cron, což obsahuje příkaz pro automatizaci příkazu pro polling:

cp /opt/librenms/librenms.nonroot.cron /etc/cron.d/librenms

Soubor librenms má stejné práva jako ostatní soubory v /etc/cron.d/, což je v tomto případě root:root.

Fungující poller:

poller fix LibreNMS - Řešení problémů

4) Chyba – Python3 module:

[FAIL] Python3 module issue found: ‚Required packages: [‚PyMySQL!=1.0.0‘, ‚python-dotenv‘, ‚redis>=3.0‘, ‚setuptools‘, ‚psutil>=5.6.0‘, ‚command_runner>=1.3.0‘] Package not found: The ‚command_runner>=1.3.0‘ distribution was not found and is required by the application.

LibreNMS - Řešení problémů [FAIL] Python3 module issue found: 'Required packages: ['PyMySQL!=1.0.0', 'python-dotenv', 'redis>=3.0', 'setuptools', 'psutil>=5.6.0', 'command_runner>=1.3.0'] Package not found: The 'command_runner>=1.3.0' distribution was not found and is required by the application.

Řešení problému:

Instalace python3-pip a použití příkazu pip3 install, což ukazuje Fix:

sudo apt install python3-pip
sudo pip3 install -r /opt/librenms/requirements.txt

5) Varování – Log rotation not enabled:

Warning: Log rotation not enabled, could cause disk space issues

Warning: Log rotation not enabled, could cause disk space issues

Řešení problému:

Pro lepší správu ukládaných logů lze využít rotování logů. Díky tomu lze logy rotovat, komprimovat, či mazat, pokud dojde k překročení určité velikostí souboru:

cp /opt/librenms/misc/librenms.logrotate /etc/logrotate.d/librenms

6) Chyba – SQLSTATE[HY000] [2002] Connection refused:

Error connecting to database

SQLSTATE[HY000] [2002] Connection refused.

sql error database

Řešení problému:

1. Řešení – zvětšení disku:

V tomto případě pomohlo zvětšení diskového prostoru na Ubuntu. Ověření kapacity disku lze provést příkazem níže:

df -h

Výpis příkazu df -h ukazuje, že zbývá pouze 1,6 GB na disku.

Filesystem                        Size  Used Avail Use% Mounted on
/dev/mapper/pve-vm--115--disk--0  5.9G  4.1G  1.6G  73% /
none                              492K  4.0K  488K   1% /dev
tmpfs                             1.9G     0  1.9G   0% /dev/shm
tmpfs                             750M  112K  749M   1% /run
tmpfs                             5.0M     0  5.0M   0% /run/lock
tmpfs                             375M     0  375M   0% /run/user/0

Pokud používáte LXC kontejner na platformě Proxmox, článek níže popisuje, jak zvětšit disk:

Proxmox Jak zvětšit disk LXC kontejneru

Pak stačilo provést restart MariaDB:

systemctl restart mariadb

Nutno podotknout, že mi dočasně řešení pomohlo, nicméně po pár týdnech se chyba znovu objevila. Objevil jsem 2. řešení níže:

2. Řešení – Úprava konexí v databázi:

Přihlásit se do MariaDB databáze:

mysql

Vypsat aktuální počet maximálních konexí příkazem níže:

MariaDB [(none)]> SHOW GLOBAL VARIABLES LIKE '%max_connections%';

Výpis příkazu SHOW GLOBAL VARIABLES LIKE ‚%max_connections%‘; ukazuje, že maximální počet konexí je 151.

+-----------------------+-------+
| Variable_name         | Value |
+-----------------------+-------+
| extra_max_connections | 1     |
| max_connections       | 151   |
+-----------------------+-------+
2 rows in set (0.001 sec)

Osobně mi pomohlo nastavit maximální počet konexí na 512 [2]:

SET GLOBAL max_connections = 512;

Odhlásit se z databáze:

exit

Provést restart MariaDB:

service mariadb restart

7) Chyba – You have a different system timezone (CET) than the php configured timezone (UTC):

Tato chyba vyvstala pouze na Ubuntu 24.04, na nižší verzi Ubuntu se mi v praxi neobjevila:

LibreNMS TSHOOT

Tato chyba jede ruku v ruce s chybou níže:

LibreNMS TSHOOT

Řešení problému:

Otevřít soubor php.ini ve složce/etc/php/8.3/fpm/:

vi /etc/php/8.3/fpm/php.ini

A v rubrice Date zakomentovat date.timezone = Etc/UTC a přidat řádek date.timezone = „Europe/Prague“, tak jak je to ukázáno níže:

[Date]
; Defines the default timezone used by the date functions
; https://php.net/date.timezone
;date.timezone =
#date.timezone = Etc/UTC
date.timezone = "Europe/Prague"

To stejné provést pro soubor php.ini ve složce /etc/php/8.3/cli/:

vi /etc/php/8.3/cli/php.ini

kde v rubrice Date zakomentovat date.timezone = Etc/UTC a přidat řádek date.timezone = „Europe/Prague“, tak jak je to ukázáno níže:

[Date]
; Defines the default timezone used by the date functions
; https://php.net/date.timezone
;date.timezone =
#date.timezone = Etc/UTC
date.timezone = "Europe/Prague"

Provést restart PHP-FPM (FastCGI Process Manager):

sudo systemctl restart php8.3-fpm

A kliknout znovu na ozubenné kolečko a na Validate Config pro novou kontrolu:

Validate config librenms

7) Chyba – FAIL: No python wrapper pollers found

Tato chyba vyvstala pouze na Ubuntu 24.04, na nižší verzi Ubuntu se mi v praxi neobjevila.

Řešení problému:

Ubuntu 24.04 neměl nainstalovaný balíček cron:

apt install cron

A kliknout znovu na ozubenné kolečko a na Validate Config pro novou kontrolu:

Validate config librenms

8) We have found some files that are owned by a different user than ‚librenms‘, this will stop you updating automatically and / or rrd files being updated causing graphs to fail.

LibreNMS TSHOOT

Řešení problému:

Pomohly výše uvedené příkazy, které LibrenNMS doporučuje pro opravení:

sudo chown -R librenms:librenms /opt/librenms
sudo setfacl -d -m g::rwx /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/
sudo chmod -R ug=rwX /opt/librenms/rrd /opt/librenms/logs /opt/librenms/bootstrap/cache/ /opt/librenms/storage/

A kliknout znovu na ozubenné kolečko a na Validate Config pro novou kontrolu:

Validate config librenms

8) Your local git contains modified files, this could prevent automatic updates.

LibreNMS - Řešení problémů

Řešení problému:

Je potřeba se přihlásit jako uživatel librenms:

su librenms

Přejít do složky /opt/librenms/:

cd /opt/librenms/

A odstranit místní změny:

./scripts/github-remove -d

Výstup příkazu /scripts/github-remove -d:

Are you sure you want to delete all modified and untracked files? [y/N] y
Updated 12 paths from the index
Updated 0 paths from the index

   INFO  Clearing cached bootstrap files.

  events .................................................................................................................................. 8ms DONE
  views ................................................................................................................................... 1ms DONE
  cache ................................................................................................................................... 6ms DONE
  route ................................................................................................................................... 0ms DONE
  config .................................................................................................................................. 1ms DONE
  compiled ................................................................................................................................ 0ms DONE

9) Your install is over 24 hours out of date, last update: Mon, 09 Dec 2024 21:31:16 +0000

LibreNMS - Řešení problémů

Řešení problému:

Je potřeba se příhlásit jako uživatel librenms:

su librenms

Přejít do složky /opt/librenms/:

cd /opt/librenms/

A spustit script:

./daily.sh

Výpis scriptu ./daily.sh:

Updating to latest codebase                        OK
Updating Composer packages                         OK
Updated from 16943f9e3 to ff4051fc8                OK
Updating SQL-Schema                                OK
Updating submodules                                OK
Cleaning up DB                                     OK
Fetching notifications                             OK
Caching PeeringDB data                             OK

10) Scheduler is not running

LibreNMS Scheduler is not running

Řešení problému:

Jak je již zmíněno, problém vyřeší příkazy níže:

sudo cp /opt/librenms/dist/librenms-scheduler.service /opt/librenms/dist/librenms-scheduler.timer /etc/systemd/system/
sudo systemctl enable librenms-scheduler.timer
sudo systemctl start librenms-scheduler.timer

A kliknout znovu na ozubenné kolečko a na Validate Config pro novou kontrolu:

Validate config librenms

11) Some poller nodes have not checked in recently

LibreNMS - Řešení problémů

Řešení problému:

Přihlásit se k novému serveru LibreNMS přes webové rozhraní a kliknout na ikonu ozubeného kola > Poller > Poller:

 

LibreNMS pollers

A odstranit staré pollery:

librenms remove pollers

A kliknout znovu na ozubenné kolečko a na Validate Config pro novou kontrolu:

Validate config librenms

12) Chyba – QLSTATE[HY000] [1045] Access denied for user ‚librenms’@’localhost‘ (using password: YES):

FAIL: APP_URL is not set correctly. It should be set to http://librenms.lan

FAIL: APP_URL is not set correctly. It should be set to

Řešení problému:

Přihlásit se přes uživatele librenms:

su - librenms

Přejít do souboru .env v /opt/librenms/ složce :

vi /opt/librenms/.env

V tomto případě přidat řádek níže:

APP_URL=http://librenms.lan

A kliknout znovu na ozubenné kolečko a na Validate Config pro novou kontrolu:

Validate config librenms

13) Chyba – FAIL: APP_URL is not set correctly. It should be set to http://librenms.lan:

Error connecting to database
SQLSTATE[HY000] [1045] Access denied for user ‚librenms’@’localhost‘ (using password: YES)

SQLSTATE[HY000] [1045] Access denied for user 'librenms'@'localhost' (using password: YES)

Řešení problému:

Jeden z možný problému je, že se hesla databáze neshodují např. při migraci na LibreNMS na nový server.

Zkontrolovat na novém serveru, zda je možné se přihlášit stejným heslem k databázi, jako je uvedeno v souboru /opt/librenms/.env (řádek z DB_PASSWORD):

mysql -u librenms -p -D librenms

Pokud se nelze přihlásit uvedeným heslem, které je obsaženo v souboru /opt/librenms/.env, je potřeba změnit heslo pro uživatele librenms:

sudo mysql -u root -p
MariaDB [(none)]> ALTER USER 'librenms'@'localhost' IDENTIFIED BY 'heslo_ktere_je_uvedeno_v_souboru_.env';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> exit

Věřím, že tento článek LibreNMS – Řešení problémů pomohl.

Zdroj:

[1] https://www.incredigeek.com/home/librenms-error-running-validate-php-database-incorrect-column/
[2] https://stackoverflow.com/questions/24225164/sqlstatehy000-1040-too-many-connections

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *