Elk-filebeat

前言

Elk:filebeat搜集日志工具和logstash相同

Filebeat是一个轻量级的日志收集工具,所使用的资源比logstash部署和启动时使用的资源更小

Filebeat可以运行在非Java环境,他可以代理logstash在非Java环境上收集日志

Filebeat无法实现数据的过滤,一般是结合logstash的数据过滤功能一块使用

Filebeat收集的数据可以发往多个主机,远程收集

核心图:

Elk-filebeat_第1张图片

本地采集:

实验环境:

在elk的基础上新加一台虚拟机,安装filebeat

安装filebeat

Elk-filebeat_第2张图片

修改默认路径

做时间同步

yum install ntpdate -y

ntpdate ntp.aliyun.com

安装Nginx和httpd

Elk-filebeat_第3张图片

验证

Elk-filebeat_第4张图片

如何直接收集nginx日志

Elk-filebeat_第5张图片

Elk-filebeat_第6张图片

Elk-filebeat_第7张图片

配置filebeat:

Elk-filebeat_第8张图片

Elk-filebeat_第9张图片

路径

Elk-filebeat_第10张图片

注释(elasticsearch outputs)

Elk-filebeat_第11张图片

取消注释(打开logsttash output)

Elk-filebeat_第12张图片

创建目录

写一个脚本

Elk-filebeat_第13张图片

为了实验效果,添加一个标准输出

Elk-filebeat_第14张图片

开始收集,发送

Elk-filebeat_第15张图片

Nohup表示在后台记录执行命令的过程

./filebeat运行文件

-e使用标准输出的同时进行syslog文件输出

-c指定配置文件

执行过程输出到filebeat.out这个文件当中。&表示后台运行

查看是否报错:successful表示成功

开启logstash收集,接收

访问测试(多刷几遍,以防收集不到,404也多刷几遍)访问呢错误日志,以便观察

Elk-filebeat_第16张图片

Logstash收集日志的过程:

Input(从哪里收集)

Filebeat(过滤)

Output(发送ES实例)

远程收集,远程收集多个日志

打开数据库的日志功能

Elk-filebeat_第17张图片

Elk-filebeat_第18张图片

表中插入一些数据(便于实验效果查看)

Elk-filebeat_第19张图片

安装一个nginx和一个http

添加一些访问内容,访问测试

开始收集日志准备

Elk-filebeat_第20张图片

多余的注释信息全部删掉

Nginx模块

Elk-filebeat_第21张图片

filebeat.inputs:

- type: log

  enabled: true

  paths:

    - /var/log/nginx/access.log

    - /var/log/nginx/error.log

  tags: ["nginx_54"]

  fields:

    service_name: 20.0.0.54_nginx

    log_type: nginx

    from: 20.0.0.54

http模块

Elk-filebeat_第22张图片

- type: log

  enabled: true

  paths:

    - /etc/httpd/logs/access_log

    - /etc/httpd/logs/error_log

  tags: ["httpd_54"]

  fields:

    service_name: 20.0.0.54_httpd

    log_type: httpd

    from: 20.0.0.54

Mysql模块

Elk-filebeat_第23张图片

- type: log

   enabled: true

   paths:

     - /usr/local/mysql/data/mysql_general.log

   tags: ["mysql_54"]

   fields:

     service_name: 20.0.0.54_mysqld

     log_type: mysql

     from: 20.0.0.54

注意:把这个三个的tags改一下(tags做一下区分)

总览图:

格式要对齐,要一模一样,一个符号都不能差

Elk-filebeat_第24张图片

取消注释

Elk-filebeat_第25张图片

回到elk收日志,便于查看是否命中,可以加上方框那一行,可以不加

Elk-filebeat_第26张图片

input {

   beats { port => "5045" }

}

output {

    if "nginx_54" in [tags] {

    elasticsearch {

        hosts => ["20.0.0.52:9200","20.0.0.53:9200"]

        index =>"%{[fields][service_name]}-%{+YYYY.MM.dd}"

    }

   }

   if "httpd_54" in [tags] {

    elasticsearch {

        hosts => ["20.0.0.52:9200","20.0.0.53:9200"]

        index =>"%{[fields][service_name]}-%{+YYYY.MM.dd}"

    }

   }

   if "mysql_54" in [tags] {

    elasticsearch {

        hosts => ["20.0.0.52:9200","20.0.0.53:9200"]

        index =>"%{[fields][service_name]}-%{+YYYY.MM.dd}"

    }

   }

   stdout {

    codec => rubydebug

  }

}

启动,后台运行,开始传送

nohup ./filebeat -e -c filebeat.yml > filebeat.out &

打开filebeat日志,便于观察

Elk-filebeat_第27张图片

Logstash启动运行,收集日志

logstash -f nginx_54.conf --path.data /opt/test12&

涉及改端口问题

Logstash可以使用任意端口,只要没被在占用,都可以使用,推荐从1024之后开始使用

5044

5045

5046

改端口

Elk-filebeat_第28张图片

ES查看        

Elk-filebeat_第29张图片

如何对logstash性能上的优化(小优化):

Logstash启动是在Jam虚拟机当中启动,启动一次至少要占500M内存

Pipeline.workers:2

Logstash的工作线程,默认就是CPU数,4 2 8 4给一半即可,2核,2个

一次性可以处理检索事件的大小125条数,200

查询更新的延时,50毫秒,也可以自行调整,生产中一般都是15 10毫秒

你可能感兴趣的:(elk)