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:
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