Ayer tuvimos que instalar un Elasticsearch en Debian. Y como nos dio bastantes problemas, os dejamos cómo hacerlo.
- Primero, NO instaléis la versión en los repositorios de Debian. Ojala fuera tan sencillo como
sudo apt-get install elasticsearch .
El paquete en los repositorios instala bien, se ejecuta bien, pero rechaza las conexiones cuando haces una prueba en el terminal mediante curl localhost:9200No deja registros, no da errores, nada. Si das un service elasticsearch status te dice Active (exited) en verde. Lo que significa que está arrancado, pero no sabe qué demonio usar.
Si buscas soluciones a esto hay muchas como cambiar el network.host de elasticsearch o decirle en /etc/default/elasticsearch que arranque el demonio (viene desactivado por defecto).No hagáis nada de eso, no perdáis tiempo, no funciona y la solución es más sencilla: instalar la última versión de los repositorios de Elasticsearch.
Lo primero que deberéis hacer es comprobar que versión de java tenéis con java -version. Debería decir al menos 1.8
Si no instala esa versión. Para ello:
Agrega los repositorios de Oracle:
su -
echo "deb http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee /etc/apt/sources.list.d/webupd8team-java.list
echo "deb-src http://ppa.launchpad.net/webupd8team/java/ubuntu xenial main" | tee -a /etc/apt/sources.list.d/webupd8team-java.list
apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys EEA14886
apt-get update
exit
Ahora tienes dos maneras de instalar el java:
Si quieres que esa versión sea la que tiene por defecto:
sudo apt-get install oracle-java8-set-default
Si no quieres que sea por defecto (yo no quería):
sudo apt-get install --no-install-recommends oracle-java8-installer
Comprueba la versión de nuevo con java -version.
Ahora vamos a instalar elasticsearch.
-
- Añadimos la clave pública de Elastic
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -
- Instala el apt-transport-https
sudo apt-get install apt-transport-https
- Añade el repositorio
echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list
- Actualiza e instala elasticsearch de los repositorios de la empresa.
sudo apt-get update && sudo apt-get install elasticsearch
- Añadimos la clave pública de Elastic
Más información sobre la instalación aquí.
Ok ya lo tienes instalado, ¿cómo lo ejecutas? Tienes que ver si tu sistema usa Sysv init o systemd. Lo puedes verificar de manera sencilla haciendo:
ps -p 1
Nosotros usábamos systemd y explicaré el proceso con este sistema. Pero dejo el enlace aquí para que veáis cómo se hace de la otra manera.
(Optativo aunque recomendable). Hacer que elasticsearch se inicie al arrancar el servidor:
sudo /bin/systemctl daemon-reload sudo /bin/systemctl enable elasticsearch.service
Podéis inicializar elasticsearch y pararlo con estos comandos:
sudo systemctl start elasticsearch.service sudo systemctl stop elasticsearch.service
Para ver si funciona haced un service elasticsearch status y debería poner online. Podéis comprobarlo haciendo
curl localhost:9200 y deberíais recibir algo como (por cierto podéis ver la versión de elasticsearch así tb):
{ "name" : "Cp8oag6", "cluster_name" : "elasticsearch", "cluster_uuid" : "AT69_T_DTp-1qgIJlatQqA", "version" : { "number" : "6.0.0-alpha1", "build_hash" : "f27399d", "build_date" : "2016-03-30T09:51:41.449Z", "build_snapshot" : false, "lucene_version" : "7.0.0-SNAPSHOT" }, "tagline" : "You Know, for Search" }
También podéis verificar que está escuchando en ese puerto con netstat -ntpl
¡Y ya lo tenéis!
Por último recordaros que los logs están en /var/log/elasticsearch/
Os recomendamos los siguientes productos relacionados con la informática: