来自官网,版本为1.2
下载rpm包并安装
wget -c https://download.elastic.co/beats/filebeat/filebeat-1.2.3-x86_64.rpm
rpm -ivh filebeat-1.2.3-x86_64.rpm
配置文件位于/etc/filebeat/
默认filebeat的日志是to_syslog,就是/var/log/message,而且是error级别以上才打印,最好改一下
vi /etc/filebeat/filebeat.yml(Logging段,一般在文件末尾,配置项都是存在的,取消注释后修改下即可)
logging:
to_syslog: false
to_files: true
files:
rotateeverybytes: 10485760 # 默认的10MB
level: info
修改后,日志文件将位于/var/log/filebeat/
另外要说的是,类似logstash,为了防止重复处理日志,filebeat也会记录处理进度到文件/var/lib/filebeat/registry
为了测试可以先停止filebeat,清空文件registry,然后再启动就会重复处理了
下面是简单将文件传到elasticsearch的配置
vi /etc/filebeat/filebeat.yml(配置项都是存在的,取消注释后修改下即可)
filebeat:
prospectors:
paths:
- /data/logs/*.log
encoding: utf-8
input_type: log
output:
elasticsearch:
hosts: ["localhost:9200"]
paths下面可以配置多个路径
下面启动filebeat
/etc/init.d/filebeat
在elasticsearch中可以看到多了一个filebeat-[date]的索引,查一下可以看到直接把每行日志作为一个字符串处理的
所以实际情况下,都是会经过logstash处理后再传给elasticsearch
首先需要让logstash做好接收filebeat数据的准备
vi /etc/logstash/conf.d/filebeat.conf
input {
beats {
port => 5044
}
}
output {
elasticsearch {
hosts => "localhost"
}
}
重启logstash
vi /etc/filebeat/filebeat.yml
output:
logstash:
hosts: ["localhost:5044"]
重启filebeat(如果配置的还是上面的日志文件,记得清理进度缓存)
然后在elasticsearch中可以看到多了一个logstash-[date]的索引
因为没有在logstash配置filter,所以并没有进行任何解析,logstash-filter相关的就不在这篇谈了。
最后传输到elasticsearch的日志默认会带两个值:
"beat" : {
"hostname" : "localhost.localdomain",
"name" : "localhost.localdomain"
},
hostname当然就是日志来源filebeat所在机器的机器名,name则是可配置的filebeat名称,默认也是获取机器名,可以改为ip,多一个过滤属性
vi /etc/filebeat/filebeat.yml
shipper:
name: 192.168.1.111
这样,传输到logstash的日志就是这样了:
"beat" : {
"hostname" : "localhost.localdomain",
"name" : "192.168.1.111"
},