Sistema de recolección de registros ELK

I. Descripción general

1. ELK consta de tres componentes

2. Función

            Recopilación de registros Análisis de registros Visualización de registros

3. ¿Por qué usarlo?

    Los registros son muy importantes para analizar el estado de los sistemas y aplicaciones, pero generalmente la cantidad de registros es relativamente grande y está dispersa.

        Si hay menos servidores o programas para administrar, también podemos iniciar sesión en cada servidor uno por uno para verlos y analizarlos.  

         Pero si la cantidad de servidores o programas es relativamente grande, este método parecerá impotente. En base a esto, también se aplican algunos sistemas de registro centralizados.

        En la actualidad, los más famosos y maduros son Splunk (comercial), Scribe de FaceBook, Chukwa de Apache, Fluentd de Cloudera y ELK, etc.

2. Componentes

1.búsqueda elástica

análisis de registros        

Programa de almacenamiento, análisis y recopilación de registros de código abierto

características

    Distribuido, sin configuración, descubrimiento automático, fragmentación automática de índices

    Mecanismo de copia de índice Interfaz de estilo tranquilo Múltiples fuentes de datos Carga de búsqueda automática

2.logstash

colección de registros

Herramientas para recopilar, analizar y filtrar registros

Proceso de trabajo

         El método de trabajo general es la arquitectura c/s, el cliente se instala en el servidor que necesita recopilar registros y el servidor es responsable de filtrar y modificar los registros recibidos de cada nodo y luego enviarlos a Elasticsearch.

        Entradas → Filtros → Salidas

        Entrada --> Filtro --> Salida

APORTE

Archivo: lee desde un archivo en el sistema de archivos, similar al comando tail -f
Syslog: escuche los mensajes de registro del sistema en el puerto 514 y analícelos de acuerdo con el estándar RFC3164
Redis: leer desde el servicio redis
Beats: leer desde filebeat

FILETES

Grok: al analizar datos de texto arbitrarios, Grok es el complemento más importante para Logstash. Su función principal es convertir cadenas en formato de texto en datos estructurados específicos y utilizarlos con expresiones regulares.
Expresión oficial de grok: logstash-patterns-core/patterns en main logstash-plugins/logstash-patterns-core GitHub
Depuración en línea de Grok: Depurador de Grok
Mutar: Transformar el campo. Por ejemplo, eliminar, reemplazar, modificar, cambiar el nombre de campos, etc.
Soltar: Soltar algunos eventos sin procesar.
Clonar: Copie el Evento, y también se pueden agregar o eliminar campos durante este proceso.
Geoip: agregue información geográfica (para la pantalla gráfica frontal de kibana)

SALIDAS

Elasticsearch: puede guardar datos de manera eficiente y consultarlos de manera conveniente y sencilla.
Archivo: guarde los datos del evento en un archivo.
Graphite: envía datos de eventos al componente gráfico, que es un componente de visualización gráfica de almacenamiento de código abierto popular.

3. kibana

                        La visualización de registros
                es una interfaz web amigable para que Logstash y ElasticSearch realicen análisis en función de los registros recopilados y almacenados, lo que puede ayudar a resumir, analizar y buscar registros de datos importantes.

3. Tipo de arquitectura

ALCE

                es logstash kibana

ELKK

                es logstash kafka kibana

ELFK

    es logstash (el peso pesado consume más recursos del sistema) filebeat (el peso ligero ocupa menos recursos del sistema) kibana

ELFKK

        es logstash filebeat kafka kibana

4. Caso

Experimento de clúster del sistema de recopilación de registros ELK

1. Topología experimental

2. Configuración del entorno

Establezca la dirección IP de cada host como IP estática en la topología, modifique los nombres de host nodo1 y nodo2 en los dos nodos y configure el archivo de hosts.

nodo1:

hostnamectl set-hostname nodo1

vim/etc/hosts

192.168.2.4 nodo1

192.168.2.3 nodo2

nodo2:

hostnamectl set-hostname nodo2

vim/etc/hosts

192.168.2.4 nodo1

192.168.2.3 nodo2

3. Instale elasticsearch de los nodos nodo1 y nodo2

1. Instalación

 mv alce paquete alce

 discos compactos cada uno

 rpm -ivh elasticsearch-5.5.0.rpm

2. Configuración

nodo1:

vim /etc/elasticsearch/elasticsearch.yml

cluster.name:my-elk-cluster //nombre del cluster   

nodo.nombre:nodo1 //nombre de nodo

path.data:/var/lib/elasticsearch //ruta de almacenamiento de datos

path.logs: /var/log/elasticsearch/ //ruta de almacenamiento de registros

bootstrap.memory_lock: false //No bloquear la memoria al inicio

network.host:0.0.0.0 // Proporciona la dirección IP vinculada al servicio, 0.0.0.0 representa todas las direcciones

http.port:9200 //El puerto de escucha es 9200

Discovery.zen.ping.unicast.hosts: ["nodo1", "nodo2"] // El descubrimiento de clústeres se realiza mediante unidifusión

nodo2:

vim /etc/elasticsearch/elasticsearch.yml

cluster.name:my-elk-cluster //nombre del cluster   

nodo.nombre:nodo2 //nombre de nodo

path.data:/var/lib/elasticsearch //ruta de almacenamiento de datos

path.logs: /var/log/elasticsearch/ //ruta de almacenamiento de registros

bootstrap.memory_lock: false //No bloquear la memoria al inicio

network.host:0.0.0.0 // Proporciona la dirección IP vinculada al servicio, 0.0.0.0 representa todas las direcciones

http.port:9200 //El puerto de escucha es 9200

Discovery.zen.ping.unicast.hosts: ["nodo1", "nodo2"] // El descubrimiento de clústeres se realiza mediante unidifusión

3. Inicie el servicio elasticsearch

nodo1 y nodo2

systemctl iniciar búsqueda elástica

4. Ver información del nodo

http://192.168.2.3:9200

http://192.168.2.4:9200

3. Instale el complemento elasticsearch-head en el nodo1

1. Instalar nodo

discos compactos cada uno

tar xf nodo-v8.2.1.tar.gz

nodo cd-v8.2.1

./configure && make && make install

Espere a que se complete la instalación.

2. Copiar comando

discos compactos cada uno

tar xf phantomjs-2.1.1-linux-x86_64.tar.bz2

cd phantomjs-2.1.1-linux-x86_64/bin

cp phantomjs /usr/local/bin

3. Instale el cabezal de búsqueda elástico

discos compactos cada uno

tar xf elasticsearch-head.tar.gz

cd elasticcabezal de búsqueda

instalación npm

4. Modifique el archivo de configuración de elasticsearch

vim /etc/elasticsearch/elasticsearch.yml

 # Requerir nombres explícitos al eliminar índices:

#

#action.destructivo_requires_name: verdadero

http.cors.enabled: true // Habilita el soporte de acceso entre dominios, el valor predeterminado es falso

http.cors.allow-origin: "*" //Dirección de dominio permitida para acceso entre dominios

Reinicie el servicio: systemctl reinicie elasticsearch

5. Inicie elasticsearch-head

cd /root/elk/elasticsearch-head

inicio de ejecución de npm &

Ver monitoreo: netstat -anput | grep :9100

6. Visita:

http://192.168.2.3:9100

7. prueba

Ingrese en la terminal del nodo1:

curl -XPUT 'localhost:9200/index-demo/test/1?pretty&pretty' -H 'Tipo de contenido: aplicación/json' -d '{"user":"zhangsan","mesg":"hola mundo"} '

Actualiza el navegador para ver la información correspondiente

4. Instale logstash en el servidor nodo1

discos compactos cada uno

rpm -ivh logstash-5.5.1.rpm

systemctl inicia logstash.servicio

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

Prueba 1: entrada y salida estándar

logstash -e 'entrada{ stdin{} }salida { stdout{} }'

Prueba 2: decodificación con rubydebug

logstash -e 'entrada { stdin{} } salida { stdout{ codec=>rubydebug }}'

Prueba 3: salida a elasticsearch

logstash -e 'entrada { stdin{} } salida { elasticsearch{ hosts=>["192.168.2.3:9200"]} }'

  Ver resultados:

http://192.168.2.3:9100

Si no puedes verlo, ¡actualiza! ! !

5. Formato de archivo de recopilación de registros de Logstash (almacenado en /etc/logstash/conf.d de forma predeterminada)

El archivo de configuración de Logstash consta básicamente de tres partes: entrada, salida y filtro (según sea necesario). El formato del archivo de configuración estándar es el siguiente:

entrada (...) entrada

filtrar {...} filtrar

salida {...} salida

Dentro de 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:

aporte {

archivo{ruta =>"/var/log/messages" tipo =>"syslog"}

archivo {ruta =>"/var/log/apache/access.log" tipo =>"apache"}

}

Caso: recopilación de registros de información del sistema a través de logstash

chmod o+r /var/log/mensajes

vim /etc/logstash/conf.d/system.conf

aporte {

archivo{

ruta =>"/var/log/mensajes" 

tipo => "sistema"

start_position => "comienzo"

}

}

producción {

búsqueda elástica {

hosts =>["192.168.1.1:9200"]

índice => "sistema-%{+AAAA.MM.dd}"

}

}

Reinicie el servicio de registro: systemctl restart logstash

Ver registros: http://192.168.2.3:9100

Seis, instalación del nodo 1 en kibana

discos compactos cada uno

rpm -ivh kibana-5.5.1-x86_64.rpm

1. Configurar kibana

vim /etc/kibana/kibana.yml

server.port: 5601 //El puerto abierto por Kibana

server.host: "0.0.0.0" //La dirección en la que Kibana escucha

elasticsearch.url: "http://192.168.8.134:9200"  

//Establecer una conexión con Elasticsearch

kibana.index: ".kibana" //Agregar índice .kibana en Elasticsearch

2. Iniciar kibana

systemctl iniciar kibana

3. Acceder a kibana:

http://192.168.1.1:5601

La primera visita necesita agregar un índice, agregamos el índice que se agregó antes: sistema-*

7. Caso empresarial:

1. Recopile información del registro de acceso httpd

2. Instale logstash en el servidor httpd, parametrice el proceso de instalación anterior y no es necesario realizar pruebas.

3. logstash actúa como un agente (agente) en el servidor httpd y no es necesario iniciarlo

4. Escriba el archivo de configuración de recopilación de registros httpd

vim /etc/logstash/conf.d/httpd.conf

aporte {

archivo{

path=>"/var/log/httpd/access_log" //Recopilar registros de acceso de Apache

type => "access" //El tipo se especifica como acceso

start_position => "principio" // recopilar desde el principio

}

producción{

búsqueda elástica {

hosts =>["192.168.8.134:9200"] // dirección y puerto de escucha de elasticsearch

index => "httpd_access-%{+YYYY.MM.dd}" //Especifica el formato del índice

}

}

5. Utilice el comando logstash para importar la configuración:

logstash -f /etc/logstash/conf.d/httpd.conf

¡Usa kibana para verlo! http://192.168.2.3:5601 ¡    Crea el índice httpd_access-* en la pestaña de administración al visualizar!


Supongo que te gusta

Origin blog.csdn.net/lsqaa/article/details/132554514
Recomendado
Clasificación