Documentación para el despliegue de SNIB v2.0

Servidores, servicios y puertos

Servidor: zacatuche2.conabio.gob.mx

Servicio

Entorno

Directorio src

Puerto

Versión desplegada

Elasticsearch

Estable

 

9220

7.17.11

snib-v2-gateway

Estable

/srv/snib_v2-stable

4000

 

snib-v2-cat

Estable

/srv/cat-stable

4001

v0.2.1

snib-v2-ejemplares

Estable

/srv/occ-stable

4002

v0.2.3

snib-v2-gateway

DESARROLLO

/srv/snib_v2-dev

5000

 

snib-v2-cat

DESARROLLO

/srv/cat-dev

5001

055ad24

snib-v2-ejemplares

DESARROLLO

/srv/occ-dev

5002

v0.2.3

Elasticsearch

Version actual: 7.17.11

La versión de elasticsearch usada es la disponible en los repositorios de Ubuntu por lo que tanto su instalación como su actualización se hace usando apt.

Índices

Índice

Servicios conectados

Descripción

index-cat

  • snib-v2-cat@stable

  • snib-v2-cat@dev

Aquí se encuentra lo relacionado a las búsquedas disponibles para el CAT de CONABIO.

index-snib-occ

  • index-v2-ejemplares@stable

  • index-v2-ejemplares@dev

Índice para los registros biológicos del SNIB, este ínidice puede realizar consultas espaciales. Los campos indizados están con los nombre de DwC.

index-snib

  • index-v2-ejemplares@dev

Índice para los registros biológicos del SNIB, este ínidice puede realizar consultas espaciales.

Los índices tienen un mapping definido. Dichos mapeos se encuentran en el repositorio: https://github.com/CONABIO/elastic-mappings-snib-v2/ .

El mapeo define los tipos de datos, lexers y stemmers que se usan para que las búsquedas obtegan la información relevante. Para usar estos mapeos se puede consultar la documentación: https://www.elastic.co/guide/en/elasticsearch/reference/7.17/explicit-mapping.html .

Instalación de Elasticsearch en Ubuntu

Sigue estos pasos para instalar Elasticsearch en Ubuntu desde los repositorios oficiales:

  • Actualizar los paquetes existentes:

sudo apt update
  • Instalar el paquete de transporte de capa de seguridad (Transport Layer Security, TLS):

sudo apt install apt-transport-https
  • Importar la clave GPG de Elasticsearch:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
  • Agregar el repositorio de Elasticsearch:

  • Asegúrate de ajustar la versión (en este caso, 7.x).

  • Actualizar los repositorios nuevamente:

  • Instalar Elasticsearch:

  • Habilitar y comenzar el servicio Elasticsearch:

  • Verificar el estado de Elasticsearch:

Mantenimiento y actualización

Para mantener Elasticsearch actualizado, sigue estos pasos:

  • Actualizar la lista de paquetes y actualizar Elasticsearch:

  • Reiniciar el servicio después de la actualización:

Configuraciones especiales

/etc/elasticsearch/elasticsearch.yml

/etc/elasticsearch/jvm.options.d/my_jvm.options

Acordeón de comandos útiles

Los comandos que están aquí suponen que se tiene instalado httpie.

  • Consulta de índices disponibles:

  • Consulta de mapeo de un índice:

  • Búsqueda sencilla sobre index-cat:

Para mayor información ver la documentación de ElasticSearch.

Logstash

Para indizar los datos dentro del Elasticsearch se usa Logstash. Logstash es program que sirve para mobilizar datos de fuentes a salidas distintas, en nuestro caso extraemos los datos de las bases de datos de MySQL correspondientes al SNIB, transformamos la información para después registrarla en Elasticsearch.

Logstash se puede ejecutar de dos maneras, una es cada vez que se quiera indizar ejecutar el pipeline o dejarlo como servicio para que se ejecute de manera programada. Actualmente se está ejecutando de la primera forma.

Existen dos repositorios donde se definen los pipelines, lo necesario para ejecutarlos usando docker y hacer la indización:

To Do

  • Definir la periodicidad de la indización de los datos

Servicios de datos graphQL

Actualmente la federación de datos de CONABIO consiste en tres servicios de datos:

  • CAT

  • Ejemplares

  • Agrobiodiversidad (este servicio lo administra y controla el equipo de agrobiodiversidad)

y el gateway que sirve para unirlos.

Los servicios de CAT, ejemplares y gateway son desplegados en el servidor zacatuche2 usados como contenedores de Docker.

El código de los servicios se clonó de sus repositorios a la carpeta /srv del servidor. En cada carpeta están sus archivos de configuración como aplicación (config.json) y los de configuración de despliegue (production.yml).

Servicios

snib-v2-gateway

Repositorio:

Versión estable desplegada:

Versión desarrollo desplegada:

snib-v2-cat

Repositorio:

Versión estable desplegada: v0.2.1

Versión desarrollo desplegada: 055ad24

snib-v2-ejemplares

Repositorio:

Versión estable desplegada: v0.2.3

Versión desarrollo desplegada: v0.2.3

Administración de servicios con docker compose

Uso básico de Docker Compose

Si tienes un archivo docker-compose.yml que describe tus servicios, sigue estos pasos para administrarlos:

  • Construir los servicios cuando se realizan cambios de configuración o código:

  • Encender los servicios recientemente construido

  • Encender un servicio detenido

  • Detener los servicios:

  • Reiniciar los servicios:

  • Ver el estado de los servicios:

Para obtener información más detallada sobre Docker Compose, consulta la documentación oficial de Docker Compose.