ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

filebeat

2021-11-01 21:32:58  阅读:391  来源: 互联网

标签:index filebeat log fields setup true


参考:
【1】filebeat 配置文件详解https://blog.csdn.net/chengxuyuanyonghu/article/details/54378778
【2】ELK-filebeat 采集配置与实现https://blog.csdn.net/fd2025/article/details/80289499

一、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

 

标签:index,filebeat,log,fields,setup,true
来源: https://www.cnblogs.com/dhName/p/15496231.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有