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

By | 18/01/2023

Last Updated on 11/12/2024 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):

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

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

Dobrovolný dar

Ahoj čtenáři, rád bych tě poprosil aby ses zamyslel, co je vše potřeba ke vzniku článku.
Jakožto amatérský softwarový kutil musím:

1) Nejdříve vše nastudovat v cizích jazycích.
2) Vše následně prakticky vyzkoušet.
3) Svoje poznatky a zkušenosti napsat do článku který si právě přečetl v jazyku kterému rozumíš.
4) Dát článku hlavu a patu a publikovat.

Každý článek zabere několik hodin práce, za kterou mi nikdo neplatí.
Prosím zvaž, kolik času jsem ti právě ušetřil.
Pokud ti to stojí aspoň za cenu jedné kávy, tak mi ji kup.
Předem moc děkuji.

Příspěvek tak můžeš provést zasláním libovolné částky na mé číslo účtu 1558701011/3030 Nebo můžeš dar poslat kliknutím na tento odkaz Podpořit tento WEB , který tě přesměruje na mou platební bránu Revolut.

Dar je také možné poslat ve formě Bitcoinu na BTC peněženku bc1qqdf5fp42a7srwwhh2rut8zr9x4jm5c8fqc9qw6

Veškeré peněžní prostředky budu také používat na zlepšení kvality své webové tvorby a na psaní nových technických návodů. Za každý dar předem děkuji.

Napsat komentář

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