ajout de la documentation pour Elasticsearch et Full Text Search

This commit is contained in:
François Pelletier 2021-03-07 12:25:58 -05:00
parent 57004db5ba
commit 362ae91903
7 changed files with 155 additions and 50 deletions

View file

@ -1,6 +1,4 @@
# Installation
## Installation du serveur Nextcloud
# Installation des applications et des clients
## Installation des applications
@ -52,44 +50,4 @@ apk add nextcloud-client
Le client principal et ceux pour les applications sont aussi disponibles directement depuis la page Applications, section Intégration
- [Android](https://apps.nextcloud.com/categories/integration?search=android)
- [iOS](https://apps.nextcloud.com/categories/integration?search=iOS)
## Installation de l'application Nextcloud pour Full Text Search
https://apps.nextcloud.com/apps/fulltextsearch_elasticsearch
## Installation Elasticsearch
```bash
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https openjdk-11-jre-headless
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
sudo apt-get update && sudo apt-get install elasticsearch
```
```bash
Démarrer le service Elasticsearch
```
```bash
sudo systemctl enable elasticsearch.service
sudo systemctl restart elasticsearch.service
```
## Installation de Kibana sur mon instance Yunohost
```bash
sudo apt-get update && sudo apt-get install kibana
```
```bash
sudo /bin/systemctl daemon-reload
sudo /bin/systemctl enable kibana.service
sudo systemctl start kibana.service
```
```bash
sudo yunohost app install redirect --args "domain=kibana.francoispelletier.org" -l "Kibana"
#Redirect destination path (default: http://127.0.0.1): http://127.0.0.1:5601
#Redirect type [public_302 | public_301 | public_proxy | private_proxy] (default: public_302): private_proxy
```
- [iOS](https://apps.nextcloud.com/categories/integration?search=iOS)

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 126 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 135 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 36 KiB

View file

@ -198,6 +198,16 @@ Avec PuTTY:
Avec un terminal, vous verrez un invite de commandes précédé d'un dièse lorsque connecté en root.
## Installation de screen (optionnel)
Comme nous allons rouler des commandes qui prennent un temps considérable à exécuter, nous allons utiliser screen, qui permet de garder une session active sur le serveur même si la connexion fait défaut.
```bash
sudo apt install -y screen
```
Pour la suite de ce tutoriel, si vous choisissez d'utiliser screen, nous allons assumer que vous avez lu la [section d'introduction du manuel](https://www.gnu.org/software/screen/manual/screen.html#Getting-Started).
## Installation de Yunohost
Exécuter les commandes suivantes en tant que root
@ -254,9 +264,10 @@ Dans notre configuration de routeur DHCP à la maison, nous allons figer cette a
Nous allons maintenant ajouter notre domaine au fichier "hosts".
Sur Windows (éditer en mode administrateur): `C:\Windows\System32\drivers\etc\hosts`
Sur Linux (éditer avec sudo): `/etc/hosts`
Sur MacOS (éditer avec sudo): `/private/etc/hosts`
- Sur Windows (éditer en mode administrateur): `C:\Windows\System32\drivers\etc\hosts`
- Sur Linux (éditer avec sudo): `/etc/hosts`
- Sur MacOS (éditer avec sudo): `/private/etc/hosts`
Ajouter la ligne suivante au fichier (Changer selon l'adressse IP de votre machine virtuelle):
```text
@ -265,12 +276,148 @@ Ajouter la ligne suivante au fichier (Changer selon l'adressse IP de votre machi
Vous pouvez maintenant vous connecter à votre instance Yunohost via l'adresse `https://nextcloud.local` dans votre navigateur. Attention, le navigateur va vous demander d'accepter le risque d'une adresse sans certificat valide.
![figer IP](Nextcloud-Installation-VirtualBox-042.png)
![accepter https](Nextcloud-Installation-VirtualBox-042.png)
Une fois arrivé à la fenêtre de connexion, entrez `utilisateur` et `nextcloud`
![figer IP](Nextcloud-Installation-VirtualBox-043.png)
![connexion](Nextcloud-Installation-VirtualBox-043.png)
Si vous voyez cette fenêtre, vous avez réussi ! Votre installation de Yunohost est fonctionnelle.
![figer IP](Nextcloud-Installation-VirtualBox-044.png)
![accueil yunohost](Nextcloud-Installation-VirtualBox-044.png)
## Installation de Nextcloud
On se connecte en SSH sur le serveur en utilisant le domaine cette fois-ci.
```bash
ssh -p 22 admin@nextcloud.local
```
On installe une instance de Nextcloud.
```
sudo yunohost app install nextcloud
```
Vous pouvez conserver les paramètres par défaut proposés à monis que vous désiriez utiliser un sous-domaine. Les paramètres de l'installation devraient ressembler à ceci.
```text
Choose the domain where this app should be installed [nextcloud.local] (default: nextcloud.local):
Choose the path where this app should be installed (default: /nextcloud):
Choose an administrator user for this app [utilisateur] (default: utilisateur):
Access the users home folder from Nextcloud? [yes | no] (default: no):
```
## Validation de l'installation
Pour vous assurer que l'installation de Nextcloud est bien fonctionnelle, ouvrez l'URL suivante dans votre navigateur: `https://nextcloud.local/nextcloud`
![Interface Nextcloud](Nextcloud-Installation-VirtualBox-045.png)
## Installation d'Elasticsearch
Nous allons installer Elasticsearch comme engin de recherche plein texte
```bash
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
sudo apt-get install apt-transport-https openjdk-11-jre-headless
echo "deb https://artifacts.elastic.co/packages/6.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-6.x.list
sudo apt-get update && sudo apt-get install elasticsearch
```
Il faut maintenant mettre en place et activer le service pour qu'Elasticsearch roule en arrière-plan.
```bash
sudo systemctl enable elasticsearch.service
```
Enfin, nous allons installer et activer le plugin d'indexations de documents pour Elasticsearch
```bash
/usr/share/elasticsearch/bin/elasticsearch-plugin install --batch ingest-attachment
```
Pour terminer, on redémarre le service
```bash
sudo systemctl restart elasticsearch.service
```
## Installation de l'engin de recherche plein texte de Nextcloud
Depuis le navigateur web, ouvrir l'URL suivante: `https://nextcloud.local/nextcloud/settings/apps`
Dans la section Rechercher, cliquez sur **Télécharger et activer** pour les trois applications suivantes:
- Full text search
- Full text search - Files
- Full text search - Elasticsearch Platform
![applications full text search](Nextcloud-Installation-VirtualBox-046.png)
Maintenant, allons dans la section Paramètres de Nextcloud pour configurer ces applications. Sélectionner `Elasticsearch` comme plateforme de recherche.
Indiquer `http://localhost:9200` comme adresse du Servlet et `nc_index` comme index
![Configuration full text search](Nextcloud-Installation-VirtualBox-047.png)
## Initialiser l'index
Depuis la session SSH, idéalement dans un screen, nous allons initialiser l'index Elasticsearch. Exécuter en tant que root.
```bash
cd /var/www/nextcloud
chmod a+x occ
sudo -u nextcloud php ./occ fulltextsearch:index
```
![initialiser l'index](Nextcloud-Installation-VirtualBox-048.png)
## Activer l'indexation en continu
Nous souhaitons que tous les nouveaux documents ajoutés dans Nextcloud soit indexés. Pour ce faire, nous allons créer un service dans systemd qui permet l'indexation en continu.
Avec un éditeur de texte, ouvrir et modifier le fichier "unit" du service.
```bash
sudo nano /etc/systemd/system/nextcloud-fulltext-elasticsearch-worker.service
```
Insérer le contenu suivant:
```text
[Unit]
Description=Elasticsearch Worker for Nextcloud Fulltext Search
After=network.target
[Service]
User=nextcloud
Group=nextcloud
WorkingDirectory=/var/www/nextcloud
ExecStart=/usr/bin/php /var/www/nextcloud/occ fulltextsearch:live -q
ExecStop=/usr/bin/php /var/www/nextcloud/occ fulltextsearch:stop
Nice=19
Restart=always
[Install]
WantedBy=multi-user.target
```
Activer et démarrer le service
```bash
systemctl daemon-reload
systemctl enable nextcloud-fulltext-elasticsearch-worker.service
systemctl start nextcloud-fulltext-elasticsearch-worker.service
```
Valider que le service est bien activé
```bash
systemctl status nextcloud-fulltext-elasticsearch-worker.service
```
![service d'indexation en continu](Nextcloud-Installation-VirtualBox-049.png)
On peut utiliser la recherche plein texte depuis l'URL suivante: `https://nextcloud.local/nextcloud/apps/fulltextsearch/`