Migration d'OpenSearch entre serveurs
Introduction
Ce sujet a pour fonction de servir de guide pour effectuer une migration d'un serveur OpenSearch vers un autre OpenSearch, de la manière la plus efficace et simple possible, en copiant absolument tout ce qui se trouvait sur le serveur source pour l'importer sur le serveur cible.
Points importants :
- Les identifiants par défaut appliqués lors de l'installation automatisée via le script d'installation online d'OpenSearch pour Pandora FMS (
admin:P4nd0r4!FMS) sont indiqués. - Le nom donné au snapshot dans le guide est
migration, vous pouvez en indiquer un autre pour une meilleure identification si nécessaire.
Étapes à suivre
Prérequis
Les dossiers de backups d'OpenSearch doivent être déclarés sur les serveurs.
Dans le fichier /etc/opensearch/opensearch.yml, sur les deux serveurs, ajoutez cette ligne :
path.repo: ["/var/backups/opensearch"]
Redémarrez le service OpenSearch sur les deux serveurs avec la commande suivante :
sudo systemctl restart opensearch
Phase 1
Sur le serveur source, nous préparons le dossier et les autorisations pour héberger le backup :
sudo mkdir -p /var/backups/opensearch sudo rm -rf /var/backups/opensearch/* sudo chown -R opensearch:opensearch /var/backups/opensearch/ sudo chmod -R 775 /var/backups/opensearch/
Une commande rm est exécutée par sécurité, au cas où il existerait déjà (pour quelque raison que ce soit), afin de démarrer le processus avec un répertoire propre.
Nous enregistrons le dépôt dans OpenSearch. S'il y en avait un précédemment créé, il est supprimé et recréé :
# Just in case, we’ll delete the old record from the memory curl \ -X DELETE \ "https://localhost:9200/_snapshot/migration" -u 'admin:P4nd0r4!FMS' \ -k # We checked out the repository into the local folder curl \ -X PUT \ "https://localhost:9200/_snapshot/migration" \ -u 'admin:P4nd0r4!FMS' \ -k \ -H "Content-Type: application/json" \ -d '{ "type": "fs", "settings": { "location": "/var/backups/opensearch", "compress": true } }'
Dans ce cas, le dépôt s'appelle migration, comme indiqué au début du document.
Le snapshot est maintenant généré avec tout :
curl \ -X PUT \ "https://localhost:9200/_snapshot/migration/migration?wait_for_completion=true" \ -u 'admin:P4nd0r4!FMS' \ -k \ -H "Content-Type: application/json" \ -d '{ "indices": "*", "include_global_state": true }'
Comme il est indiqué wait_for_completion=true, le terminal sera arrêté et bloqué jusqu'à ce qu'il se termine.
À la fin, vous pouvez compresser les fichiers obtenus et les envoyer au serveur cible :
# 1. Check actual size sudo du -sh /var/backups/opensearch/ # 2. Compress into /tmp sudo tar -czvf /tmp/opensearch_migration.tar.gz -C /var/backups/opensearch . # 3. Send to the destination server (replace ‘user’ and the Target Server IP address) scp /tmp/opensearch_migration.tar.gz user@TARGET_SERVER_IP_ADDRESS:/tmp/
À défaut, vous pouvez utiliser tout autre protocole de transfert de fichiers de votre choix.
Phase 2
Si Pandora FMS est en cours d'exécution et connecté à l'OpenSearch cible, il doit être arrêté :
sudo systemctl stop pandora_server
Ensuite, il faut décompresser le backup et appliquer les autorisations appropriées. Si vous aviez déjà quelque chose dans le dossier de backups d'OpenSearch sur le serveur cible (pour quelque raison que ce soit), vous devez d'abord supprimer ce contenu :
sudo mkdir -p /var/backups/opensearch sudo rm -rf /var/backups/opensearch/* # Erase, just in case sudo tar -xzvf /tmp/opensearch_migration.tar.gz -C /var/backups/opensearch/ sudo chown -R opensearch:opensearch /var/backups/opensearch/ sudo chmod -R 755 /var/backups/opensearch/
Ensuite, nous allons enregistrer le dépôt sur le serveur OpenSearch cible :
curl \ -X PUT \ "https://localhost:9200/_snapshot/migration" \ -u 'admin:P4nd0r4!FMS' \ -k \ -H "Content-Type: application/json" \ -d '{ "type": "fs", "settings": { "location": "/var/backups/opensearch", "compress": true } }'
Et effacer les index par défaut pour éviter tout problème :
curl \ -X DELETE \ "https://localhost:9200/pandorafms-*,"\ ".opensearch-observability,"\ ".plugins-ml-config,"\ "security-auditlog-*,"\ "top_queries-*,"\ ".opensearch-sap-*"\ --cert /etc/opensearch/admin.pem \ --key /etc/opensearch/admin-key.pem \ -k
Enfin, la copie effectuée est importée sur le nouveau serveur :
curl \ -X POST \ "https://localhost:9200/_snapshot/migration/migration/_restore" \ --cert /etc/opensearch/admin.pem \ --key /etc/opensearch/admin-key.pem \ -k \ -H "Content-Type: application/json" \ -d '{ "indices": "*,-.opendistro_security", "include_global_state": true, "partial": false }'
.opendistro_security est omis pour éviter que le plugin de sécurité ne se bloque lui-même.
Vous devez attendre une réponse {“accepted”:true}.
Phase 3
Vérification :
curl \ -X GET \ "https://localhost:9200/_cat/indices?v" \ --cert /etc/opensearch/admin.pem \ --key /etc/opensearch/admin-key.pem \ -k
Et redémarrer le serveur PFMS :
sudo systemctl start pandora_server
Avec ce processus, vous devriez avoir tous les logs accessibles et visibles depuis la console web PFMS connectée au serveur OpenSearch cible.