Filebeat是一个日志文件托运工具,在你的服务器上安装客户端后,filebeat会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstarsh中存放。
以下是filebeat的工作流程:当你开启filebeat程序的时候,它会启动一个或多个探测器(prospectors)去检测你指定的日志目录或文件,对于探测器找出的每一个日志文件,filebeat启动收割进程(harvester),每一个收割进程读取一个日志文件的新内容,并发送这些新的日志数据到处理程序(spooler),处理程序会集合这些事件,最后filebeat会发送集合的数据到你指定的地点。
1. 下载
https://www.elastic.co/downloads/beats/filebeat
2. 解压
tar -zxvf filebeat-1.3.0-x86_64.tar.gz
3. 配置,编辑filebeat.yml: vim filebeat.yml
#参考配置:
filebeat.prospectors:
# Each - is a prospector. Most options can be set at the prospector level, so
# you can use different prospectors for various configurations.
# Below are the prospector specific configurations.
- input_type: log
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /var/log/hbase/hbase-hbase-master-dev*.log
# - /var/log/hbase/hbase-hbase-master-dev*.log.[1-6]
document_type: hbase-master_log
multiline.pattern: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
multiline.negate: true
multiline.match: after
- input_type: log
paths:
- /var/log/hbase/hbase-hbase-regionserver-dev*.log
# - /var/log/hbase/hbase-hbase-regionserver-dev*.log.[1-6]
document_type: hbase-regionserver_log
multiline.pattern: \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}
multiline.negate: true
multiline.match: after
output.logstash:
#hosts: ["172.18.5.64:5044"]
hosts: ["172.18.5.156:5044"]
output.console:
pretty: true
4. 配置说明
1)paths:指定要监控的日志,目前按照Go语言的glob函数处理。没有对配置目录做递归处理,比如配置的如果是:
/var/log/* /*.log
则只会去/var/log目录的所有子目录中寻找以”.log”结尾的文件,而不会寻找/var/log目录下以”.log”结尾的文件。
2)input_type:指定文件的输入类型log(默认)或者stdin。
3) document_type:设定Elasticsearch输出时的document的type字段,也可以用来给日志进行分类。
4)把elasticsearch和其下的所有都注释掉(这里Filebeat是新安装的,只注释这2处即可)
output:
#elasticsearch:
# hosts: ["localhost:9200"]
5)开启 logstash(删除这两行前的#号),并把localhost改为logstash服务器地址:
logstash:
hosts: ["10.1.5.65:5044"]
6)如果开启logstash了,那么Logstash配置中要设置监听端口 5044:
这个是默认文件位置,如果不存在请自行查找:
vim /etc/logstash/conf.d/beats-input.conf
7)增加端口
input {
beats {
port => 5044
}
}
2. 启动
1)测试
./filebeat -e -c filebeat.yml -d "Publish"
如果能看到一堆东西输出,表示正在向elasticsearch或logstash发送日志。
如果是elasticsearch可以浏览:
http://localhost:9200/_search?pretty
如果有新内容返回,表示ok测试正常后,Ctrl+C结束。
2)启动(后台)
nohup ./filebeat -e -c filebeat.yml >/dev/null 2>&1 &
3)停止
ps aux | grep filebeat
kill -9 id