El ELK 12 ---- registros Nginx se escriben en la base de datos y muestra la dirección IP de la ciudad

Un registro, logstash unión filebeat recogido por escrito a la base de datos

Figura marco

Principio: Como parte de los registros importantes tiene que seguir los requisitos del desarrollo de los registros almacenados en la base de datos, sino también un enfoque comparativo y la dificultad del problema, este experimento se estableció sobre la base de ELK de diez en, es necesario ELK Décimo de estructuras terminadas se puede configurar este entorno: ELK Parte diez enlace: https: //www.cnblogs.com/struggle-1216/p/12502928.html

1, la base de datos MariaDB-servidor de instalación

1, instalar y poner en la base de datos

# Yum install MariaDB-servidor -y 
# systemctl MariaDB inicio

2, crear una base de datos y la autorización

[root @ filebeat-1 ~] # mysql 
Bienvenido al monitor MariaDB. Comandos terminan con; o \ g. 
Su conexión Identificación MariaDB es 3 
Versión de servidor: 5.5.64-MariaDB MariaDB servidor 

Copyright (C) 2000, 2018, Oracle, MariaDB Corporación Ab y otros. 

Escribir 'ayuda'; o '\ h' en busca de ayuda. Escribir '\ c' para borrar la cuenta de entrada de corriente. 

MariaDB [(ninguno)]> alces crear base de datos de conjunto de caracteres UTF-8 intercalar utf8_bin; 
Query OK, 1 fila afectada (0.00 seg) 

MariaDB [(ninguno)]> conceder todos los privilegios de los alces * a Elk @ "192.168.7%." Identificado por '123456'.; 
Query OK, 0 filas afectadas (0.00 seg) 

MariaDB [(ninguno)]>

3, el conector de prueba en otro MySQL host cliente

[root @ logstash-1 conf.d.] # mysql -uelk -p123456 -h192.168.7.105 
Bienvenido al monitor MariaDB. Comandos terminan con; o \ g. 
Su conexión Identificación MariaDB es 4 
Server versión: 5.5.64-MariaDB MariaDB servidor 

Copyright (C) 2000, 2018, Oracle, MariaDB Corporación Ab y otros. 

Escribir 'ayuda'; o '\ h' en busca de ayuda. Escribir '\ c' para borrar la cuenta de entrada de corriente. 

MariaDB [(ninguno)]>

2, instalar plug-in de JDBC host en logstash

1, el montaje de enchufe logstash-output-jdbc

[Root @ logstash-1 conf.d.] # logstash-plugin instalar logstash-salida-JDBC 

2, el sitio web oficial para descargar el paquete jar

MySQL Connector / J JDBC conductor es el oficial de MySQL JDBC (Java Data Base de conectividad, Java Database Connectivity) es una API de Java para ejecutar sentencias SQL puede proporcionar un acceso uniforme a una variedad de bases de datos relacionales, que consiste en un conjunto de lenguaje Java escribir clases e interfaces.

Descargar Oficial: https: //dev.mysql.com/downloads/

Descargar la versión correspondiente del paquete de sistema: mysql-connector-java-8.0.19-1.el7.noarch

 

Seleccione la versión correspondiente del paquete para descargar

 

3. Crear un directorio de un tarro de tienda, instalar el paquete descargado y copiar el frasco generado para crear el directorio especificado.

[@ Logstash la raíz-JDBC. 1] # yum la instalación de Java-MySQL-conector-8.0.19-1.el7.noarch.rpm-Y 
[la raíz-logstash @ ~. 1] # mkdir / usr / share / logstash / Vendedor / JAR / JDBC -p 
[la raíz-logstash @ ~. 1] CD # / usr / share / logstash / Vendedor / JAR / JDBC 
[@ logstash la raíz-JDBC. 1] # LL /usr/share/java/mysql-connector-java.jar 
-rw-r - r-- 1 root root 2.348.827 Dic 4 20:06 # /usr/share/java/mysql-connector-java.jar presencia de este directorio del paquete frasco creado anteriormente 
[root @ logstash-1 JDBC ] # cp /usr/share/java/mysql-connector-java.jar / usr / share / logstash / vendedor / jar / JDBC /

4, el servicio logstash reinicio, para asegurar que el servicio en este momento para poder iniciar logstash

[@ Logstash la raíz-1 JDBC.] # Systemctl la logstash reinicio 
[@ logstash la raíz-1 JDBC.] # Tail -f /var/log/logstash/logstash-plain.log 
[2020-03-16T14: 48: 43.692] [INFO] [logstash.agent] con éxito empezado punto final de la API logstash {: port => 9600} # logstash ha comenzado en este momento 
[root @ logstash-1 JDBC] # lista logstash-plugin | logstash-salida-JDBC grep # ver la salida en ese momento conecte la existencia de 
logstash-output-jdbc

3, crear una base de datos para recoger la tabla de registro en MariaDB

1, cree una elklog mesa de recogida de registros en la base de datos

[root @ filebeat-1 ~] # mysql 
Bienvenido al monitor MariaDB. Comandos terminan con; o \ g. 
Su conexión Identificación MariaDB es 13 
Versión de servidor: 5.5.64-MariaDB MariaDB servidor 

Copyright (C) 2000, 2018, Oracle, MariaDB Corporación Ab y otros. 

Escribir 'ayuda'; o '\ h' en busca de ayuda. Escribir '\ c' para borrar la cuenta de entrada de corriente. 

MariaDB [(ninguno)]> alces de uso; 
La lectura de datos de esta tabla para la terminación de nombres de tabla y columna 
Puede desactivar esta característica para obtener una rápida puesta en marcha con -A 

base de datos modificados 
MariaDB [alces]> crear elklog mesa (varchar IPCliente (64), varchar ResponseTime (16), HTTP_HOST varchar ( 64), HTTP_USER_AGENT varchar (256), varchar url (128), fecha y hora de tiempo (0)); #创建收集日志的elklog表,需要定义字段名称

4, el logstash servidor pasa a la base de datos de registro de nginx

1, crear un archivo de configuración para recoger nginx conectarse logstash servidor de directorio /etc/logstash/conf.d

[root @ logstash-1 conf.d.] # cat-filebeat a logstash.conf 
de entrada { 
  latidos { 
    host => "192.168.7.101" 
    port => 5044 
    códec => "json" 
  } 
} 


de salida { 
  si [campos] [ app] == "syslog" { 
  Redis { 
       host => "192.168.7.104" 
       port => "6379" 
       db => "0" 
       tipo_datos => "lista" 
       password => "123456" 
       clave => "filebeat-syslog- 7-103" 
       códec => "json" 
  }} 

  si [campos] [aplicación] == "nginx" { 
  Redis { 
       host => "192.168.7.104" 
       port => "6379" 
       db => "0"  
       tipo_datos => "lista"
       password => "123456"
       = Key> "filebeat-Nginx-log-7-103" 
       CODEC => "JSON" 
  } 
   JDBC {# usar MySQL módulo de transferencia de registro de la base de datos 
   connection_string => "jdbc: mysql: //192.168.7.105/elk usuario? = alces y contraseña = 123456 y useUnicode = true y characterEncoding = UTF-8 "# IP dirección para la dirección de la base de datos de 
   la declaración => [" insertar en elklog (IPCliente, ResponseTime, HTTP_HOST, HTTP_USER_AGENT, URL, de estado) VALUES (?,?,?,?,?,?) "" IPCliente "" ResponseTime "" HTTP_HOST "" HTTP_USER_AGENT "" "" "] # estado de las URL campo personalizado y creado anteriormente corresponden elklog? Hay varios campos para escribir unas pocas 
  }} 
}

2, reinicie el servicio de logstash

# Systemctl reinicio logstash 

5, vista recogidos en una base de datos de registro de nginx

MariaDB [alces]> SELECT * FROM elklog \ G; 
*************************** 1. fila ******************** ******* 
       IPCliente: 192.168.7.1 
   ResponseTime: 0,0 
      HTTP_HOST: 192.168.7.103 
HTTP_USER_AGENT: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 78.0.3904.108 Safari / 537.36 
            url : /index.html 
         estado: 304 
           tiempo: 03/16/2020 16:34:05 
*************************** 2. fila *************************** 
       IPCliente: 192.168.7.1 
   ResponseTime: 0,0 
      HTTP_HOST: 192.168.7.103 
HTTP_USER_AGENT: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 78.0.3904.108 Safari / 537.36
            url: /index.html  
         estado: 304 
           tiempo : 03/16/2020 16:34:05
*************************** 3. fila ************** ************* 
       IPCliente: 192.168.7.1 
   ResponseTime: 0,0 
      HTTP_HOST: 192.168.7.103 
HTTP_USER_AGENT: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 78,0 .3904.108 Safari / 537.36 
            url: /index.html 
         estado: 304 
           tiempo: 03/16/2020 16:34:05 
************************ *** 4. fila *************************** 
       IPCliente: 192.168.7.1 
   ResponseTime: 0.0 
      HTTP_HOST: 192.168.7.103 
HTTP_USER_AGENT: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 78.0.3904.108 Safari / 537.36 
            url: /index.html 
         estado: 304 
           tiempo : 03/16/2020 16:34:05 
*************************** 5. fila ********* ******************
       IPCliente: 192.168.7.1 
   ResponseTime: 0,0 
      HTTP_HOST: 192.168.7.103 
HTTP_USER_AGENT: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 78.0.3904.108 Safari / 537.36 
            url: /index.html 
         estado: 304 
           tiempo: 03/16/2020 16:34:05 
*************************** 6. fila ******* ******************** 
       IPCliente: 192.168.7.1 
   ResponseTime: 0,0 
      HTTP_HOST: 192.168.7.103 
HTTP_USER_AGENT: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML , like Gecko) Chrome / 78.0.3904.108 Safari / 537.36 
           tiempo: 03/16/2020 16:34:05 
            url: /index.html
         estado: 304 
*************************** 7. fila ***************** ********** 
       IPCliente: 192.168.7.1 
   ResponseTime: 0,0 
      HTTP_HOST: 192.168.7.103 
HTTP_USER_AGENT: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 78.0.3904.108 Safari /537.36 
            url: /index.html 
         estado: 304 
           tiempo: 03/16/2020 16:34:05 
*************************** 8. fila *************************** 
       IPCliente: 192.168.7.1 
   ResponseTime: 0,0 
      HTTP_HOST: 192.168.7.103 
HTTP_USER_AGENT: Mozilla / 5.0 (Windows NT 6.1; WOW64) AppleWebKit / 537.36 (KHTML, como Gecko) Chrome / 78.0.3904.108 Safari / 537.36 
            url: /index.html 
         estado: 304 
           tiempo : 03/16/2020 16:34:05

En segundo lugar, mediante mapas estadísticos dirección IP del cliente, de la ciudad

1, descargar la página web oficial MAP

Mapa oficial para descarga: https: //dev.maxmind.com/geoip/geoip2/geolite2/  

1, el sitio web oficial para descargar el software del mapa, y el software de tienda bajo / etc / Catálogo de logstash de un archivo comprimido para descomprimir

[@ Logstash la logstash root] # pwd 
/ etc / logstash 
[@ logstash la logstash root] # xvf GeoLite2 el alquitrán-City_20190723.tar.gz 
[@ logstash la logstash root] # LL-City_20190723 GeoLite2 / GeoLite2-City.mmdb 
-rw-R- -r-- 1 root 61762964 Jul 23 de 2019 GeoLite2-City_20190723 / GeoLite2-City.mmdb # este perfil es nuestra necesidad de hacer referencia a

2, el perfil de anfitrión logstash configuración, el registro se transmite a la elasticsearch anfitrión

1, modifique el archivo de configuración en el directorio /etc/logstash/conf.d Logstash, la adición de un módulo para cargar el mapa de direcciones

[root @ logstash conf.d.] # cat-logstash a es.conf 
de entrada { 
   Redis { 
     host => "192.168.7.104" 
     port => "6379" 
     db => "0" 
     password => "123456" 
     tipo_datos => "lista" 
     clave => "filebeat-syslog-7-103" 
     códec => "json" 
   } 
   ReDiS { 
     host => "192.168.7.104" 
     port => "6379" 
     db => "0" 
     password => "123456" 
     tipo_datos => "lista" 
     clave => "filebeat-nginx-log-7-103" 
     códec => "json"
   } 
} 

   Filtrar { 
        SI [Campos] [App] == {# nginx tipo de servicio "nginx" que se utiliza para determinar 
        geoıp {
                fuente => "IPCliente" 
                target => "geoıp" 
                base de datos => "/etc/logstash/GeoLite2-City_20190723/GeoLite2-City.mmdb" #修改指定的地址位置
                add_field => [ "[geoıp] [coordenadas]", "% {[geoıp] [longitud]}"] 
                add_field => [ "[geoıp] [coordenadas]", "% {[geoıp] [latitud]}"] 
        } 
    mutan { 
      convert => [ "[geoıp] [coordenadas ] " "flotar"] 
	} 
  } 
} 



de salida { 
  si [campos] [App] == "syslog"{ 
    Elasticsearch { 
      hosts => [ "192.168.7.100:9200"] 
      index =>"logstash-syslog-7-103 -% {+} aaaa.mm.dd" 
    }} 

  si [campos] [aplicación] == "nginx"{
    elasticsearch { 
      hosts => [ "192.168.7.100:9200"] 
      index => "logstash-nginx-accesslog-7-103 -% {+ aaaa.mm.dd}" 
    }} 
}

2, la prueba de perfil Logstash

[root @ logstash conf.d.] # logstash -f-logstash a es.conf -t 
ADVERTENCIA: No se pudo encontrar logstash.yml que normalmente se encuentra en $ LS_HOME / config o / etc / logstash. Se puede especificar la ruta mediante --path.settings. Continuando con los valores predeterminados 
No se pudo encontrar la configuración log4j2 en /usr/share/logstash/config/log4j2.properties de ruta. El uso de configuración por defecto, que registra los errores en la consola 
[WARN] 16/03/2020 19: 09: 09,448 [LogStash :: Runner] multilocal - Ignorando el archivo 'pipelines.yml' porque los módulos o las opciones de línea de comandos se especifican 
configuración OK #显示OK,说明配置文件没问题

3, reinicie el servicio de Logstash

# Systemctl reinicio logstash

3, probarlo en el servidor nginx

1, lead-in porción Nginx registro en el servidor.

[Root @ filebate src] # tail -n1000 access.log >> /var/log/nginx/access.log 

2, en Kibana actualizar la información del archivo de índice generado con anterioridad, se carga la última información de índice

4, descubren ver el estado de registro

 5, cree una conducta visualización de mapas, y guardar

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  

Supongo que te gusta

Origin www.cnblogs.com/struggle-1216/p/12504866.html
Recomendado
Clasificación