filebeat简介及配置说明
filebeat简介及配置说明一、Filebeat简介二、安装使用(windows和linux安装包)1.下载并解压filebeat2.编辑配置文件filebeat.yml3.启动三、配置文件详细说明一、Filebeat简介Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tail file),并将它们转发给Elasticsearch或Logstatsh进行索引、kafka
filebeat简介及配置说明
一、Filebeat简介
Filebeat是本地文件的日志数据采集器,可监控日志目录或特定日志文件(tail file),并将它们转发给Elasticsearch或Logstatsh进行索引、kafka等。带有内部模块(auditd,Apache,Nginx,System和MySQL),可通过一个指定命令来简化通用日志格式的收集,解析和可视化。
二、安装使用(windows和linux安装包)
1.下载并解压filebeat
下载地址:https://www.elastic.co/cn/downloads/beats/filebeat
2.编辑配置文件filebeat.yml
filebeat 配置
采用YAML语言作为其配置语法。它的基本语法规则如下:
大小写敏感
使用缩进表示层级关系
缩进时不允许使用Tab键,只允许使用空格
缩进的空格数据不重要,只要相同层级的元素左侧对齐即可
# ============================== Filebeat inputs ===============================
filebeat.config.inputs:
enable: true
path: ${path.config}/input.yml
reload.enabled: true
reload.period: 2s
# ============================== Filebeat modules ==============================
filebeat.config.modules:
path: ${path.config}/modules.d/*.yml
reload.enabled: true
reload.period: 10s
# ======================= Elasticsearch template setting =======================
setup.template.settings:
index.number_of_shards: 3
index.number_of_replicas: 1
# 允许自动生成index模板
setup.template.enabled: true
# # 生成index模板时字段配置文件
setup.template.fields: fields.yml
# # 如果存在模块则覆盖
setup.template.overwrite: true
# # 生成index模板的名称
setup.template.name: "ops_log"
# # 生成index模板匹配的index格式
setup.template.pattern: "ops-*"
#索引生命周期管理ilm功能默认开启,开启的情况下索引名称只能为filebeat-*, 通过setup.ilm.enabled: false进行关闭;
setup.ilm.pattern: "{now/d}"
setup.ilm.enabled: false
# ================================== General ===================================
# ---------------------------- Elasticsearch Output ----------------------------
output.elasticsearch:
# Array of hosts to connect to.
hosts: ["localhost:9200"]
index: "%{[fields.source]}-*"
indices:
- index: "ops-systemlog-%{+yyyy.MM.dd}"
when.equals:
fields:
source: "ops-systemlog"
#- index: "opslog-operationlog-%{+yyyy.MM.dd}"
- index: "ops-operationlog-%{+yyyy.MM.dd}"
when.equals:
fields:
#source: "operationlog"
source: "ops-operationlog"
# ================================= Processors =================================
processors:
#...
- script:
lang: javascript
id: my_filter
tag: enable
source: >
function process(event) {
//提取时间值
var str= event.Get("message");
var time =str.split(" ").slice(0,2).join(" ");
event.Put("start_time",time);
}
- timestamp:
# 格式化时间值 给 时间戳
field: start_time
layouts:
- '2006-01-02 15:04:05'
- '2006-01-02 15:04:05.999'
test:
- '2019-06-22 16:33:51'
input.yml
#filebeat.input:
- type: log
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- E:\junxue\ELK_demo03\demo01\system*.txt
tags: "c7f1771f-0c8f-4c75-9d71-3b8c4b6bd191"
fields:
source: ops-systemlog
#tags: ["GUID"]
#- /var/log/*.log
#- c:\programdata\elasticsearch\logs\*
#include_l ines: ['^ERROR']
- type: log
enabled: true
paths:
- E:\junxue\ELK_demo03\demo02\operation*.txt
#- E:\junxue\ELK_demo02\demo02\junxue*.txt
tags: "c7f1771f-0c8f-4c75-9d71-3b8c4b6bd190"
fields:
#source: operationlog
source: ops-operationlog
3.启动
linux
sudo ./filebeat -e -c filebeat.yml
window
.\filebeat.exe -e -c filebeat.yml
三、配置文件详细说明
filebeat:
# List of prospectors to fetch data.
prospectors:
# 指定要监控的日志,可以指定具体得文件或者目录
paths:
- /var/log/*.log (这是默认的)(自行可以修改)(比如我放在/home/hadoop/app.log里)
#- c:\programdata\elasticsearch\logs\*
# 指定被监控的文件的编码类型,使用plain和utf-8都是可以处理中文日志的
#encoding: plain
# 指定文件的输入类型log(默认)或者stdin
input_type: log
# 排除指定符合正则表达式的行 DEBUG TRACE INFO
# exclude_lines: ["^DBG"]
# 包含输入中符合正则表达式列表的那些行(默认包含所有行),include_lines执行完毕之后会执行exclude_lines
# include_lines: ["^ERR", "^WARN"]
# Exclude files. A list of regular expressions to match. Filebeat drops the files that
# are matching any regular expression from the list. By default, no files are dropped.
# 忽略掉符合正则表达式列表的文件
# exclude_files: [".gz$"]
# 这个得意思就是会在es中多添加一个字段,格式为 "filelds":{"level":"debug"}
#fields:
# level: debug
# review: 1
# true/false 额外字段是否存放至根目录
#fields_under_root: false
# 设定Elasticsearch输出时的document的type字段 可以用来给日志进行分类。Default: log
#document_type: log
# Filebeat以多快的频率去prospector指定的目录下面检测文件更新(比如是否有新增文件)
# 如果设置为0s,则Filebeat会尽可能快地感知更新(占用的CPU会变高)。默认是10s
#scan_frequency: 10s
# 每个harvester监控文件时,使用的buffer的大小
#harvester_buffer_size: 16384
# 日志文件中增加一行算一个日志事件,max_bytes限制在一次日志事件中最多上传的字节数,多出的字节会被丢弃
#max_bytes: 10485760
#如果json 为多⾏格式时,指定⼀个root key,以进⾏标识
#json.message_key:
#false/true是否覆盖beat中的字段
#json.overwrite_keys:false
#false/true 解析失败时是否存储解析失败信息
#json.add_error_key:false
参考:
【1】filebeat 配置文件详解https://blog.csdn.net/chengxuyuanyonghu/article/details/54378778
【2】ELK-filebeat 采集配置与实现https://blog.csdn.net/fd2025/article/details/80289499
更多推荐
所有评论(0)