Versions Compared
Key
- This line was added.
- This line was removed.
- Formatting was changed.
Table of Contents |
---|
Servidores, servicios y puertos
Servidor: zacatuche2.conabio.gob.mx
Servicio | Entorno | Directorio src | Puerto | Versión desplegada | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Elasticsearch |
| 9220 | 7.17.11 | |||||||
snib-v2-gateway |
|
| 4000 | |||||||
snib-v2-cat |
|
| 4001 | v0.2.1 | ||||||
snib-v2-ejemplares |
|
| 4002 | v0.2.3 | ||||||
snib-v2-gateway |
|
| 5000 | |||||||
snib-v2-cat |
|
| 5001 | 055ad24 | ||||||
snib-v2-ejemplares |
|
| 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:
Code Block | ||
---|---|---|
| ||
sudo apt update |
Instalar el paquete de transporte de capa de seguridad (Transport Layer Security, TLS):
Code Block | ||
---|---|---|
| ||
sudo apt install apt-transport-https |
Importar la clave GPG de Elasticsearch:
Code Block | ||
---|---|---|
| ||
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - |
Agregar el repositorio de Elasticsearch:
Code Block |
---|
echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list |
Asegúrate de ajustar la versión (en este caso, 7.x).
Actualizar los repositorios nuevamente:
Code Block |
---|
sudo apt update |
Instalar Elasticsearch:
Code Block |
---|
sudo apt install elasticsearch |
Habilitar y comenzar el servicio Elasticsearch:
Code Block | ||
---|---|---|
| ||
sudo systemctl enable elasticsearch sudo systemctl start elasticsearch |
Verificar el estado de Elasticsearch:
Code Block |
---|
sudo systemctl status elasticsearch |
Mantenimiento y actualización
Para mantener Elasticsearch actualizado, sigue estos pasos:
Actualizar la lista de paquetes y actualizar Elasticsearch:
Code Block | ||
---|---|---|
| ||
sudo apt update sudo apt upgrade elasticsearch |
Reiniciar el servicio después de la actualización:
Code Block |
---|
sudo systemctl restart elasticsearch |
Configuraciones especiales
/etc/elasticsearch/elasticsearch.yml
Code Block | ||
---|---|---|
| ||
# ---------------------------------- Cluster ----------------------------------- # cluster.name: snib-v2-data # # ------------------------------------ Node ------------------------------------ # node.name: zacatuche2-main # # ----------------------------------- Paths ------------------------------------ # path.data: /var/lib/elasticsearch # path.logs: /var/log/elasticsearch # # ---------------------------------- Network ----------------------------------- # network.host: _site_ # http.port: 9220 |
/etc/elasticsearch/jvm.options.d/my_jvm.options
Code Block |
---|
################################################################################ # JVM heap size ################################################################################ -Xms8g -Xmx8g |
Acordeón de comandos útiles
Los comandos que están aquí suponen que se tiene instalado httpie.
Consulta de índices disponibles:
Code Block language bash http zacatuche2.conabio.gob.mx/_cat/indices Accept:application/json
Consulta de mapeo de un índice:
Code Block language bash http zacatuche2.conabio.gob.mx/index-cat/_mappings Accept:application/json
Búsqueda sencilla sobre
index-cat
:Code Block language bash http zacatuche2.conabio.gob.mx:9220/index-cat/_search\?q=Lynx\%20\%rufus Accept:application/json
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://bitbucketgithub.orgcom/snib_siCONABIO/logstash4cat/
Logstash para ejemplares SNIB: https://github.com/CONABIO/logstash4occurrences/
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: https://github.com/CONABIO/snib-v2-gateway
Versión estable desplegada:
Versión desarrollo desplegada:
snib-v2-cat
Repositorio: https://github.com/CONABIO/snib-v2-cat
Versión estable desplegada: v0.2.1
Versión desarrollo desplegada: 055ad24
snib-v2-ejemplares
Repositorio: https://github.com/CONABIO/snib-v2-ejemplares
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:
Code Block |
---|
docker-compose -f docker-compose.yml -f production.yml build |
Encender los servicios recientemente construido
Code Block |
---|
docker-compose -f docker-compose.yml -f production.yml up -d |
Encender un servicio detenido
Code Block |
---|
docker-compose -f docker-compose.yml -f production.yml start |
Detener los servicios:
Code Block |
---|
docker-compose -f docker-compose.yml -f production.yml stop |
Reiniciar los servicios:
Code Block |
---|
docker-compose -f docker-compose.yml -f production.yml restart |
Ver el estado de los servicios:
Code Block |
---|
docker-compose -f docker-compose.yml -f production.yml ps |
Para obtener información más detallada sobre Docker Compose, consulta la documentación oficial de Docker Compose.