Installation

Installation OpenSearch

Procédure d’installation

Pour installer OpenSearch, différents moyens sont mis à disposition et sont expliqués pas à pas dans la documentation officielle.

Configuration

Pour configurer votre instance OpenSearch, éditez le fichier ${OPENSEARCH_HOME}/config/opensearch.yml tel que :

  • Pour définir le nom du cluster OpenSearch, dé-commentez la propriété cluster.name et modifiez sa valeur (ex: flower-es-dev)
  • Dans le cas d’un cluster OpenSearch, dé-commentez la propriété node.name et modifiez sa valeur par celle de votre choix (ex: node-1)
  • Ajoutez la propriété action.auto_create_index: false
  • Si plusieurs noeuds OpenSearch sont déployés sur la même machine, il est nécessaire de modifier la valeur de la propriété http.port
  • Pour accéder à OpenSearch depuis un serveur distant, il est nécessaire de dé-commenter la propriété network.host et de définir une des valeurs suivantes :
    • 0.0.0.0
    • nom DNS
    • adresse IP


Sécurité

Les utilisateurs internes d’OpenSearch sont définis dans le fichier ${OPENSEARCH_HOME}/plugins/opensearch-security/securityconfig/internal_users.yml.


Il est nécessaire de ne conserver que les utilisateurs dont vous avez l’utilité et de changer leur mot de passe afin d’éviter les valeurs par défaut pour des raisons de sécurité.

Pour changer le mot de passe d’un utilisateur :

  • lancer la commande : ${OPENSEARCH_HOME}/plugins/opensearch-security/tools/hash.sh -p <new_password>
  • Remplacer le hash du mot de passe dans le fichier ${OPENSEARCH_HOME}/plugins/opensearch-security/securityconfig/internal_users.yml pour l’utilisateur souhaité.
  • afin que les modifications soient prises en compte, exécuter le script ${OPENSEARCH_HOME}/plugins/opensearch-security/tools/securityadmin.sh


Pour plus d’informations concernant la sécurisation d’une instance OpenSearch, la documentation officielle est disponible ici.

Démarrage

Manuel

Pour terminer, démarrez OpenSearch en allant dans le dossier ${OPENSEARCH_HOME}/bin puis en exécutant le script opensearch.

Service

Pour installer OpenSearch Dashboards en tant que service systemd, le fichier suivant doit être créé dans le répertoire /etc/systemd/system tel que :


opensearch.service
[Unit]
Description=opensearch
Wants=network-online.target
After=network-online.target

[Service] RuntimeDirectory=opensearch PrivateTmp=true

WorkingDirectory=${OPENSEARCH_HOME}

User=${OPENSEARCH_USER} Group=${OPENSEARCH_USEr}

ExecStart=${OPENSEARCH_HOME}/bin/opensearch -p ${OPENSEARCH_HOME}/opensearch.pid -q

StandardOutput=journal StandardError=inherit

# Specifies the maximum file descriptor number that can be opened by this process LimitNOFILE=65536

# Specifies the memory lock settings LimitMEMLOCK=infinity

# Specifies the maximum number of processes LimitNPROC=4096

# Specifies the maximum size of virtual memory LimitAS=infinity

# Specifies the maximum file size LimitFSIZE=infinity

# Disable timeout logic and wait until process is stopped TimeoutStopSec=0

# SIGTERM signal is used to stop the Java process KillSignal=SIGTERM

# Send the signal only to the JVM rather than its control group KillMode=process

# Java process is never killed SendSIGKILL=no

# When a JVM receives a SIGTERM signal it exits with code 143 SuccessExitStatus=143

[Install] WantedBy=multi-user.target

Afin que le service soit démarré automatiquement par systemd, exécuter les commandes suivantes :


  systemctl enable opensearch.service

Validation

Afin de vérifier le bon fonctionnement d’OpenSearch, allez sur la page http://localhost:9200/.

Installation OpenSearch Dashboards

Procédure d’installation

Pour installer OpenSearch Dashboards, différents moyens sont mis à disposition et sont expliqués pas à pas dans la documentation officielle.

Configuration

Pour configurer votre instance OpenSearch Dashboards, éditez le fichier ${DASHBOARDS_HOME}/config/opensearch_dashboards.yml tel que :

  • Pour définir l’url d’accès à OpenSearch, dé-commentez la propriété opensearch.hosts et ajouter l’url de celui-ci (ex: [http://$ ${OPENSEARCH_URL}:9200])
  • Renseigner les identifiants de connexion d’un utilisateur OpenSearch dans les propriétés opensearch.username et opensearch.password.

  • Ajouter la propriété server.basePath avec pour valeur /gui/plugins/reporting

  • Ajouter la propriété server.rewriteBasePath avec pour valeur true

  • Pour accéder à OpenSearch Dashboards depuis un serveur distant, il est nécessaire de dé-commenter la propriété server.host et de définir une des valeurs suivantes :

    • 0.0.0.0
    • nom DNS
    • adresse IP

Sécurité

Étant donné qu’OpenSearch Dashboards est installé derrière le proxy de FlowerDocs Core, la sécurité d’accès à celui-ci sera géré par FlowerDocs. Il est par conséquent nécessaire de désactiver le plugin de gestion gérant l’authentification intégré à l’outil. Pour cela, supprimer le dossier ${DASHBOARDS_HOME}/plugins/securityDashboards.

Démarrage

Manuel

Pour terminer, démarrez OpenSearch Dashboards en allant dans le dossier ${DASHBOARDS_HOME}/bin puis en exécutant le script opensearch-dashboards.

Service

Pour installer OpenSearch Dashboards en tant que service systemd, le fichier suivant doit être créé dans le répertoire /etc/systemd/system tel que :


dashboards.service
[Unit]
Description=opensearch-dashboards
Wants=network-online.target
After=network-online.target

[Service] RuntimeDirectory=opensearch-dashboards PrivateTmp=true

WorkingDirectory=${DASHBOARDS_HOME}

User=${DASHBOARDS_USER} Group==${DASHBOARDS_USER}

ExecStart=${DASHBOARDS_HOME}/bin/opensearch-dashboards -q

StandardOutput=journal StandardError=inherit

# Specifies the maximum file descriptor number that can be opened by this process LimitNOFILE=65536

# Specifies the maximum number of processes LimitNPROC=4096

# Specifies the maximum size of virtual memory LimitAS=infinity

# Specifies the maximum file size LimitFSIZE=infinity

# Disable timeout logic and wait until process is stopped TimeoutStopSec=0

# SIGTERM signal is used to stop the Java process KillSignal=SIGTERM

# Send the signal only to the JVM rather than its control group KillMode=process

# Java process is never killed SendSIGKILL=no

# When a JVM receives a SIGTERM signal it exits with code 143 SuccessExitStatus=143

[Install] WantedBy=multi-user.target

Afin que le service soit démarré automatiquement par systemd, exécuter les commandes suivantes :


systemctl enable dashboards.service

Validation

Afin de vérifier le bon fonctionnement d’OpenSearch Dashboards, allez sur la page http://localhost:5601/gui/plugins/reporting.

Configuration FlowerDocs Core

Afin de configurer l’accès de FlowerDocs à OpenSearch et OpenSearch Dashboards, modifiez le fichier core.properties en fonction des paramètres renseignés lors de l’installation :

Propriété Valeur par défaut Description
es.nodes http://localhost:9200 Adresses des différents noeuds OpenSearch séparées par une ,
es.cluster flower-es-dev Le nom du cluster OpenSearch
es.username Le nom de l’utilisateur (optionnel)
es.password Le mot de passe de l’utilisateur (optionnel)
es.conflict.version true Utilise la notion de version pour gérer les modifications concurrentes
es.aggregation.max.size 100 Nombre de buckets maximum remontés par agrégation
kibana.url http://localhost:5601/gui/plugins/reporting URL d’accès à OpenSearch Dashboards à partir de FlowerDocs Core

Environnement de développement

Afin de mettre en place les composants techniques nécessaires au bon fonctionnement de FlowerDocs sans nécessiter d’installation et de configuration pour chacun d’eux, Docker Compose doit être installé sur votre poste. La configuration suivante permet de déployer OpenSearch, OpenSearch Dashboards ainsi que Redis.


Depuis le dossier dans lequel est ajouté le fichier suivant, lancer la commande suivante afin de démarrer les conteneurs Docker:

${DOCKER_COMPOSE_PATH} -f opensearch-stack.yml up


opensearch-stack.yml
version: '3'
services:
  opensearch-node1:
    image: opensearchproject/opensearch:1.3.4
    container_name: opensearch-node1
    environment:
      - cluster.name=opensearch-cluster
      - node.name=opensearch-node1
      - bootstrap.memory_lock=true # along with the memlock settings below, disables swapping
      - "OPENSEARCH_JAVA_OPTS=-Xms512m -Xmx512m" # minimum and maximum Java heap size, recommend setting both to 50% of system RAM
      - "DISABLE_INSTALL_DEMO_CONFIG=true" # disables execution of install_demo_configuration.sh bundled with security plugin, which installs demo certificates and security configurations to OpenSearch
      - "DISABLE_SECURITY_PLUGIN=true" # disables security plugin entirely in OpenSearch by setting plugins.security.disabled: true in opensearch.yml
      - "discovery.type=single-node" # disables bootstrap checks that are enabled when network.host is set to a non-loopback address
    ulimits:
      memlock:
        soft: -1
        hard: -1
      nofile:
        soft: 65536 # maximum number of open files for the OpenSearch user, set to at least 65536 on modern systems
        hard: 65536
    volumes:
      - opensearch-data1:/usr/share/opensearch/data
      - ./custom-opensearch.yml:/usr/share/opensearch/config/opensearch.yml
    ports:
      - 9200:9200
      - 9600:9600 # required for Performance Analyzer
    networks:
      - opensearch-net

opensearch-dashboards: image: opensearchproject/opensearch-dashboards:1.3.4 container_name: opensearch-dashboards ports: - 5601:5601 expose: - "5601" environment: - 'OPENSEARCH_HOSTS=["http://opensearch-node1:9200&#34;]&#39; - "DISABLE_SECURITY_DASHBOARDS_PLUGIN=true" # disables security dashboards plugin in OpenSearch Dashboards - "SERVER_BASEPATH=/gui/plugins/reporting" - "SERVER_REWRITEBASEPATH=true" networks: - opensearch-net

redis: image: redis:6.2.7 container_name: redis-opensearch ports: - 6379:6379

volumes: opensearch-data1:

networks: opensearch-net: