Migrate LibreNMS to another server

By | 11/12/2024

Last Updated on 11/12/2024 by administrator

Migrate LibreNMS to another server

Migrate LibreNMS to another server

Motivace:

Tento článek „Migrate LibreNMS to another server“ popisuje podrobný postup migrace LibreNMS ze starého serveru na nový. Cílem je přenést konfiguraci, databázi a veškerá potřebná data, aby systém LibreNMS fungoval na novém serveru beze změn.

Při migraci LibreNMS na nový server, jak je popsáno v článku, se zachovají následující klíčové části:

  • Databáze (MySQL/MariaDB)
  • RRD data
  • Konfigurační soubory
  • Uživatelé a oprávnění
  • Poller konfigurace
  • Historie upozornění a alertů
  • Specifické úpravy (Jakékoliv ručně provedené změny)

Migrací se zachová veškerá důležitá data, nastavení a historie, která LibreNMS potřebuje pro bezproblémový provoz. Důraz je kladen na přenos databáze, RRD dat a konfiguračních souborů. Po migraci lze pokračovat v monitorování s původními daty a konfiguracemi bez ztráty funkčnosti nebo historie.

OS:

Migrace byla prováděna ze staršího Ubuntu 22.04 LTS na novější Ubuntu 24.04 LTS server, ale mezi LXC kontejnery na open-source platformě Proxmox verze 8.2-7.

Důvod k migraci:

Minimální verze PHP aby mohlo dojít k aktualizacím LibreNMS je verze 8.2 od října 2024, nicméně Ubuntu 22.04 LTS podporuje jen verzi 8.1.2, to byl důvod k migraci na nový server s OS Ubuntu 24.04 LTS s verzí 8.3.6.

Postup migrace LibreNMS [1]:

Zastavit cron úlohy zakomentovaním všech řádků v souboru v souboru /etc/cron.d/librenms:

vi /etc/cron.d/librenms

Exportovat MySQL databázi librenms na starém serveru:

mysqldump librenms -u root -p > librenms.sql

Překopírovat soubor librenms.sql na nový server např. pomocí SCP, kde 192.168.0.118 je nový server:

scp librenms.sql 192.168.0.118:/

Importovat databázi librenms na novém serveru:

mysql -u root -p librenms < librenms.sql

Překopírovat složku rrd ze starého serveru na nový server:

scp -r /opt/librenms/rrd/ 192.168.0.118:/opt/librenms

Překopírovat soubory .env and config.php ze starého serveru na nový server:

scp /opt/librenms/.env /opt/librenms/config.php 192.168.0.118:/opt/librenms

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

mysql -u librenms -p -D librenms

Pokud je možné se přihlásit, je možné tento bod přeskočit, 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

Na novém serveru se přihlásit jako uživatel librenms:

su librenms

Přejít do složky librenms:

cd /opt/librenms/

Zkontrolovat změněné soubory

git status

Výpis příkazu git status:

On branch master
Your branch is up to date with 'origin/master'.

nothing to commit, working tree clean

Ujistit se, že vlastníkem zkopírovaných souborů a složek je správný uživatel:

chown -R librenms:librenms /opt/librenms

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

 

A odstranit staré pollery:

librenms remove pollers

Povolit cron úlohy odkomentováním řádků v souboru v souboru /etc/cron.d/librenms na novém serveru:

vi /etc/cron.d/librenms

Na novém serveru se přihlásit jako uživatel librenms:

su librenms

A provést validaci:

/opt/librenms/validate.php

Výstup příkazu /opt/librenms/validate.php my měl vypadat následovně:

===========================================
Component | Version
--------- | -------
LibreNMS  | 24.11.0-96-gff4051fc8 (2024-12-11T11:22:22+01:00)
DB Schema | 2024_11_22_135845_alert_log_refactor_indexes (310)
PHP       | 8.3.6
Python    | 3.12.3
Database  | MariaDB 10.11.8-MariaDB-0ubuntu0.24.04.1
RRDTool   | 1.7.2
SNMP      | 5.9.4.pre2
===========================================

[OK]    Composer Version: 2.8.3
[OK]    Dependencies up-to-date.
[OK]    Database connection successful
[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]    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

Pokud by vyvstaly problémy s validací, řeší to tento článek – LibreNMS – Řešení problémů (LibreNMS TSHOOT).

Zdroj:

[1] https://docs.librenms.org/Support/FAQ/#faq24

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 *