当前位置 : 主页 > 操作系统 > centos >

从零进阶--教你如何使用Filebeat实现日志可视化收集

来源:互联网 收集:自由互联 发布时间:2022-06-20
从零进阶 -- 教你如何使用 Filebeat 实现日志可视化收集 简介 : Filebeat 是一个开源的文件收集器,也是一款轻量级的日志传输工具。采用 go 语言开发,重构 logstash 采集器源码, 安装在

                                           从零进阶--教你如何使用Filebeat实现日志可视化收集

简介

   Filebeat是一个开源的文件收集器,也是一款轻量级的日志传输工具。采用go语言开发,重构logstash采集器源码,安装在服务器上作为代理来监视日志目录或特定的日志文件,并把它们发送到logstashelasticsearch,然后在Kibana上实现可视化。

 

其他介绍可参考官方文档:

https://www.elastic.co/guide/en/beats/filebeat/current/filebeat-configuration-details.html#configuration-output

一、Filebeat安装

下载地址:

 

源码安装

wget  https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.1-linux-x86_64.tar.gz

 

rpm下载安装

curl -O https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.4.1-x86_64.rpm rpm -ivh filebeat-6.4.1-x86_64.rpm

下面我们以rpm安装

 从零进阶--教你如何使用Filebeat实现日志可视化收集_ekl

二、Filebeat应用

因为我的是以rpm安装的,所以我们可以在/etc/filebeat/下面发现有filebeat.yml

 从零进阶--教你如何使用Filebeat实现日志可视化收集_filebeat_02

我们可以发现filebeat.yml配置文件里面,主要配置的模块有两个

·         Filebeat input

·         Output

Filebeat: 在这个模块里面,我们可以配置监控的日志,通过这个模块,我们可以指定日志的绝对路径,日志的类型,感知更新时间等等的·一些配置。

Output:在这个模块里面,主要的作用的是,filesbetas收集的日志输出到哪里,在这里,我们可以配置elasticsearchlogstash,两者二选一就可以了。

配置收集日志目录:

/etc/filebeat/filebeat.yml

下面以获取nginx的日志为例

安装Elasticsearch GeoIP和用户代理插件

es的服务器上:

#su - www #cd /usr/local/elasticsearch #bin /elasticsearch-plugin install ingest-geoip  #bin /elasticsearch-plugin install ingest-user-agent

三、Filebeat采集数据,写入到elasticsearch

修改Filebeat配置

#vim /etc/filebeat/filebeat.yml filebeat.inputs: - type: log   #定义日志格式   enabled: true   paths: - /data/wwwlogs/*.log   #定义日志的路径 output.elasticsearch:   hosts: ["172.25.0.30:9200"]    #定义的es的url   username: "elastic"  定义es的账号,已做安全连接   password: "changeme" setup.kibana:  host: "172.25.0.30:5601"   #定义kibana的url

启动filebeat

#cd /etc/filebeat #filebeat modules enable nginx

修改/etc/filebeat/modules.d/nginx.yml文件中的设置

#vim /etc/filebeat/modules.d/nginx.yml # cat modules.d/nginx.yml - module: nginx   # Access logs   access:     enabled: true         var.paths: ["/data/wwwlogs/*.log"]   # Error logs   error:     enabled: true     var.paths: ["/data/wwwlogs/error.log"] #filebeat setup # service filebeat start Starting filebeat (via systemctl):                         [  OK  ]

 

进去kibana添加filebeat

 从零进阶--教你如何使用Filebeat实现日志可视化收集_日志_03

 从零进阶--教你如何使用Filebeat实现日志可视化收集_ekl _04

 下一步就可以创建完毕了

 从零进阶--教你如何使用Filebeat实现日志可视化收集_filebeat_05

创建完毕后

我们直接跳到Discover,查看我们获取的数据

 从零进阶--教你如何使用Filebeat实现日志可视化收集_filebeat_06

可以发现我们是已经获取到nginx的完整的数据了

继续查看我们的nginx的仪表板。

 从零进阶--教你如何使用Filebeat实现日志可视化收集_日志_07

我们可以发现,我已经可以通过filebeat采集到nginx的日志的数据了,并生成的数据图像,到这里我们的获取数据就完成了,elasticsearch通过filebeat获取数据就完成了。

四、Filebeat采集数据,写入到logstash

1、修改Filebeat配置

#vim /etc/filebeat/filebeat.yml filebeat.inputs: - type: log   #定义日志格式   enabled: true   paths: - /data/wwwlogs/*.log   #定义日志的路径 output.logstash:   # The Logstash hosts   hosts: ["172.25.0.30:5044"]

2、配置logstash

logstash服务器:

因为需要配置logstah来获取数据,所以我们需要配置logstash

#vim /etc/logstash/conf.d/filebeat.conf

input {     beats {          port => "5044"   #定义输入端口   } } filter {     grok {          match => { "message" => "%{COMBINEDAPACHELOG}" }          }          date {              match => [ "timestamp", "dd/MMM/yyyy:HH:mm:ss Z" ]              target => ["datetime"]          }          geoip {               source => "clientip"          } } output {     elasticsearch {       hosts => "172.25.0.30:9200"    #定义输出的es的url。   index => "nginx_log"   #定义标题索引   }     stdout { codec => rubydebug } }

更改权限

#chown www:www /etc/logstash/conf.d/filebeat.conf

3、启动logstash,测试

# ./usr/local/src/logstash-6.3.0/bin/logstash   -f /etc/logstash/conf.d/filebeat.conf

启动之后,可以发现logstash已经从filebeat收集到数据了

 从零进阶--教你如何使用Filebeat实现日志可视化收集_filebeat_08

查看logstash的启动状态,发现5044已经起来了。

 从零进阶--教你如何使用Filebeat实现日志可视化收集_收集_09

4、添加索引,出数据

 从零进阶--教你如何使用Filebeat实现日志可视化收集_日志_10

查看是否已经获取到数据

 从零进阶--教你如何使用Filebeat实现日志可视化收集_filebeat_11

我们发现已经是可以获取到目标主机的nginx日志了。到这里我们使用logstash获取日志就完成了。

五、总结

 Filebeat不仅仅可以收集nginx,还可以收集mysqlapacheredis和系统日志。从我们的搭建过程来看,可以发现filebeat配置并不是很难,不过更好的应用还是需要进一步熟悉才行。。

网友评论