📂 Detall del Servei 🔍 Elasticsearch (es01)
El motor de cerca i analítica central del servidor ymir. Aquest servei gestiona la indexació de dades massives i l'explotació mitjançant scripts de Python i eines de visualització.
Aquest contenidor s'executa en mode root. Queda pendent valorar i migrar-lo a rootless. L'accés exterior es realitza a través del port 8008, protegit pel firewall del host.
A. Cicle de Vida i Reconstrucció
Elasticsearch és un servei exigent en recursos. En cas de recreació o actualització a la versió 8.17.3, s'ha d'utilitzar la següent comanda per mantenir la coherència del clúster i el rendiment de la memòria:
podman run -d \
--name es01 \
--net elastic \
--restart on-failure \
-p 8008:9200 \
-e "discovery.type=single-node" \
-e "ES_JAVA_OPTS=-Xms16g -Xmx16g" \
-e "xpack.security.enabled=false" \
-v /dades/elasticsearch_data:/usr/share/elasticsearch/data:Z \
elasticsearch:8.17.3
Nota d'Arquitectura:
- Memòria: S'assignen 16 GiB fixos al "Heap" de Java (
-Xms16g -Xmx16g) per evitar la fragmentació i pauses del Garbage Collector. - Xarxa: Connectat a la xarxa
elasticper aïllament i resolució de noms interna. - Seguretat: En aquest entorn de laboratori, la seguretat nativa (xpack) està desactivada per simplificar l'accés des de scripts interns de Python.
B. Configuració del Servei (Systemd)
El servei s'automatitza mitjançant la unitat /etc/systemd/system/container-elasticsearch.service.
- Tipus:
simple(ambRemainAfterExit=yes). - Dependències: Requereix
local-fs.targeti el muntatge de/dades. - Límits del Sistema: Donat que Elasticsearch obre molts fitxers, el servei hereta els límits de l'usuari jordih (configurats a
/etc/security/limits.conf).
[Unit]
Description=Podman container-elasticsearch.service
After=network-online.target local-fs.target
RequiresMountsFor=/dades/elasticsearch_data
[Service]
Environment=PODMAN_SYSTEMD_UNIT=%n
Environment=CONTAINERS_CONF_LOG_LEVEL=error
Restart=on-failure
RestartSec=30s
Type=simple
ExecStartPre=-/usr/bin/podman stop -t 20 es01
ExecStart=/usr/bin/podman --log-level=error start es01
RemainAfterExit=yes
ExecStop=/usr/bin/podman stop -t 20 es01
[Install]
WantedBy=multi-user.target
C. Receptes d'Operació (Cheat Sheet)
Gestió del Servei
- Estat del servei:
systemctl status container-elasticsearch.service - Logs del contenidor:
podman logs -f es01 - Reiniciar el motor:
systemctl restart container-elasticsearch.service
Salut del Clúster (API)
Des del propi servidor ymir, es pot verificar l'estat d'Elasticsearch:
# Verificar que el node està actiu
curl -X GET "localhost:8008/_cluster/health?pretty"
# Llistar els índexs i l'espai que ocupen
curl -X GET "localhost:8008/_cat/indices?v"
Manteniment de Dades
- Ocupació en disc:
du -sh /dades/elasticsearch_data - Persistent Storage: Les dades sobreviuen a la recreació del contenidor gràcies al volum vinculat a
/dades/elasticsearch_data.