Filebeat的架构分析、配置解释与示例(2)

filebeat.yml中output的配置将除了logstash之外注释掉

output: logstash: hosts: ["192.168.197.130:5044"] worker: 2 loadbalance: true index: filebeat 这里 worker 的含义,是 beat 连到每个 host 的线程数。 在 loadbalance 开启的情况下,意味着有 4 个worker 轮训发送数据

则对应的logstash配置,编写一个配置文件

sudo vim filebeat_logstash_out.conf

beat 写入 Logstash 时,会配合 Logstash-1.5 后新增的 metadata 特性。将 beat 名和 type 名 记录在 metadata 里。所以对应的 Logstash 配置应该是这样:

input { beats { port => 5044 } } output { elasticsearch { hosts => ["http://192.168.197.128:9200"] index => "%{[@metadata][beat]}-%{+YYYY.MM.dd}" document_type => "%{[@metadata][type]}" } stdout{ codec=>rubydebug } }

启动conf

bin/logstash -f config/filebeat_logstash_out.conf

往log文件中追加日志

echo “2222333344445555” >> test1.log

前往查看效果:

这里写图片描述

这里写图片描述

3:output of File

filebeat.yml中output的配置将除了file之外注释掉

output: file: path: "/opt/elk/log/filebeat_output_file" filename: filebeat rotate_every_kb: 10000 number_of_files: 7

往log文件中追加日志:

echo “this is filebeat output of file” >> test1.log

查看效果:

4:output of Console

filebeat.yml中output的配置将除了cosnsole之外注释掉

output: console: pretty: true

重启启动服务:

sudo filebeat -e -c /etc/filebeat/filebeat.yml

往log文件中追加日志:

echo “this is filebeat output of console” >> test1.log

前往服务启动窗口查看效果:

这里写图片描述

ELK+Filebeat的Demo 1:在/opt/elk/log目录下有三个文件分别是test1.log,test2.log,test3.log** 2:通过Python脚本往三个文件中追加内容,内容格式如下: name   age   address   company  
aa   23   beijing   alibaba  

Python的脚本内容如下:

#-*-coding:utf-8-*- name_list = ['aa','bb','cc','dd','ee'] addr_list = ['beijing','shanghai','guangzhou'] company_list =['baidu','tengxun','alibb'] import random import time def get_name(): return name_list[random.randint(0,4)] def get_age(): return random.randint(20,25) def get_addr(): return addr_list[random.randint(0,2)] def get_comp(): return company_list[random.randint(0,2)] if __name__=="__main__": while True: print("%s %s %s %s"%(get_name(),get_age(),get_addr(),get_comp())) str_line = get_name()+" "+str(get_age())+" "+get_addr()+" "+get_comp() import os os.system("echo %s >> test1.log" % str_line) time.sleep(1) 3:filebeat 的配置文件使用output=logstash

filebeat.yml

output: logstash: hosts: ["192.168.197.130:5044"] worker: 2 loadbalance: true index: filebeat 4:filebeat_logstash_out.conf input { beats { port => 5044 } } filter{ if [type] == 'log'{ grok{ match=>{ "message"=>"%{WORD:username} %{WORD:age} %{WORD:address} %{WORD:company}" } } } } output { elasticsearch { hosts => ["http://192.168.197.128:9200"] index => "%{[@metadata][beat]}-%{+YYYY.MM}" document_type => "%{[@metadata][type]}" } stdout{ codec=>rubydebug } } 5:启动服务

启动python脚本

启动conf配置文件

6:web查看结果

这里写图片描述

这里写图片描述

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/4872bf40256d3a47c220306ec469dac2.html