Use o próprio módulo do filebeat para ler logs do nginx e do mysql e salvá-los no elasticsearch

Muitos tutoriais on-line são filebeat ler o arquivo e, em seguida, enviados para o logstash resolvido, em seguida, enviado para o elasticsearch
procurando por um longo tempo não encontrou o filebeat ler o arquivo enviado para o elasticsearch hoje para aprender em sua própria
documentação de referência de registro documentação do comando filebeat , documentação dos 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"	

Executar filebeat

Não há necessidade de alterar o arquivo de configuração do 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']"

Obs: Esta forma de iniciar é apenas parte da configuração, a visualização não é boa, recomenda-se utilizar o arquivo de configuração

Abrir via arquivo de configuração

Use o comando para abrir o módulo

Ou vá diretamente para o diretório modules.d para modificar o nome do arquivo do arquivo de configuração correspondente e remover .disabled

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

Editar configuração

modules.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*"]

modules.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

Resultado dos testes

Adicionar log de teste

Declaração de teste de log lento do MySQL

select sleep(2);

Teste Nginx, teste-se

curl 192.168.0.202/test 

Ver lista de índice

Insira a descrição da imagem aqui
O formato final dos dados salvos é o seguinte
Insira a descrição da imagem aqui
Comandos comuns

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

Acho que você gosta

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