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.

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"]'
      - "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: