-
Filebeathtml
-
Outputlinux
-
Shippernginx
-
Logging(可选)正则表达式
-
Run Options(可选)redis
这个Blog主要讲解Filebeat的配置部分,其余部分后续会有新的Blog介绍。算法
Filebeat的部分主要定义prospector的列表,定义监控哪里的日志文件,关于如何定义的详细信息能够参考filebeat.yml中的注释,下面主要介绍一些须要注意的地方。json
filebeat.prospectors:vim
- input_type: log服务器
paths:数据结构
- /log/channelserver.log
#- /home/wang/data/filebeat-5.0.2-linux-x86_64/test.log
encoding: gbk
symlinks: true
include_lines: ['\[.*?统计\]','\[.*?结算\]']
document_type: channelserver
fields_under_root: true
fields:
host: 192.168.10.155
processors:
- drop_fields:
#fields: ["beat.hostname", "beat.name", "beat.version", "input_type", "beat"]
fields: ["input_type", "beat", "offset", "source"]
output.redis:
enabled: true
hosts: ["192.168.10.188"]
port: 6379
datatype: list
key: "filebeat"
db: 0
output.file:
enabled: true
path: "/tmp/filebeat"
output.console:
enabled: false
-
paths:指定要监控的日志,目前按照Go语言的glob函数处理。没有对配置目录作递归处理,好比配置的若是是:
/var/log/* /*.log
则只会去/var/log目录的全部子目录中寻找以”.log”结尾的文件,而不会寻找/var/log目录下以”.log”结尾的文件。
-
encoding:指定被监控的文件的编码类型,使用plain和utf-8都是能够处理中文日志的。
-
input_type:指定文件的输入类型log(默认)或者stdin。
-
exclude_lines:在输入中排除符合正则表达式列表的那些行。
-
include_lines:包含输入中符合正则表达式列表的那些行(默认包含全部行),include_lines执行完毕以后会执行exclude_lines。
-
exclude_files:忽略掉符合正则表达式列表的文件(默认为每个符合paths定义的文件都建立一个harvester)。
-
fields:向输出的每一条日志添加额外的信息,好比“level:debug”,方便后续对日志进行分组统计。默认状况下,会在输出信息的fields子目录下以指定的新增fields创建子目录,例如fields.level。
fields:
level: debug
则在Kibana看到的内容以下:
-
fields_under_root:若是该选项设置为true,则新增fields成为顶级目录,而不是将其放在fields目录下。自定义的field会覆盖filebeat默认的field。例如添加以下配置:
fields:
level: debug
fields_under_root: true
则在Kibana看到的内容以下:
-
ignore_older:能够指定Filebeat忽略指定时间段之外修改的日志内容,好比2h(两个小时)或者5m(5分钟)。
-
close_older:若是一个文件在某个时间段内没有发生过更新,则关闭监控的文件handle。默认1h。
-
force_close_files:Filebeat会在没有到达close_older以前一直保持文件的handle,若是在这个时间窗内删除文件会有问题,因此能够把force_close_files设置为true,只要filebeat检测到文件名字发生变化,就会关掉这个handle。
-
scan_frequency:Filebeat以多快的频率去prospector指定的目录下面检测文件更新(好比是否有新增文件),若是设置为0s,则Filebeat会尽量快地感知更新(占用的CPU会变高)。默认是10s。
-
document_type:设定Elasticsearch输出时的document的type字段,也能够用来给日志进行分类。
-
harvester_buffer_size:每一个harvester监控文件时,使用的buffer的大小。
-
max_bytes:日志文件中增长一行算一个日志事件,max_bytes限制在一第二天志事件中最多上传的字节数,多出的字节会被丢弃。
-
multiline:适用于日志中每一条日志占据多行的状况,好比各类语言的报错信息调用栈。这个配置的下面包含以下配置:
-
tail_files:若是设置为true,Filebeat从文件尾开始监控文件新增内容,把新增的每一行文件做为一个事件依次发送,而不是从文件开始处从新发送全部内容。
-
backoff:Filebeat检测到某个文件到了EOF以后,每次等待多久再去检测文件是否有更新,默认为1s。
-
max_backoff:Filebeat检测到某个文件到了EOF以后,等待检测文件更新的最大时间,默认是10秒。
-
backoff_factor:定义到达max_backoff的速度,默认因子是2,到达max_backoff后,变成每次等待max_backoff那么长的时间才backoff一次,直到文件有更新才会重置为backoff。好比:
若是设置成1,意味着去使能了退避算法,每隔backoff那么长的时间退避一次。
-
spool_size:spooler的大小,spooler中的事件数量超过这个阈值的时候会清空发送出去(不管是否到达超时时间)。
-
idle_timeout:spooler的超时时间,若是到了超时时间,spooler也会清空发送出去(不管是否到达容量的阈值)。
-
registry_file:记录filebeat处理日志文件的位置的文件
-
config_dir:若是要在本配置文件中引入其余位置的配置文件,能够写在这里(须要写完整路径),可是只处理prospector的部分。
-
publish_async:是否采用异步发送模式(实验功能)。
Filebeat的基本原理其实就是有一群prospector,每一个prospector手下管着一批harvester,每一个harvester负责监视一个日志文件,把变更的内容由spooler汇总以后交给Logstash或者Elasticsearch。若是想快速搭建一个能够工做的Filebeat,无非有三点:
1.说明要监视哪些文件
2.说明收集的日志发给谁
若是直接发送给Elasticsearch,能够设置以下:
若是须要发给Logstash,能够注释掉Elasticsearch的配置,而后设置Logstash以下:
固然,也须要在Logstash的配置中指明要从该端口(5044)监听来自Filebeat的数据:
这里的配置举例是把Filebeat、Logstash、Elasticsearch安装在了一台机器上,实际使用中确定是分开部署的,须要根据实际状况修改配置文件中的IP地址及端口号。
3.让Elasticsearch知道如何处理每一个日志事件。
默认的Elasticsearch须要的index template在安装Filebeat的时候已经提供,路径为/etc/filebeat/filebeat.template.json,可使用以下命令装载该模板:
固然,也不能忘了,每次修改完Filebeat的配置后,须要重启Filebeat才能让改动的配置生效。
1.下载和安装
目前最新版本 1.3.0
这里选择 Linux 64-BIT 即方式一
方式一:源码
方式二:deb
方式三:rpm
方式四:MAC
2.配置Filebeat
环境说明:
1)elasticsearch和logstash 在不一样的服务器上,只发送数据给logstash
2)监控nginx日志
3)监控支付日志
4)监控订单日志
2.1配置
编辑filebeat.yml
默认监控日志配置
按照要求修改成
2.2 说明
-
paths:指定要监控的日志,目前按照Go语言的glob函数处理。没有对配置目录作递归处理,好比配置的若是是:
则只会去/var/log目录的全部子目录中寻找以”.log”结尾的文件,而不会寻找/var/log目录下以”.log”结尾的文件。
2. input_type:指定文件的输入类型log(默认)或者stdin。
3. document_type:设定Elasticsearch输出时的document的type字段,也能够用来给日志进行分类。
把 elasticsearch和其下的全部都注释掉(这里Filebeat是新安装的,只注释这2处便可)
开启 logstash(删除这两行前的#号),并把localhost改成logstash服务器地址
若是开启logstash了,那么Logstash配置中要设置监听端口 5044:
这个是默认文件位置,若是不存在请自行查找
增长端口
3.启动
3.1 测试
若是能看到一堆东西输出,表示正在向elasticsearch或logstash发送日志。
若是是elasticsearch能够浏览:http://localhost:9200/_search?pretty 若是有新内容返回,表示ok
测试正常后,Ctrl+C结束
3.2启动
上面会转入后台运行
3.3中止
查找进程 ID
KILL他
3.X kibana设置
若是使用 kibana 作日志分析,
在kibana里,建立一个索引,注意pattern为:filebeat-*
4.高级配置说明
http://kibana.logstash.es/content/beats/file.html
http://blog.csdn.net/a464057216/article/details/51233375
5.其余说明
5.1Elasticsearch知道如何处理每一个日志事件
默认的Elasticsearch须要的index template在安装Filebeat的时候已经提供,路径为/etc/filebeat/filebeat.template.json,可使用以下命令装载该模板:
若是运行成功则返回以下,表示模板已被接收
每次修改Filebeat配置,重启Filebeat才能生效