Egy másik biztonsági mentés - több mint egy szkript, egyszerűbb, mint egy rendszer

Számos biztonsági mentési rendszer létezik, de mi a teendő, ha a kiszolgált szerverek különböző régiókban és kliensekben vannak szétszórva, és be kell érnie az operációs rendszerrel?

Egy másik biztonsági mentés - több mint egy szkript, egyszerűbb, mint egy rendszer

Jó napot, Habr!
A nevem Natalya. Az NPO Krista alkalmazás-adminisztrátorok csoportjának csoportvezetője vagyok. Cégünk projektcsoportjának munkatársai vagyunk. Meglehetősen egyedi a helyzetünk: szoftvereinket cégünk szerverein és az ügyfelek telephelyein található szervereken egyaránt telepítjük és karbantartjuk. Ebben az esetben nincs szükség a teljes szerver biztonsági mentésére. Csak a „lényeges adatok” fontosak: a DBMS és az egyes fájlrendszer-könyvtárak. Természetesen a klienseknek van (vagy nincs) saját biztonsági mentési szabályzata, és gyakran biztosítanak valamilyen külső tárolót a biztonsági másolatok tárolására. Ebben az esetben a biztonsági mentés létrehozása után biztosítjuk a küldést külső tárhelyre.

Egy ideig biztonsági mentés céljából megelégedtünk egy bash szkripttel, de a konfigurációs lehetőségek bővülésével arányosan nőtt ennek a szkriptnek a bonyolultsága, és egy ponton arra jutottunk, hogy „a földre kell pusztítani, majd ...”.

A kész megoldások különböző okok miatt nem voltak alkalmasak: a mentések decentralizálásának szükségessége, a biztonsági mentések kliensnél történő helyi tárolásának követelménye, a beállítás bonyolultsága, az import helyettesítés, a hozzáférési korlátozások miatt.

Számunkra úgy tűnt, könnyebb valami sajátot írni. Ugyanakkor szerettem volna olyat szerezni, ami a következő N évre is elég lesz a helyzetünkhöz, de lehetőség van a hatókör bővítésére.

A feladat feltételei a következők voltak:

  1. az alapvető biztonsági mentési példány autonóm és helyben fut
  2. a biztonsági mentések és naplók tárolása mindig az ügyfél hálózatán belül van
  3. egy példány modulokból áll – egyfajta „konstruktor”
  4. необходима совместимость с используемыми дистрибутивами Linux, включая устаревшие, желательна потенциальная кроссплатформенность
  5. A példány használatához elegendő az ssh-n keresztüli hozzáférés, további portok megnyitása nem szükséges
  6. maximális könnyű beállítás és kezelés
  7. lehetséges (de nem szükséges) egy külön példány, amely lehetővé teszi a különböző szerverekről származó biztonsági mentések állapotának központi megtekintését

Itt láthatod, mire jutottunk: github.com/javister/krista-backup
ПО написано на python3; работает на Debian, Ubuntu, CentOS, AstraLinux 1.6.

A dokumentáció a lerakat docs könyvtárába kerül.

A rendszer működésének alapelvei:
művelet – olyan művelet, amely egy atomi műveletet hajt végre (adatbázis-mentés, könyvtármentés, átvitel A könyvtárból B könyvtárba stb.). A meglévő műveletek a core/actions könyvtárban találhatók
feladat – feladat, egy logikai „mentési feladatot” leíró műveletsor
ütemterv – ütemezés, feladatsor a feladatvégrehajtási idő opcionális jelzésével

A biztonsági mentés konfigurációja egy yaml fájlban tárolódik; általános konfigurációs szerkezet:

  • Általános beállítások
  • műveletek szakasz: a szerveren használt műveletek leírása
  • ütemezési szakasz: az összes feladat (műveletcsoportok) leírása és elindításának ütemezése cron szerint, ha ilyen indítás szükséges

Itt található egy példa konfiguráció

Mit tud jelenleg az alkalmazás:

  • Számunkra a fő műveletek támogatottak: PostgreSQL biztonsági mentés pg_dump-on keresztül, fájlrendszer-könyvtár-mentés tar-on keresztül; műveletek külső tárolóval; rsync a könyvtárak között; biztonsági mentés elforgatása (régi másolatok törlése)
  • külső script meghívása
  • külön feladat kézi végrehajtása
    /opt/KristaBackup/KristaBackup.py run make_full_dump
  • hozzáadhat (vagy eltávolíthat) egyetlen feladatot vagy a teljes ütemezést a crontabhoz
    /opt/KristaBackup/KristaBackup.py enable all
  • trigger fájl létrehozása a biztonsági mentés eredményei alapján. Ez a funkció a Zabbix-szal együtt hasznos a biztonsági mentések figyeléséhez
  • működhet a háttérben webapi vagy web módban
    /opt/KristaBackup/KristaBackup.py web start [--api]

Разница между режимами: в webapi нет собственно веб-интерфейса, но приложение отвечает на запросы другого инстанса. Для режима web нужно установить flask и несколько дополнительных пакетов, а это не везде приемлемо, например в сертифицированной AstraLinux LÁT.

A webes felületen keresztül megtekintheti a csatlakoztatott szerverek biztonsági mentéseinek állapotát és naplóit: a „webes példány” az API-n keresztül kér adatokat a „backup példányoktól”. A webhez való hozzáférés engedélyt igényel, a webapi elérése nem.

Egy másik biztonsági mentés - több mint egy szkript, egyszerűbb, mint egy rendszer

A hibás biztonsági mentések naplói színnel vannak jelölve: figyelmeztetés – sárga, hiba – piros.

Egy másik biztonsági mentés - több mint egy szkript, egyszerűbb, mint egy rendszer

Egy másik biztonsági mentés - több mint egy szkript, egyszerűbb, mint egy rendszer

Ha az adminisztrátornak nincs szüksége csalólapra a paraméterekről, és a szerver operációs rendszerek homogének, akkor lefordíthatja a fájlt és terjesztheti a kész csomagot.

Ezt a segédprogramot elsősorban az Ansible-n keresztül terjesztjük, először a legkevésbé fontos kiszolgálókon, majd tesztelés után az összes többi szerveren.

Ennek eredményeként egy kompakt, önálló másolási segédprogramot kaptunk, amely automatizálható, és még a tapasztalatlan rendszergazdák is használhatják. Nekünk kényelmes – talán neked is hasznos lesz?

Forrás: will.com

Vásároljon megbízható tárhelyet DDoS védelemmel, VPS VDS szerverekkel rendelkező webhelyekhez 🔥 Vásároljon megbízható weboldal tárhelyet DDoS védelemmel, VPS VDS szerverekkel | ProHoster