Voy a usar ElasticSearch en el proyecto. Solo tenía una comprensión simple de ElasticSearch antes sin un aprendizaje sistemático. Esta serie de artículos comenzará desde el aprendizaje básico hasta el uso en profundidad.
Kaka escribió un artículo sobre MySQL antes, y ahora he entrado en una serie para jugar a ElasticSearch.
Este artículo lo llevará a instalar ElasticSearch, Kibana, Logstash, configurar el acceso a la red externa de ElasticSearch, configurar el daemon para iniciar Kibana, ElasticSearch y usar Logstash para importar datos de demostración en ElasticSearch.
1. Instalar ElasticSearch
Cree un entorno de ElasticSearch desde 0 y luego instálelo primero.
El sitio web oficial de ElasticSearch se revisa constantemente y muchos socios pequeños no pueden encontrar la ubicación de descarga.
Después de ingresar, haga clic en la posición del círculo, no haga clic en la izquierda para descargar directamente
Después de ingresar, puede ver la versión histórica lanzada, puede descargar la versión correspondiente según sus propias necesidades, aquí está la versión 7.1.0 descargada
Si tiene Linux, puede abrir el modo de desarrollador, copiar la dirección y usar wget + dirección para descargar directamente.
https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.1.0-linux-x86_64.tar.gz
Se puede ver que se ha descargado ElasticSearch en este momento, que ya se encuentra descomprimido
En este punto, no lo inicie impulsivamente, a partir de la versión 5.x, ElasticSearch no se puede habilitar directamente con el usuario root por razones de seguridad.
Agregar usuario
Ejecute useradd es para agregar el usuario es
Otorgue permiso de usuario de ElasticSearch al usuario es bajo el usuario raíz.
chown -R es ElasticSearch
Iniciar ElasticSearch
Después de cambiar al usuario es, ejecute la ejecución ./bin/elasticsearch
para iniciar ElasticSearch
Problema con la inicialización del almacén de claves al inicio
Exception in thread "main" org.elasticsearch.bootstrap.BootstrapException: java.nio.file.AccessDeniedException: /usr/local/elasticsearch/elasticsearch-6.6.0/config/elasticsearch.keystore
Likely root cause: java.nio.file.AccessDeniedException: /usr/local/elasticsearch/elasticsearch-7.1.0/config/elasticsearch.keystore
at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102)
at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107)
at sun.nio.fs.UnixFileSystemProvider.newByteChannel(UnixFileSystemProvider.java:214)
at java.nio.file.Files.newByteChannel(Files.java:361)
at java.nio.file.Files.newByteChannel(Files.java:407)
at org.apache.lucene.store.SimpleFSDirectory.openInput(SimpleFSDirectory.java:77)
at org.elasticsearch.common.settings.KeyStoreWrapper.load(KeyStoreWrapper.java:206)
at org.elasticsearch.bootstrap.Bootstrap.loadSecureSettings(Bootstrap.java:224)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:289)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:159)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:150)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:124)
at org.elasticsearch.cli.Command.main(Command.java:90)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:115)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
Refer to the log for complete error details.
Esta versión requiere la función de autenticación de seguridad para crear el archivo elasticsearch.keystore, así que ingrese el siguiente comando
./bin/elasticsearch-keystore create
Comprobar si el inicio es exitoso
127.0.0.1::9200
Si ve la siguiente interfaz en el navegador, significa que la instalación se ha realizado correctamente.
Aquí Kaka está instalado en la máquina virtual centos, ¡así que si puede acceder a ElasticSearch usando la red externa!
2. Configurar el acceso a la red externa
Los pasos para configurar el acceso a la red externa también son muy simples, siga los pasos para construir en tres minutos
Pregunta uno
el número máximo de descriptores de archivo [4096] para el proceso de búsqueda elástica es demasiado bajo, aumente al menos a [65535]
EDIT /etc/security/limits.conf
, agregue lo siguiente
es suave nofile 65536
es duro nofile 65536
pregunta dos
el número máximo de subprocesos [3782] para el usuario [es] es demasiado bajo, aumente al menos a [4096]
Significa que el número máximo de subprocesos en elasticsearch es demasiado bajo
Revisar/etc/security/limits.conf
Agregue las siguientes dos líneas al final del archivo:
es suave nproc 4096
es duro nproc 4096
pregunta tres
el máximo de áreas de memoria virtual vm.max_map_count [65530] es demasiado bajo, aumente al menos a [262144]
/etc/sysctl.conf
añadir una línea al final del archivo
vm.max_map_count=262144
pregunta cuatro
la configuración de descubrimiento predeterminada no es adecuada para el uso de producción; al menos uno de [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] debe estar configurado
Significa configurar los siguientes tres, al menos uno de ellos
#[discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes]
En el directorio de configuración de elasticsearch, modifique el archivo de configuración elasticsearch.yml
node.name: node-1
cluster.initial_master_nodes: ["node-1"]
network.host: 0.0.0.0
pregunta cinco
Se han realizado las operaciones anteriores, pero no se puede acceder a la red externa. Debe comprobar si el cortafuegos está desactivado.
# 关闭防火强
systemctl stop firewalld.service
# 设置永久关闭
systemctl disable firewalld.service
Una cosa a la que debe prestar atención aquí, debe reiniciar la máquina después de la modificación del primer y segundo problema, recuerde, recuerde, recuerde
Accede a ElasticSearch desde Internet
Puedes ver que la ip de la maquina virtual eshttp://192.168.253.129/
A continuación, intente acceder a la máquina virtual ip + puerto 9200 en el host para ver si se puede acceder
3. Instala Kibana
El método de descarga es el mismo que el de ElasticSearch. Aprenda a descargar este software. Cabe señalar que la versión descargada debe ser coherente con la versión de ElasticSearch.
https://artifacts.elastic.co/downloads/kibana/kibana-7.1.0-linux-x86_64.tar.gz
Entonces, a continuación, debe instalar la versión Kibana7.1.0
Configurar los parámetros de Kibana
Copiar al final del archivo
i18n.locale: "zh-CN"
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
kibana
Vaya al directorio de Kibana y ejecute ./bin/kibana
No se puede iniciar con el siguiente error
[WARN ][o.e.c.c.ClusterFormationFailureHelper] [node-1] master not discovered or elected yet, an election requires a node with id [rEq_ExihQ927BnwBy3Iz7A], have discovered [] which is not a quorum; discovery will continue using [127.0.0.1:9300, 127.0.0.1:9301, 127.0.0.1:9302, 127.0.0.1:9303, 127.0.0.1:9304, [::1]:9300, [::1]:9301, [::1]:9302, [::1]:9303, [::1]:9304] from hosts providers and [{
node-1}{
DtZPMDK4S3qaSQF6mRhRqw}{
lBAhaMvDTKmGkysihkwAqA}{
192.168.122.130}{
192.168.122.130:9300}{
ml.machine_memory=1907744768, xpack.installed=true, ml.max_open_jobs=20}] from last-known cluster state; node term 412, last-accepted version 16 in term 1
solución:
Compruebe si hay datos de nodos anteriores en el directorio de datos de ElasticSearch
Cómo cerrar una instancia de Kibana
Verifique el número de puerto actual para ejecutar netstat -anp | grep 5601
, hay una ID de proceso al final y kill -9 进程ID
puede ejecutarlo
Luego reinícialo.
Si configura Kibana a chino
Se te han dado los parámetros, esta es i18n.locale: "zh-CN"
la configuración
Cuando entres verás esta página
Haga clic en la mano de la herramienta, puede operar los datos de ElasticSearch, todavía es muy agradable
4. Recorrido rápido por la interfaz de Kibana
Después de ingresar al software, puede ver el conjunto de datos cargado
Después de ingresar, puede ver tres datos de muestra, a saber, registro, pedido de comercio electrónico, datos de vuelo
Luego haga clic en Tableros y verá los tres conjuntos de datos de muestra recién agregados
A continuación, veamos una herramienta muy importante, Dev Tools. Esta herramienta se usará mucho más adelante. El propósito es ayudarlo a ejecutar fácilmente algunos comandos de ElasticSearch en Kibana.
Cinco, el demonio inicia Kibana, ElasticSearch
Después de iniciar ElasticSearch y Kibana, encontrará que se inicia directamente en el puerto actual. Si cierra esta terminal, se cerrará.
A continuación, utilice la ayuda nohup
para iniciar el proceso del demonio. Tenga en cuenta que esto no es lo que nohup ha escrito en Internet. No se confunda.
instalar nohup
Cuando ejecute el comando nohup y descubra que no hay, ejecute
yum install -y coreutils
Normalmente se instala en
/usr/bin/nohup
Ejecutar para which nohup
confirmar la ubicación de instalación
Configure el comando nohup como global, use la forma más simple, ejecute
#vi ~/.bash_profile
# 添加这行代码
PATH=$PATH:$HOME/bin:/use/bin
export PATH
Luego, guarde y actualice para que surta efecto.
source ~/.bash_profile
Finalmente, verifique, si aparece la información de la versión, la instalación es exitosa
nohup --version
kibana
Se estima que muchas personas en Internet se ejecutan directamente nohup ./bin/kibana
. Aunque esto puede iniciar Kibana, aparecerá el error en la siguiente figura. Al mismo tiempo, al presionar ctrl+c, Kibana también se cerrará.
Debe redirigir el mensaje de error al agujero de Linux
nohup ./bin/kibana > /dev/null 2>&1 &
Encontrarás que sale una línea de números después de la ejecución. Este es el ID del proceso de Kibana. Si lo olvidas, puedes ejecutarlo.
ps -ef | grep node
Ven a verlo, porque Kibana es de nodo.
Iniciar ElasticSearch
De la misma manera que inicia Kibana, ejecute
nohup ./bin/elasticsearch > /dev/null 2>&1 &
6. Instale Logstash e importe datos de demostración a ElasticSearch
enlace de descarga
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.1.0.zip
Los datos de demostración se movielens
obtienen en este sistema de recomendación, por lo que no necesita descargar los datos, solo puede encontrar los datos de demostración.
Este tipo de datos no se pueden compartir, así que...
descomprimir
unzip logstash-7.1.0.zip
iniciar logstash
./bin/logstash -f logstash.conf
La ejecución directa definitivamente no es posible Primero necesita obtener los datos de demostración y luego colocar los archivos logstash.conf y movies.csv en la primera capa del directorio logstash.
El lugar encerrado en un círculo en la figura a continuación puede ser la ubicación de almacenamiento de movies.csv, cambie esta ruta a su ruta
Luego, cuando ejecute el comando iniciar logstash nuevamente, tendrá el primer problema
logstash could not find java; set JAVA_HOME or ensure java is in PATH
Primero debes asegurarte de tener Java instalado
# 验证是否安装
java -version
La siguiente imagen muestra que la instalación fue exitosa, si no está instalado, no te preocupes, Kaka te dará el proceso detallado.
instalar java8
portal
https://download.oracle.com/otn/java/jdk/8u311-b11/4d5417147a92418ea8b615e228bb6935/jdk-8u311-linux-x64.tar.gz
Si tiene prisa, puede comenzar directamente con wget. Esto no es aceptable. Para descargar el paquete de instalación de java8, debe hacer clic para confirmar y no puede descargarlo sin registrarse en Oracle, por lo que primero necesita una cuenta de Oracle. .
Primero descargue el paquete comprimido al host y luego use el comando scp del artefacto para transferir el archivo, que es bastante rápido, de modo que el paquete java descargado pueda transferirse al servidor.
scp jdk-8u311-linux-x64.tar.gz root:192.168.17.128:/
Cree el directorio java en /usr/local
cd /usr/local
mkdir java
Mueva el archivo java a /usr/local/java
mv jdk-8u311-linux-x64.tar.gz /usr/local/java/
descomprimir
tar -zxf jdk-8u311-linux-x64.tar.gz jdk8
Configurar variables de entorno
vim /etc/profile
Agregue el archivo al final (si es el mismo que el directorio Kaka, no necesita cambiarlo)
export JAVA_HOME=/usr/local/java/jdk8
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:/$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
Actualizar surte efecto
source /etc/profile
verificación final
# 验证是否安装
java -version
Ejecute ./bin/logstash -f logstash.conf nuevamente
Seguirá apareciendo el siguiente error, pero se ha agregado el entorno Java.
come vim /logstash-7.1.0/bin/logstash.lib.sh
, encontrará que el error se escribe desde aquí, la razón es que no hay JAVACMD
ningún valor
Busqué en este archivo y descubrí que hay muchos, así que puedo reasignarlo directamente en la parte superior, prestar atención al lugar marcado con un círculo
guardar, salir, ejecutar de nuevo
./bin/logstash -f logstash.conf
Finalmente hecho, importe los datos en ElasticSearch
Compruebe si hay un índice de películas en Kibana
Siete, instala Cerebro
descargar
wget https://github.com/lmenezes/cerebro/releases/download/v0.9.4/cerebro-0.9.4.tgz
descomprimir
tar -zxf cerebro-0.9.4.tgz
Para modificar el archivo de configuración, solo necesita abrir la configuración del host y escribir su propia dirección IP.
hosts = [
#{
# host = "http://192.168.17.128:9100"
# name = "Localhost cluster"
# headers-whitelist = [ "x-proxy-user", "x-proxy-roles", "X-Forwarded-For" ]
#}
# Example of host with authentication
{
host = "http://192.168.17.128:9200"
# name = "Secured Cluster"
#auth = {
# username = "admin"
# password = "admin"
#}
}
]
puesta en marcha
cd cerebro
./bin/cerebro
Ingrese la dirección IP + puerto 9000
8. Resumen
Siguiendo este artículo, puede instalar e iniciar con éxito ElasticSearch y Kibana.Si se puede acceder a ElasticSearch desde la red externa, debe agregar varias configuraciones, que se pueden lograr siguiendo este artículo.
Simplemente comprenda la interfaz de Kibana, y la mayoría de los ejercicios posteriores están en Kibana.
Por último, les hablé de los daemons más interesantes para iniciar ElasticSearch y Kibana. Hay mucha información incompleta en Internet y todavía hay problemas en la implementación. Kaka te dará el tutorial más completo y seguirá el funcionamiento.
Fecha límite Catálogo general de la serie MySQL
Persistencia en aprender, perseverancia en escribir, perseverancia en compartir son las creencias que Kaká ha defendido desde su carrera. Espero que el artículo pueda traerles una pequeña ayuda en el enorme Internet, soy Kaká, nos vemos en el próximo número.