Sistema de análisis de registros de nivel empresarial ELK para aplicaciones distribuidas

 1. Conocimiento sobre
ELK 1.1 Concepto y componentes de
ELK La plataforma ELK es una solución completa para el procesamiento centralizado de registros.Utiliza tres herramientas de código abierto, ElasticSearch, Logstash y Kiabana, para completar consultas de usuario, clasificación y registro de registros más potentes. Necesidades estadísticas.

 ElasticSearch:
es un motor de recuperación y almacenamiento distribuido desarrollado en base a Lucene (una arquitectura de motor de recuperación de texto completo), que se utiliza para almacenar varios registros.
Elasticsearch está desarrollado en Java y puede comunicarse con Elasticsearch a través de una interfaz web RESTful a través de un navegador.
Elasticsearch es un motor de búsqueda escalable, distribuido y en tiempo real que permite búsquedas estructuradas de texto completo. Suele usarse para indexar y buscar grandes volúmenes de datos de registro, y también se puede usar para buscar muchos tipos diferentes de documentos.


Kiabana:
Kibana generalmente se implementa junto con Elasticsearch. Kibana es un poderoso panel de visualización de datos para Elasticsearch. Kibana proporciona una interfaz web gráfica para explorar los datos de registro de Elasticsearch, que se pueden usar para resumir, analizar y buscar datos importantes.


Logstash:
como motor de recopilación de datos. Admite la recopilación dinámica de datos de varias fuentes de datos y realiza operaciones como filtrar, analizar, enriquecer y unificar el formato de los datos, y luego los almacena en una ubicación especificada por el usuario y generalmente los envía a Elasticsearch.
Logstash está escrito en lenguaje Ruby y se ejecuta en Java Virtual Machine (JVM).Es una poderosa herramienta de procesamiento de datos que puede realizar la transmisión de datos, el procesamiento de formato y la salida de formato. Logstash tiene una poderosa función de complemento y se usa a menudo para el procesamiento de registros

El módulo de filtrado es la función central de logstash.

1.2 Otros componentes que se pueden añadir 

Filebeat:
un recopilador de datos de archivo de registro de código abierto ligero. Por lo general, Filebeat se instala en el cliente que necesita recopilar datos, y se especifican el directorio y el formato de registro. Filebeat puede recopilar datos rápidamente y enviarlos a logstash para su análisis, o directamente al almacenamiento de Elasticsearch. En comparación con logstash que se ejecuta en la JVM en términos de rendimiento Tiene ventajas obvias y es una alternativa a la misma. A menudo se utiliza en la arquitectura EFLK. (Si desea utilizar la función de filtrado, Filebeat no puede reemplazar por completo a logstash. Filebeat no tiene función de filtrado. Después de recopilar datos, debe enviarse a logstash para su procesamiento)


Filebeat combinado con logstash trae beneficios:

Through Logstash tiene un sistema de almacenamiento en búfer adaptable basado en disco que absorberá el rendimiento entrante, aliviando a Elasticsearch de la presión de escribir datos continuamente.
Extraiga de otras fuentes de datos, como bases de datos, almacenamiento de objetos S3 o colas de mensajería.
Envíe datos a múltiples destinos como S3, HDFS (Sistema de archivos distribuidos de Hadoop) o escriba en un archivo.
Utilice lógica de flujo de datos condicional para componer canalizaciones de procesamiento más complejas.


Caché/cola de mensajes (redis, kafka, RabbitMQ, etc.):
el recorte y el almacenamiento en búfer de los picos de tráfico se pueden realizar en datos de registro altamente concurrentes. Dicho almacenamiento en búfer puede proteger los datos contra pérdidas hasta cierto punto, y también puede desacoplar la aplicación de todo el arquitectura.


Fluentd:
es un popular recopilador de datos de código abierto. Debido a las deficiencias de logstash por ser demasiado pesado, el bajo rendimiento y el alto consumo de recursos de Logstash, Fluentd apareció más tarde. En comparación con logstash, Fluentd es más fácil de usar, consume menos recursos, tiene un mayor rendimiento y es más eficiente y confiable en el procesamiento de datos. Es bien recibido por las empresas y se ha convertido en una alternativa a logstash, y se usa a menudo en la arquitectura EFK. EFK también se usa a menudo como una solución para la recopilación de datos de registro en clústeres de Kubernetes.
Fluentd generalmente se ejecuta a través de un DaemonSet en un clúster de Kubernetes para que pueda ejecutar un Pod en cada nodo de trabajo de Kubernetes. Funciona tomando archivos de registro de contenedores, filtrando y transformando los datos de registro y luego pasando los datos a un clúster de Elasticsearch donde se indexan y almacenan.
 

1.3 Componentes de extensión ELK con
ELK: ES+logstash+kibana

ELFK: ES+logstash+filebeat+kibana

ELFK: ES+filebeat+logstash+kafka+kibana

1.4 Ventajas de ELK para clústeres grandes
 
Los registros incluyen principalmente registros del sistema, registros de aplicaciones y registros de seguridad. La operación y el mantenimiento del sistema y los desarrolladores pueden usar los registros para comprender la información del software y el hardware del servidor, verificar los errores en el proceso de configuración y las razones de los errores. El análisis frecuente de los registros puede ayudarlo a comprender la carga del servidor, la seguridad del rendimiento y tomar medidas oportunas para corregir errores.

A menudo, podemos usar herramientas como grep y awk para analizar los registros de una sola máquina básicamente, pero cuando los registros están dispersos y almacenados en diferentes dispositivos. Si administra decenas o cientos de servidores, todavía está viendo registros utilizando el método tradicional de iniciar sesión en cada máquina por turno. ¿Se siente esto engorroso e ineficiente? Como máxima prioridad, utilizamos la gestión de registros centralizada, como syslog de código abierto, para recopilar y resumir registros en todos los servidores. Después de la administración centralizada de registros, las estadísticas y la recuperación de registros se han convertido en algo más problemático. En general, podemos usar comandos de Linux como grep, awk y wc para lograr la recuperación y las estadísticas, pero para consultas, clasificación y estadísticas más exigentes. , etc. Y la gran cantidad de máquinas todavía es un poco impotente para usar este método.

Generalmente, un sistema a gran escala es una arquitectura de implementación distribuida, y diferentes módulos de servicio se implementan en diferentes servidores. Cuando ocurre un problema, en la mayoría de los casos, es necesario ubicar el servidor y el módulo de servicio específicos en función de la información clave expuesta por el problema, y ​​construir un conjunto de El sistema de registro centralizado puede mejorar la eficiencia de localizar problemas.
 

1.5 Recopilación de varios tipos de información en el sistema de registro 
: se pueden recopilar datos de registro de múltiples fuentes.

Transmisión: puede analizar, filtrar y transmitir datos de registro de forma estable al sistema de almacenamiento.

Almacenamiento: almacenar datos de registro.

Análisis: admite el análisis de la interfaz de usuario.

ADVERTENCIA: Capacidad para proporcionar informes de errores, mecanismos de monitoreo.

1.6 El principio de funcionamiento de ELK
(1) Implemente Logstash en todos los servidores que necesiten recopilar registros o centralice la administración de registros en el servidor de registro primero y luego implemente Logstash en el servidor de registro.
(2) Logstash recopila registros, formatea y envía registros al clúster de Elasticsearch.
(3) Elasticsearch indexa y almacena los datos formateados.
(4) Kibana consulta datos de clústeres de ES para generar gráficos y muestra datos de front-end

 Resumen: logstash, como recopilador de registros, recopila datos de fuentes de datos, filtra y formatea los datos y luego los almacena en Elasticsearch, y Kibana visualiza los registros.

 2. Implementación del clúster ELK
Componentes experimentales
Tipo de servidor IP del sistema Componentes que se instalarán Aspecto del hardware
Apache node CentOS7.4 (64 bit) 192.168.50.24 Logstash, Apache 2-core 4G
node01 node CentOS7.4 (64 bit) 192.168.50.25 Elasticsearch 、 Kibana 2 núcleos 4G
nodo02 nodo CentOS7.4 (64 bits) 192.168.50.26 Elasticsearch 2 núcleos 4G
 

Pasos experimentales específicos 
 Paso 1: Implementación del clúster de ELK Elasticsearch

Operar en los nodos Node1 y Node2 

1. Preparación ambiental

#Establezca el entorno Java
 
java -version #Si no está instalado, yum -y instale java
openjdk versión "1.8.0_131"
OpenJDK Runtime Environment (compilación 1.8.0_131-b12)
OpenJDK 64-Bit Server VM (compilación 25.131-b12, modo mixto)

2. Implementar el software Elasticsearch
(1) Instalar elasticsearch—paquete rpm


#Subir elasticsearch-6.7.2.rpm al directorio /opt
cd /opt
rpm -ivh elasticsearch-6.7.2.rpm
 

(2) Modificar el archivo de configuración principal de elasticsearch


cp /etc/elasticsearch/elasticsearch.yml /etc/elasticsearch/elasticsearch.yml.bak
vim /etc/elasticsearch/elasticsearch.yml
--17--Descomenta, especifica el nombre del clúster
cluster.name: my-elk-cluster
-- 23--Elimine el comentario, especifique el nombre del nodo: Nodo1 el nodo es el nodo1, el nodo2 el nodo es el nodo2
nodo.nombre: nodo1
nodo.maestro: verdadero #si es un nodo maestro, falso no es
un nodo.datos: verdadero #si es un nodo de datos, falso es no
--33--Descomenta, especifica la ruta de almacenamiento de datos
path.data: /var/lib/elasticsearch
--37--Descomenta, especifica la ruta de almacenamiento de registros
path.logs: /var/log/elasticsearch
--43--Cancelar Nota, evite usar la partición de intercambio
bootstrap.memory_lock: true
--55--elimine el comentario, configure la dirección de escucha, 0.0.0.0 representa todas las direcciones
network.host: 0.0.0.0
--59--elimine el comentario, el valor predeterminado del servicio ES El puerto de escucha es 9200
http.port: 9200 #Especifique el clúster es para proporcionar una interfaz de acceso externo
transport.tcp.port: 9300 #Especifique la interfaz de comunicación interna del clúster es
--68--descomenta, el descubrimiento del clúster se realiza a través de unidifusión, especifique el nodo a descubrir
discovery.zen.ping.unicast.hosts: [" 192.168.80.10: 9300", "192.168.80.11:9300"]

grep -v "^#" /etc/elasticsearch/elasticsearch.yml

(3) parámetros de ajuste de rendimiento de es


#Optimizar el tamaño máximo de memoria y el número máximo de descriptores de archivos
vim /etc/security/limits.conf
......
* soft nofile 65536
* hard nofile 65536
* soft nproc 32000
* hard nproc 32000
* soft memlock ilimitado
* hard memlock ilimitado

vim /etc/systemd/system.conf
DefaultLimitNOFILE=65536
DefaultLimitNPROC=32000
DefaultLimitMEMLOCK=infinito


Debe reiniciarse para que surta efecto.
 
#Optimizar los permisos de memoria propiedad de los usuarios de elasticsearch
Dado que ES se basa en lucene, la fortaleza del diseño de lucene es que lucene puede hacer un buen uso de la memoria del sistema operativo para almacenar datos de índice en caché para proporcionar un rendimiento de consulta rápido . Los segmentos del archivo de índice de Lucene se almacenan en un solo archivo y es inmutable. Para el sistema operativo, es muy amigable mantener el archivo de índice en el caché para un acceso rápido; por lo tanto, es necesario que reservemos la mitad de la memoria física para lucene. ; la otra mitad de la memoria física está reservada para ES (montón JVM). Por lo tanto, en términos de configuración de memoria ES, se pueden seguir los siguientes principios:
1. Cuando la memoria de la máquina sea inferior a 64 G, siga el principio general, 50 % para ES, 50 % para el sistema operativo, para uso de lucene
2. Cuando la memoria de la máquina es superior a 64G, siga el principio: se recomienda asignar 4~32G de memoria a ES y dejar otra memoria al sistema operativo para que lucene use vim /etc/sysctl.conf #La cantidad máxima de asignación
 
de
memoria áreas que puede tener un proceso, datos de referencia (asignación 2g/262144, 4g/4194304, 8g/8388608)
vm.max_map_count=262144
 
sysctl -p
sysctl -a | grep vm.max_map_count
 

(4) Ya sea para iniciar elasticsearch con éxito

systemctl iniciar elasticsearch.service
systemctl habilitar elasticsearch.service
netstat -antp | grep 9200

(5) Ver información del nodo


Acceda a http://192.168.80.10:9200 y http://192.168.80.11:9200 con el navegador para consultar la información del Nodo1 y Nodo2.

Acceso del navegador http://192.168.80.10:9200/_cluster/health?pretty, http://192.168.80.11:9200/_cluster/health?pretty  

Vea el estado de salud del clúster y podrá ver que el valor de estado es verde (verde), lo que indica que el nodo se está ejecutando correctamente.

Acceda al navegador http://192.168.80.10:9200/_cluster/state?pretty para verificar la información de estado del clúster.

#Usar el método anterior para ver el estado del clúster no es fácil de usar. Puede administrar el clúster de manera más conveniente instalando el complemento Elasticsearch-head.

Nota: El servicio elasticsearch es diferente del servicio anterior. Los requisitos de memoria y CPU son relativamente altos. Cuando se inicia el servicio, la máquina virtual con un rendimiento insuficiente debe esperar un tiempo. Preste atención al puerto 9200 y al estado del servicio.


3. Instale el complemento de Elasticsearch-head
Elasticsearch Después de la versión 5.0, el complemento de Elasticsearch-head debe instalarse como un servicio independiente y debe instalarse con la herramienta npm (una herramienta de administración de paquetes para NodeJS).
Para instalar Elasticsearch-head, debe instalar el nodo de software dependiente y phantomjs por adelantado.
nodo: es un entorno de tiempo de ejecución de JavaScript basado en el motor Chrome V8.
phantomjs: es una API de JavaScript basada en webkit, que puede entenderse como un navegador invisible y puede hacer todo lo que puede hacer un navegador basado en webkit.

(1) Compile e instale el nodo
#Cargue el paquete de software node-v8.2.1.tar.gz a /opt
yum install gcc gcc-c++ make -y

cd /opt
tar zxvf nodo-v8.2.1.tar.gz

cd node-v8.2.1/
./configure
make && make install

(2) Instalar phantomjs
#Subir el paquete phantomjs-2.1.1-linux-x86_64.tar.bz2 a
cd /opt
tar jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2
cd /opt/phantomjs-2.1.1 -linux-x86_64/bin
cp phantomjs /usr/local/bin


(3) Instale la herramienta de visualización de datos de Elasticsearch-head
#Cargue el paquete de software elasticsearch-head-master.zip en /opt
cd /opt
unzip elasticsearch-head-master.zip
cd /opt/elasticsearch-head/
npm install //Install paquetes de dependencia

(4) Modifique el archivo de configuración principal de Elasticsearch
vim /etc/elasticsearch/elasticsearch.yml
......
--añada el siguiente contenido al final--
http.cors.enabled: true #Enable cross-domain access support, el valor predeterminado es falso
http.cors.allow-origin: "*" #Especifique que las direcciones de nombre de dominio permitidas para el acceso entre dominios son todas

systemctl reiniciar búsqueda elástica
 

(5) Inicie el servicio de cabeza de búsqueda elástica


#El servicio debe iniciarse en el directorio elasticsearch-head descomprimido, y el proceso leerá el archivo gruntfile.js en este directorio; de lo contrario, es posible que no se inicie.
cd /opt/elasticsearch-head-master
npm ejecutar iniciar &

 (6) Ver información de Elasticsearch a través de Elasticsearch-head


Acceda a la dirección http://192.168.50.25:9100/ a través de un navegador y conéctese al clúster. Si ve que el valor de estado del clúster es verde, significa que el clúster está en buen estado.
 


(7) Insertar índice
#Inserte un índice de prueba a través del comando, el índice es index-demo y el tipo es test.
 

curl -X PUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"usuario":"zhangsan","mesg":"hola mundo" }'
//La salida es la siguiente:

{ "_index" : "index-demo", "_type" : "test", "_id" : "1", "_version" : 1, "result" : "created", "_shards" : { "total" : 2, "exitoso" : 2, "fallido" : 0 }, "creado" : verdadero }












 

Visite http://192.168.50.25:9100/ con el navegador para ver la información del índice y podrá ver que el índice está dividido en 5 fragmentos de forma predeterminada y hay una copia.

Haga clic en "Examinar datos", encontrará el índice creado en el nodo 1 como demostración de índice y la información relacionada de tipo prueba.

También quiero eliminar los datos insertados para esta prueba

curl -X DELETE 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'content-Type: application/json' -d '{"usuario":"zhangsan","mesg":"hola mundo" }'
 


Implementación de ELK Logstash (operando en nodos de Apache) -------------------
Logstash generalmente se implementa en el servidor cuyos registros deben monitorearse. En este caso, Logstash se implementa en el servidor Apache para recopilar la información de registro del servidor Apache y enviarla a Elasticsearch. 

1. cambiar el nombre de host
hostnamectl set-hostname apache

son

2. Instale el servicio Apache (httpd)
yum -y install httpd
systemctl start httpd

3. Instale el entorno Java
yum -y install java
java -version

4. Instale logstash
# Cargue el paquete de software logstash-6.7.2.rpm en el directorio /opt
cd /opt
rpm -ivh logstash-6.7.2.rpm                          
systemctl start logstash.service                      
systemctl enable logstash.service

ln -s /usr/share/logstash/bin/logstash /usr/local/bin/

 5. Prueba Logstash

Opciones comunes para los comandos de Logstash:
-f: a través de esta opción, puede especificar el archivo de configuración de Logstash y configurar los flujos de entrada y salida de Logstash de acuerdo con el archivo de configuración.
-e: Obtenido desde la línea de comando, la entrada y la salida van seguidas de una cadena, que se puede usar como la configuración de Logstash (si está vacía, se usa stdin como entrada y stdout como salida por defecto).
-t: prueba si el archivo de configuración es correcto y luego sale.


Defina los flujos de entrada y salida:
#La entrada usa la entrada estándar, la salida usa la salida estándar (similar a la canalización)
logstash -e 'input { stdin{} } output { stdout{} }'
 
 
//Ejecute ctrl+c para salir
 
#Use rubydebug para formato detallado de salida Pantalla, el códec es un códec
logstash -e 'input { stdin{} } salida { stdout{ codec=>rubydebug } }'
 
 
#Use Logstash para escribir información en Elasticsearch
logstash -e 'input { stdin{} } salida { búsqueda elástica {hosts=>["192.168.50.25:9200"] } }'

www.baidu.com #Escriba contenido (entrada estándar)

www.sina.com.cn #Escriba contenido (entrada estándar)

www.google.com # escriba algo (entrada estándar)

//Los resultados no se muestran en la salida estándar, sino que se envían a Elasticsearch. Puede visitar http://192.168.50.25:9100/ con un navegador para ver la información del índice y la exploración de datos.

6. Definir el archivo de configuración logstash

El archivo de configuración de Logstash consta básicamente de tres partes: entrada, salida y filtro (opcional, utilícelo según sea necesario).
entrada: indica la recopilación de datos de fuentes de datos, fuentes de datos comunes como Kafka, archivos de registro, etc. filtro: indica
la capa de procesamiento de datos, incluido el formato de datos, la conversión de tipos de datos, el filtrado de datos, etc.
Los datos recopilados por Logstash se procesan mediante filtros y luego se envían a Elasticsearch.
 

#El formato es el siguiente:
entrada {...}
filtro {...}
salida {...}

#En cada sección, también se pueden especificar múltiples métodos de acceso. Por ejemplo, para especificar dos archivos de origen de registro, el formato es el siguiente:
entrada {     archivo { ruta => "/var/log/messages" tipo => "syslog"}     archivo { ruta => "/var/log/httpd /acceso.log" tipo => "apache"}


 


#Modifique el archivo de configuración de Logstash para recopilar registros del sistema /var/log/messages y enviarlos a elasticsearch.
chmod +r /var/log/messages #Permitir que Logstash lea los registros


vim /etc/logstash/conf.d/system.conf
input {     archivo{         ruta => "/var/log/messages" #Especifique la ubicación de los registros que se recopilarán         type => "system" #Identificación del tipo de registro personalizado         start_position = >"principio" #Indica la colección desde el principio     } } salida {     elasticsearch { #Salida a         los hosts de elasticsearch => ["192.168.50.25:9200","192.168.50.26:9200"] #Especifique la dirección y el puerto de elasticsearch server         index = >"system-%{+YYYY.MM.dd}" #Especifique la salida del formato de índice para elasticsearch     } } systemctl reinicie logstash  acceso al navegador http://192.168.50.25:9100/ Ver información de índice












 

 

 

#ruta indica la ubicación del archivo del registro que se recopilará
#tipo es agregar un campo de atributo llamado tipo al resultado al ingresar ES
#posición_inicial se puede establecer al principio o al final, principio significa leer el archivo desde el principio, final significa para leer lo último, esto Para ser usado junto con ignore_older
#ignore_older indica cuánto tiempo se monitorean los archivos, el valor predeterminado es un día y la unidad es segundos, puede personalizarlo usted mismo, por ejemplo, de manera predeterminada, solo lee archivos que han sido modificados dentro de un día #sincedb_path indica el
registro del progreso de lectura del archivo, cada línea representa un archivo, cada línea tiene dos números, el primero representa el inodo del archivo y el segundo representa la posición (byteoffset) donde se encuentra el archivo. es leído. El valor predeterminado es $HOME/.sincedb*
#add_field Agregar atributos. Aquí se usa ${HOSTNAME}, que es la variable de entorno local. Si desea usar la variable de entorno local, debe agregar --alow-env al comando de inicio
 

cd /etc/logstash/conf.d/
vim system.conf
input {     file{         ruta =>"/var/log/messages"         type =>"system"         start_position =>"beginning"         # ignore_older => 604800         sincedb_path => " /etc/logstash/sincedb_path/log_progress"         add_field => {"log_hostname"=>"${HOSTNAME}"} }     } salida {     elasticsearch {                                                         hosts => ["192.168.80.10:9200","192.168.80.11:9200" ]             índice =>"sistema-%{+YYYY.MM.                            dd}"     } }









 





mkdir /etc/logstash/sincedb_path/
touch /etc/logstash/sincedb_path/log_progress
chown logstash:logstash /etc/logstash/sincedb_path/log_progress

logstash -f sistema.conf

Acceda al navegador http://192.168.50.25:9100/ para ver la información del índice

Paso 3: Implementación de ELK Kiabana (operación en el nodo Node1)
1.Instale Kiabana
#Cargue el paquete kibana-6.7.2-x86_64.rpm en el directorio /opt
cd /opt
rpm -ivh kibana-6.7.2-x86_64.rpm

2. Configure el archivo de configuración principal de Kibana
vim /etc/kibana/kibana.yml
--2--elimine el comentario, el puerto de escucha predeterminado del servicio de Kiabana es 5601
server.port: 5601
--7--elimine el comentario, configure la dirección de escucha de Kiabana, 0.0.0.0 representa todas las direcciones
server.host: "0.0.0.0"
--28-- Descomenta, configura la ip del servidor es, si es un cluster configura la ip del nodo maestro en el cluster
elasticsearch.url: ["http :/ /192.168.80.10:9200", "http://192.168.80.11:9200"] 
--37--Descomenta, configura para agregar el índice .kibana
kibana.index: ".kibana" en elasticsearch
--96-- Cancelar Tenga en cuenta que configure la ruta del archivo de registro de kibana (debe crearse manualmente), de lo contrario, el valor predeterminado es registrar los mensajes de registro
logging.dest: /var/log/kibana.log

3. Cree un archivo de registro e inicie el servicio Kibana
toque /var/log/kibana.log
chown kibana:kibana /var/log/kibana.log

systemctl iniciar kibana.servicio
systemctl habilitar kibana.servicio

netstat-natp | Empuñadura 5601

4. Verifique que el
navegador Kibana acceda a http://192.168.50.25: 5601.
Para el primer inicio de sesión, debe agregar un índice de Elasticsearch:
Administración -> Patrón de índice -> Crear patrón de índice
Entrada de patrón de índice: system-* #Input the before nombre de índice configurado Prefijo de salida "sistema"

Siguiente paso -> Nombre del campo de filtro de tiempo 选择 @timestamp -> Crear patrón de índice

Haga clic en el botón "Descubrir" para ver la información del gráfico y la información de registro.
La pantalla de datos se puede mostrar por categoría, en el "host" en "Campos disponibles", y luego haga clic en el botón "agregar", puede ver los resultados filtrados por "host"

5. Agregue registros del servidor Apache (acceso, errores) a Elasticsearch y muéstrelos a través de Kibana


vim /etc/logstash/conf.d/apache_log.conf
entrada {     archivo{         ruta => "/etc/httpd/logs/access_log"         tipo => "acceso"         start_position => "principio"     }     archivo{         ruta => "/ etc/httpd/logs/error_log"         type => "error"         start_position => "beginning"     } } salida {     if [type] == "access" {         elasticsearch {             hosts => ["192.168.80.10:9200","192.168 .80.11:9200"]             índice => "apache_access-%{+YYYY.MM.dd}"         }     }     if [tipo] == "error" {         elasticsearch {




















            hosts => ["192.168.80.10:9200","192.168.80.11:9200"]
            índice => "apache_error-%{+YYYY.MM.dd}"
        }
    }
}
 

cd /etc/logstash/conf.d/
/usr/share/logstash/bin/logstash -f apache_log.conf

Acceda al navegador http://192.168.50.25:9100 para verificar si se crea el índice

Acceda a http://192.168.50.25:5601 con el navegador para iniciar sesión en Kibana, haga clic en el botón "Patrón de índice -> Crear patrón de índice" para agregar un índice, ingrese el prefijo de salida previamente configurado apache_access-* en el nombre del índice, y haga clic en el botón "Crear". Agregue el índice apache_error-* de la misma manera.
Seleccione la pestaña "Descubrir" y seleccione los índices apache_access-* y apache_error-* recién agregados en la lista desplegable central para ver los gráficos correspondientes y la información de registro.

Supongo que te gusta

Origin blog.csdn.net/zl965230/article/details/131043320
Recomendado
Clasificación