最新消息: 关于Git&GitHub 版本控制你了解多少?
您现在的位置是:群英 > 服务器 > 系统运维 >
filebeat如何安装?怎样配置?
linuxe发表于 2020-10-21 11:41 次浏览
概述:Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch、logstarsh或者redis中存放。

一、Filebeat是什么

由于原始的ELK架构中Logstash依赖JAVA环境,偏重量级,占用系统资源较高,而且每台客户端都要配置JDK也比较麻烦。所以现在通常采用ELFK架构,这个F就是Filebeat。除了偏向日志采集的Filebeat外,还有许多beat成员,比如偏向指标的metricbeat、偏向数据包的packetbeat等。ELK常见架构对比:
1、Logstash-->Elasticsearch-->Kibana(适合分析,但偏重量级)
2、Filebeat-->Elasticsearch-->Kibana(只适合查看日志,不适合分析)
3、Filebeat-->Logstash(需要开启端口监听)--> Elasticsearch--> Kibana(适合分析)



二、Elasticsearch+Filebeat+Kibana架构部署

1、下载Filebeat二进制包并解压即可

1 wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.6.0-linux-x86_64.tar.gz
 
2 tar zxf filebeat-6.3.0-linux-x86_64.tar.gz
 
3 mv filebeat-6.3.0-linux-x86_64 /usr/local/
 



2、Filebeat的目录结构与配置,主要关注的就是可执行文件filebeat和配置文件filebeat.yml。




3、编辑配置文件filebeat.yml修改输入输出配置项。首先将输出直接给到ES处理,配置如下:
01 filebeat.inputs:
 
02 #采集系统日志
 
03 - type: log  #除了log,还有stdin、redis、docker等类型
 
04   enabled: true  #启用开关
 
05   paths:
 
06     - /var/log/message.log
 
07   # include_lines: ['^ERR','^WARN']  #只采集正则所包含的日志
 
08   tags: ["system"]  #定义标签,采集多个日志的时候可以用标签来创建索引,也可以用logstash的type来区分 
 
09  
 
10 #采集nginx日志
 
11 - type: log
 
12   enabled: true
 
13   paths:
 
14     - /var/log/nginx/access.log
 
15   tags: ["nginx"]
 
16  
 
17 #采集tomcat日志,使用了multiline插件
 
18 - type: log
 
19   enabled: true
 
20   paths:
 
21     - /var/log/tomcat/tomcat_log.*.txt
 
22   multiline.pattern: '^\d{2}'  #匹配以2个数字开头的日志
 
23   multiline.negate: true
 
24   multiline.match: after
 
25   multiline.max_lines: 1000  #合并的最大行数,默认是500
 
26   tags: ["tomcat"]
 
27  
 
28 #ES部分
 
29 output.elasticsearch:  #直接输出给ES
 
30   hosts: ["http://192.168.1.100:9200"]  #集群的话写多个地址,用逗号分隔
 
31   indices:
 
32     - index: "system-%{[agent.version]}-%{+yyyy.MM.dd}"
 
33       when.contains:
 
34         tags: "system"
 
35     - index: "nginx-%{[agent.version]}-%{+yyyy.MM.dd}"
 
36       when.contains:
 
37         tags: "nginx"
 


4、启动Filebeat,启动速度相比Logstash会快许多,内存占用也更少
1 nohup /usr/local/filebeat/filebeat -e -c /usr/local/filebeat/filebeat.yml &
 

5、使用Kibana查看数据并出图


三、Elasticsearch+Logstash+Filebeat架构

如果Filebeat直接把日志传给ES的话,由于其不支持正则、无法移除字段等,没办法实现数据分析,所以更优的配置是将Filebeat收集到的日志输出给一台Logstash服务器,由Logstash处理后再给ES。


1、修改Filebeat输出段的配置,将输出给到Logstash,其他配置不动

01 filebeat.inputs:
 
02 - type: log
 
03   enabled: true
 
04   paths:
 
05     - /var/log/nginx/access.log
 
06   tages: ["access"]
 
07 - type: log
 
08   enabled: true
 
09   paths:
 
10     - /var/log/nginx/error.log
 
11   tages: ["error"]
 
12  
 
13 output.logstash:
 
14   hosts: ["192.168.94.10:5044"]
 


2、修改Logstash input相关配置,其他不动
01 input {
 
02   beats {
 
03     host => '192.168.1.100'  #如果配置了很多个beat,那这行可以不写,只保留port部分
 
04     port => 5044
 
05   }
 
06 }
 
07  
 
08 filter {
 
09   grok {
 
10     match => {
 
11       "message" => '(?<source_ip>\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) - [a-zA-Z0-9-]+ \[(?<nginx_time>[^ ]+) \+\d+\] "(?<method>[A-Z]+) (?<request_url>[^ ]+) HTTP/\d.\d" (?<status>\d+) \d+ "(?<referer>[^"]+)" "(?<agent>[^"]+)" ".*"'
 
12     }
 
13   }
 
14   geoip {
 
15     source => "clientip"
 
16   }
 
17   date {
 
18     match => ["timestamp","dd/MMM/yyyy:HH:mm:ss Z"
 
19     target => "@timestamp"
 
20     timezone => "Asia/Shanghai"
 
21   }
 
22   mutate {
 
23     convert => ["bytes","integer"]
 
24     convert => ["response_time","float"]
 
25     remove_field => ["message","agent","tags"]
 
26   }
 
27 }
 
28  
 
29 output {
 
30   elasticsearch {
 
31     hosts => ["http://127.0.0.1:9200"]
 
32   }
 
33 }
 
四、使用Filebeat的module快速配置

Filebeat已经为使用者提供了大量的module,比如Nginx module、MySQL module等。开启module后可以省去很多配置,包括Kibana上的出图(可以通过官方module学习出图)。下面以MySQL为例进行配置:
1、启动module

1 filebeat modules enable mysql
 


2、配置module,只需要修改日志路径
1 vi /etc/filebeat/modules.d/mysql.yml
 
2 - module: mysql
 
3   error:
 
4     enabled: true
 
5     var.paths: ["/var/log/mysql/error.log"]
 


3、初始化环境,如果有安装多个module的话只用初始化一次
1 filebeat setup -e
 


4、重启filebeat,需要注意的是索引名是自动创建好了的,不要自定义,然后到Kibana中看图即可
 
标签:filebeat配置
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
相关信息推荐