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 |
| 4000 |
|
snib-v2-cat | Estable |
| 4001 | v0.2.1 |
snib-v2-ejemplares | Estable |
| 4002 | v0.2.3 |
snib-v2-gateway | DESARROLLO |
| 5000 |
|
snib-v2-cat | DESARROLLO |
| 5001 | 055ad24 |
snib-v2-ejemplares | DESARROLLO |
| 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 |
---|---|---|
|
| Aquí se encuentra lo relacionado a las búsquedas disponibles para el CAT de CONABIO. |
|
| Índice para los registros biológicos del SNIB, este ínidice puede realizar consultas espaciales. Los campos indizados están con los nombre de DwC. |
|
| Í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:
Logstash para CAT: https://github.com/CONABIO/logstash4cat/
Logstash para ejemplares SNIB:
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.