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

Napsat komentář

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