Projet

General

Profil

Administration de beCPG sous Docker

Installation

L’installation est constitué d’images docker qui sont construites et distribué par beCPG.
"Docker Compose" est utilisé pour débuter le téléchargement et la mise à jour de ces images.

Sur la machine Hôte, sous /opt/becpg-srv-instances, vous trouverez le dossier d’installation de beCPG. Les fichiers important sont :

/opt/becpg-srv-instances/inst1/.env
/opt/becpg-srv-instances/inst1/README.md
/opt/becpg-srv-instances/inst1/docker-compose.override.yml
/opt/becpg-srv-instances/inst1/docker-compose.yml
/opt/becpg-srv-instances/inst1/purge-logs.sh
/opt/becpg-srv-instances/inst1/ssl/000-default.conf
/opt/becpg-srv-instances/inst1/taillogs.sh
/opt/becpg-srv-instances/inst1/reindex.sh
/opt/becpg-srv-instances/inst1/stats.sh

Configuration de beCPG

Une grande partie des configuration sont inclues dans les conteneurs. Cependant, , vuos pouvez surcharger la configuration par défaut en éditant le fichier docker-compose.override.yml.

Le nom du service peut être changé dans le fichier .env et devrait correspondre au DNS et au certificat SSL :

SERVICE_NAME=inst1.becpg.fr

Vous pouvez changer l’allocation mémoire pour les services  sous :

vi /opt/becpg-srv-instances/inst1/docker-compose.override.yml
CATALINA_OPTS : * -Xmx6G to -Xmx8G for example

Configuration SSL

Les certificats SSL sont stockés sous /opt/becpg-srv-instances/inst1/ssl/, pour mettre à jour le certificat, vous n’avez qu’a remplacer le certificat avec votre nouveau certificat, de même nom et de redémarrer le service.

Dans certaines installations, les chemins des certificats SSL sont différents et peuvent être changés dans /opt/becpg-srv-instances/inst1/ssl/000-default.conf.

Étendre beCPG

En un 1er temps, créer un dossier config:

cd /opt/becpg-srv-instances/inst1 
mkdir config

Ensuite éditer le fichier docker-compose.override.yml :

vi /opt/becpg-srv-instances/inst1/docker-compose.override.yml

Et ajouter la déclaration de volumes sous la section «becpg:» :

volumes: 
- ./config/becpg-config-custom.xml:/usr/local/tomcat/shared/classes/alfresco/web-extension/becpg-config-custom.xml:ro

Créer votre fichier becpg-config-custom.xml

touch config/becpg-config-custom.xml

Puis placez-y dedans :

<alfresco-config>
        <config evaluator="string-compare" condition="wizard" replace="true">
                <!-- Your code -->
        </config>
</alfresco-config>

Tous les fichiers de configuration peuvent être surchargé de cette manière. Le service à besoin d’être redémarré (docker-compose up -d) pour prendre en compte la nouvelle configuration.

Administration de l’application

Démarrer et arrêté le service beCPG :

cd /opt/becpg-srv-instances/inst1
docker-compose stop
docker-compose up -d

Ou :

cd /opt/becpg-srv-instances/inst1
docker-compose restart

Regarder dans les logs :

cd /opt/becpg-srv-instances/inst1
./taillogs.sh

Ou :

cd /opt/becpg-srv-instances/inst1
docker-compose logs -f -t --tail="100"

Ou vous pouvez afficher les logs d’un conteneur en utilisant :

docker-compose logs becpg-mail

La commande ci-dessus affichera les logs du conteneur becpg-mail.

Pour en savoir plus sur les logs, allez sur la documentation officiel

Des logs additionnels sont disponibles dans chaque conteneur dans /var/lib/docker/volumes/_logs/**.

Déploiement d’une nouvelle version de beCPG

cd /opt/becpg-srv-instances/inst1
docker-compose pull
docker-compose up -d

Monitoring de l’application

Si vous souhaitez surveiller l’application, les mesures importantes sont :
  • La taille du disque (df -h)
  • La mémoire disponible sur le serveur (no swapping) (top)
  • Java Heap Size et les erreurs de dépassement de mémoire (docker-compose logs)

Sous beCPG admin, vous avez également accès à l’utilisation de la mémoire JAVA et aux utilisateurs connectés.

URL : https://*{instance}*/share/page/console/admin-console/becpg-admin
{instance} est à remplacer par l’adresse du serveur.

Vous pouvez également utiliser les outils de support

URL : https://{instance}/alfresco/s/ootbee/admin/admin-performance

Sur le serveur, vous pouvez utiliser docker pour avoir l’utilisatoin mémoire de chaque conteneur.

cd /opt/becpg-srv-instances/inst1
./stats.sh

Vous pouvez aussi utiliser top.

Afficher l’espace disponible sur le système:

df -h
du -ms /var/lib/docker/volumes

Réindexer en cas d’un crach du moteur d’index

cd /opt/becpg-srv-instances/inst1
./reindex.sh

Attention: Cela peut prendre beaucoup de temps pour la réindexation. >24h!

Sauvegarde

La sauvegarde dans beCPG est entièrement automatisé via un daemon (programme tournant constamment sur le système).

La sauvegarde inclue:

  • une sauvegarde de l’index de recherche.
  • Une sauvegarde des données des Bases de données.
  • Une sauvegarde des contenus et des réglages des données.

L’ordre de la sauvegarde est important. Par défaut, l’ordre est garantie par les scripts beCPG et est exécuté dans cet ordre:

  • 1. 00:00 Statistics update (Cube OLAP)
  • 2. 03:00 Creation of the search index backups
  • 3. 03:30 Creation of the databases backups
  • 4. 04:00 Backups of contents and setting

Récupération des données

La récupération du système est réaliser pendant que le système est éteint.

Arrêter le service

Sur le serveur beCPG:

docker stop inst1_becpg_1
docker stop inst1_solr_1

Copie des fichiers

Sur le serveur beCPG:

mv /var/lib/docker/volumes/inst1_becpg_data to /var/lib/docker/volumes/inst1_becpg_data_old 
cp $BACKUP_DIR/inst1_becpg_data to /var/lib/docker/volumes/

En utilisant rsync:

rsync -P --exclude 'solr4Backup' --exclude 'lucene-indexes' --exclude 'backup-lucene-indexes' --exclude 'keystore' -r -a --delete -v $BACKUP_DIR/inst1_becpg_data/_data/ /var/lib/docker/volumes/inst1_becpg_data/_data/

Récupération des bases de données MySQL

Les sauvegardes MySQL sont situées sous:

$BACKUP_DIR/inst1_becpg_backups/_data/:
  • becpg-db
  • olap-db

Sélectionnez la sauvegarde que vous voulez restaurer et décompresser la sauvegarde.

gunzip db_18_01_17.gz
gunzip becpg_olap_18_01_17.gz

Importer de vielles bases de données vers MySQL:

Pour la base de données principale:

echo "DROP DATABASE db;" | docker exec -i inst1_becpg-db_1 mysql -u root -pbecpg
echo "CREATE DATABASE db DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;" | docker exec -i inst1_becpg-db_1 mysql -u root -pbecpg
docker exec -i inst1_becpg-db_1 mysql -u root -pbecpg db < $BACKUP

$BACKUP se réfère à db_18_01_17

Pour la base de données Olap :

echo "DROP DATABASE becpg_olap;" | docker exec -i inst1_olap-db_1 mysql -u root -pbecpg
echo "CREATE DATABASE becpg_olap DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;" | docker exec -i inst1_olap-db_1 mysql -u root -pbecpg
mysqldump --host=$DB_IP -u becpg -pbecpg becpg_olap < $BACKUP

$BACKUP se réfère à becpg_olap_18_01_17

Redémarrer le service

cd /opt/becpg-srv-instances/inst1
docker-compose -f docker-compose.yml -f docker-compose.prod.yml restart

Remarques

  • Il est important de garder une sauvegarde de la Machine Virtuelle configurée.
  • Cette documentation ne couvre pas la récupération ou l’installation sur une Machine Virtuelle.