1.filebeat 搜集日志文件,读取日志文件内容
2.确保至少一次交付,(filebeat意外关闭/停止),而不是说把要传输的日志文件给删了
未完成的时间保存在注册文件中,filebeat在次启动的时候,拿到这事件,继续完成未完成的操作(重复输出)
1.是什么
2.工作原理
3.为什么要使用filebeat
4.两个组件的作用
5.filebeat可以确保至少交付一次(为什么? Filebeat保证事件至少会被传送到配置的输出一次,并且不会丢失数据。 Filebeat能够实现此行为,因为它将每个事件的传递状态存储在注册文件中。在输出阻塞或未确认所有事件的情况下,Filebeat将继续尝试发送事件,直到接收端确认已收到。
如果Filebeat在发送事件的过程中关闭,它不会等待输出确认所有收到事件。
发送到输出但在Filebeat关闭前未确认的任何事件在重新启动Filebeat时会再次发送。
这可以确保每个事件至少发送一次,但最终会将重复事件发送到输出。)
*.log
部署filebeat
1、首先下载filebeat安装包
wget https://artifacts.elastic.co/downloads/beats/filebeat/filebeat-6.5.4-linux-x86_64.tar.gz
tar xf filebeat-6.5.4-linux-x86_64.tar.gz -C /usr/local && mv /usr/local/filebeat-6.5.4-linux-x86_64 /usr/local/filebeat
2、配置filebeat配置文件,filebeat.yml,根据要求实现的功能,打开input和output功能
基本input
- type: log
enabled: false #开起output时,打开,换成true
paths:
- /var/log/*.log #选择收集的log路径或者文件
基本output(output.kafka之后,每行开头有两个空格) output.需要传送的软件/elasticsearch/kafka/logstash/…….例:
output.kafka:
hosts: [“localhost:port”] #多个地址需要用””分别引起来
enabled: true
topic: ‘在kafka中创建的topic’
logstash配置文件编辑
vim filebeat.conf
input {
kafka {
type => “kafka-logs”
bootstrap_servers => “172.17.0.4:9092,172.17.0.5:9092” #此处填写kafka的IP地址:端口号,多个用,隔开
group_id => “logstash”
auto_offset_reset => “earliest”
topics => “kafka_run_log” #kafka中创建的topic
consumer_threads => 5
decorate_events => true
}
}
output {
elasticsearch {
index => ‘kafka-run-log-%{+YYYY.MM.dd}’
hosts => [“172.17.0.2:9200”,”172.17.0.3:9200”] #此处填写要转发的es地址,多个用””引起来
}
}
部署完之后,部署kafka,logstash,首先启动zookeeper,其次kafka,然后启动logstash,最后启动filebeat
