Utilice el módulo propio de filebeat para leer registros de nginx y registros de mysql y guárdelos en elasticsearch

Muchos tutoriales en línea son filebeat leen el archivo y luego se envían al logstash resuelto, luego se envían a elasticsearch
buscando durante mucho tiempo no encontré filebeat leyó el archivo enviado a elasticsearch hoy para aprender en su propio registro
documentación de referencia documentación del comando filebeat , documentación de los módulos filebeat

配置 filebeat.yml

~~~yaml
output.elasticsearch:
  enabled: true
  hosts: ["192.168.0.202:9200"]
  #index: "log-%{[event.dataset]}-%{+yyyy.MM.dd}"	也可以不用配置下面的indices,直接配置这个即可
  #默认索引格式 filebeat-%{[agent.version]}-%{+yyyy.MM.dd}
  indices:
  	#自定义索引,更细粒度的控制索引,注意不会使用到filebeat索引模板,想要特定的字段类型 需要自己配置索引模板
    - index: "log-%{[event.dataset]}-%{+yyyy}"	#按年索引
     #条件语法参考https://www.elastic.co/guide/en/beats/filebeat/7.9/defining-processors.html#conditions
      when.equals:
      #需要提前知道数据格式 再决定如何判断  
         event.module: "mysql"
    - index: "log-%{[event.dataset]}-%{+yyyy.MM.dd}"	  #按天索引
      when.equals:
         event.module: "nginx"	

Ejecutar filebeat

No es necesario cambiar el archivo de configuración del módulo para abrir por comando

#运行filebeat -e输出详细日志 -modeules
./filebeat run -e -modules=mysql,nginx -M "mysql.slowlog.var.paths=['/data/mariadb/13306/data/log/mariadb-slow.log*']" -M "nginx.access.var.paths=['/usr/local/nginx/logs/access.log']" -M "nginx.error.var.paths=['/usr/local/nginx/logs/error.log']"

Nota: Esta forma de inicio es solo una parte de la configuración, la visualización no es buena, se recomienda utilizar el archivo de configuración

Abrir mediante archivo de configuración

Use el comando para abrir el módulo

O vaya directamente al directorio modules.d para modificar el nombre de archivo del archivo de configuración correspondiente y eliminar .disabled

#开启模块 运行完这个命令之后 你会发现modules.d目录下 nginx.yml.disabled变成了nginx.yml
./filebeat enable nginx mysql

Editar configuración

módulos.d / mysql.yml

# Module: mysql
# Docs: https://www.elastic.co/guide/en/beats/filebeat/7.10/filebeat-module-mysql.html
- module: mysql
  # Error logs
  error:
    enabled: false
  slowlog:
    enabled: true
    #慢日志路径
    var.paths: ["/data/mariadb/13306/data/log/mariadb-slow.log*"]

módulos.d / nginx.yml

# Module: nginx
# Docs: https://www.elastic.co/guide/en/beats/filebeat/7.10/filebeat-module-nginx.html

- module: nginx
  # Access logs
  access:
    enabled: true
    #nginx access日志
    var.paths: ["/usr/local/nginx/logs/access.log*"]
  error:
    enabled: true
    #nginx error日志
    var.paths: ["/usr/local/nginx/logs/error.log*"]
  ingress_controller:
    enabled: false

Abrir filebeat

#启动filebeat
./filebeat run -e

Resultados de la prueba

Agregar registro de prueba

Declaración de prueba de registro lento de MySQL

select sleep(2);

Prueba de Nginx, ponte a prueba

curl 192.168.0.202/test 

Ver lista de índice

Inserte la descripción de la imagen aquí
El formato final de los datos guardados es el siguiente
Inserte la descripción de la imagen aquí
Comandos comunes

#查看支持的模块
./filebeat modules list
#设置初始环境,包括索引模板,ILM策略和写入别名,Kibana仪表板(如果可用)以及机器学习作业(如果可用)。
./filebeat setemp
#开启指定模块 比如mysql 然后去编辑/modules.d/mysql.yml
./filebeat modules enable mysql 

Supongo que te gusta

Origin blog.csdn.net/chen_cxl/article/details/111313154
Recomendado
Clasificación