Filebeat 导入 Elastaticsearch 的方法
1. 什么是Filebeat?到底是干什么的?
Filebeat说实话,就是一个日志监控分发器,类似tail -f这样去监控某个日志,或者是某个目录下的日志文件。它会监控日志目录或者指定的日志文件,追踪读取这些文件(追踪文件的变化,不停的读),并且转发这些信息到elasticsearch或者logstarsh中存放。
2. 如何安装Filebeat?
官网下载rpm包地址:点进去直接选下载
下载下来RPM包,直接rpm -ivh filebeat.rpm就可以了
3. filebeat的正确配置
这里比较重要,我会在这里详细的说一下filebeat的基本配置。
我这里定义了:
1.多个日志文件导入
2.多个日志文件区分
3.多个日志文件不同的index索引
4.日志index名称修改
- type: log # 日志类型
enabled: true #监控开启
paths: # 日志的存放位置,你可以用*.log来监控所有日志
- /var/log/infinity_moninfo.log
tags: ["monlog"] #日志tag,自定义的一个值,做区分用
fields:
type: monlog #修改type的值为monlog, 原来为log
fields_under_root: true #替换/覆盖默认的filed值,也就是上面的type
- type: log
enabled: true
paths:
- /var/log/infinity_opinfo.log
tags: ["oplog"]
fields:
type: oplog
fields_under_root: true
- type: log
enabled: true
paths:
- /var/log/smbd_audit.log
tags: ["auditlog"]
fields:
type: auditlog
fields_under_root: true
setup.template.settings:
index.number_of_shards: 3 #分片个数
output.elasticsearch: #基础的Es设置
hosts: ["127.0.0.1:9200"] #Es的地址
indices: #自定义索引
#- index: "monlog-%{+yyyy-MM-dd}" #旧的索引默认是带日期的,如果要修改默认的模式,需要在下面template进行配置
- index: "monlog" #设定索引monlog
when.contains: #开始区分
type: "monlog" #如果type为monlog,就默认生成monlog的索引
- index: "oplog"
when.contains:
type: "oplog"
- index: "auditlog"
when.contains:
type: "auditlog"
setup.template: #索引的默认模式修改
name: 'infinity-log' #定义为单纯的姓名,如果你要定义其他的模式,例如时间,那就是:infinity-log-%{+yyyy-MM-dd}
pattern: 'infinity-log'
enabled: true
filebeat的异常处理
1.服务挂掉怎么办?
解答:挂掉了之后,再次启动,会从上次断开的地方继续监控日志。
2.删掉了log文件该怎么办?
解答:没事,顶多filebeat的log报错