• filebeat自定义索引名,filebeat索引模板


    【1】filebeat 默认生成到 es 的索引

    如果我们不配置则默认会生成 ,如下类格式的索引,且如果检测到有的话,会默认一直使用这个日期

    filebeat-7.14.1-2021.09.24-000001

    【2】自定义索引

    (2.1)fileds

    vim filebeat.yml

    # ============================== Filebeat inputs ===============================
    filebeat.inputs:
    - type: log
      enabled: true
      paths:
        - /var/log/*.log
      fields:
        source: sys
    - type: log
      enabled: true
      paths:
        - /data/dba/q1.txt
      fields:
        source: q1
    - type: log
      enabled: true
      paths:
        - /data/dba/t1.txt
      fields:
        source: t1
    # ============================== Filebeat modules ==============================
    filebeat.config.modules:
      path: ${path.config}/modules.d/*.yml
      reload.enabled: true
    setup.template.settings:
      index.number_of_shards: 1
    setup.template.name: "system"
    setup.template.pattern: "system-*"
    setup.template.enabled: true
    setup.template.overwrite: true
    setup.ilm.enabled: false
    # =================================== Kibana ===================================
    setup.kibana:
      host: "192.168.175.132:5601"
    # ---------------------------- Elasticsearch Output ----------------------------
    output.elasticsearch:
      hosts: ["192.168.175.132:9200"]
      index: "system-%{[fields.source]}-*"
      indices:
        - index: "system-sys-%{+yyyy.MM.dd}"
          when.equals:
            fields:
              source: "sys"
        - index: "system-q1-%{+yyyy.MM.dd}"
          when.equals:
            fields:
              source: "q1"
        - index: "system-t1-%{+yyyy.MM.dd}"
          when.equals:
            fields:
              source: "t1"
    # ------------------------- Processors ----------------------------------
    processors:
      - add_host_metadata:
          when.not.contains.tags: forwarded
      - add_cloud_metadata: ~
      - add_docker_metadata: ~
      - add_kubernetes_metadata: ~
    when.contains: 包含
    when.equals: 等于

    相关模板字段意义:

    setup.template.name: “nginx” //设置一个新的模板,模板的名称
    setup.template.pattern: “nginx-*” //模板匹配那些索引,这里表示以nginx开头的所有的索引
    setup.template.enabled: false //关掉默认的模板配置
    setup.template.overwrite: true //开启新设置的模板

    # ======================= Elasticsearch template setting =======================
    
    setup.template.settings:
      index.number_of_shards: 1
      #index.codec: best_compression
      #_source.enabled: false
    
    # 允许自动生成index模板
    setup.template.enabled: true
    # # 生成index模板时字段配置文件
    setup.template.fields: fields.yml
    # # 如果存在模块则覆盖
    setup.template.overwrite: true
    # # 生成index模板的名称
    setup.template.name: "zheng_log" 
    # # 生成index模板匹配的index格式       
    setup.template.pattern: "zheng-*" 
    setup.ilm.enabled: auto
    # 这里一定要注意 会在alias后面自动添加-*
    setup.ilm.rollover_alias: "park-ssm"
    setup.ilm.pattern: "{now/d}"
    # # 生成kibana中的index pattern,便于检索日志
    #setup.dashboards.index: myfilebeat-7.0.0-*
    #filebeat默认值为auto,创建的elasticsearch索引生命周期为50GB+30天。如果不改,可以不用设置
    setup.ilm.enabled: false

    生成的索引:

      

    (2.2)同理 tags

    你也可以加入一些tags:

    这里只简单写一个 tags的相关用法方便分组

    具体用它来构造不同索引 参考:

      elk7.7.1【系列四】filebeat多输入,自定义不同输出索引

    #=========================== Filebeat inputs =============================
     
    filebeat.inputs:
    
    - type: log
      enabled: true
      paths:
        - /root/apache-tomcat-8.5.16/logs/*.txt
      tags: ["tomcat1"]
     
    - type: log
      enabled: true
      paths:
        - /root/apache-tomcat-7.0.92/logs/*.txt
    # ============== output ==========
    output.elasticsearch:
      hosts: ["192.168.81.129:9200"]
      indices:
        - index: "tomcat1-%{[agent.version]}-%{+yyyy.MM.dd}"
          when.contains:
            tags: "tomcat1"
        - index: "tomcat2-%{[agent.version]}-%{+yyyy.MM.dd}"
          when.contains:
            tags: "tomcat2"
     when.contains: 包含

    多个可如下面:

    这样可以多个tags,在匹配 when.contains 时,可以用包含其中一个 tag 值即可匹配到

    filebeat.inputs:
    - type: log
      enabled: true
      fields:
        apache: true
      tags: ["my-service", "hardware", "test"]
      paths:
        - /Users/liuxg/data/apache-daily-access.log
     
    output.elasticsearch:
      hosts: ["localhost:9200"]

     (如果失败)关注点

    (1)setup.template 等字样是否顶格

    (2)setup.template.enabled: true   一定要为 true 否则可能不生效

    (3)setup.ilm.enabled: false   该参数也要有

    【3】配置filebeat 引用模板后模板数据使用自定义索引名(mysql为例)

    (3.1)关键查询区分字段

    假设我们已经用默认配置,启动,采集了mysql日志数据;查看实际内容

        

    (3.2)在 filebeat.yml中,output 到 es 的配置里

    output.elasticsearch:
      hosts: ["192.168.175.132:9200"]
      index: "system-%{[fields.source]}-*"
      indices:
        - index: "system-sys-%{+yyyy.MM.dd}"
          when.equals:
            fields:
              source: "sys"
        - index: "system-q1-%{+yyyy.MM.dd}"
          when.equals:
            fields:
              source: "q1"
        - index: "system-t1-%{+yyyy.MM.dd}"
          when.equals:
            fields:
              source: "t1"
        - index: "system-mysqlerrorlog-%{+yyyy.MM.dd}"
          when.equals:
            fileset.name: "error"
        - index: "system-mysqlslowlog-%{+yyyy.MM.dd}"
          when.equals:
            fileset.name: "slowlog"
    
    # 也可以用下面这种方式 #
    - index: "mysql-error-%{+yyyy.MM.dd}" # when.contains: # fileset.name: "error" # - index: "mysql-slowlog-%{+yyyy.MM.dd}" # when.contains: # fileset.name: "slowlog"

    然后启动filebeat,  ./filebeat -e run,如下图,没有error 字样就OK了

       

    (3.3)结果核验

      

    成功

    【参考文档】

    与本文不同的办法:elk7.7.1【系列四】filebeat多输入,自定义不同输出索引

    与本文相同的办法:https://blog.csdn.net/junxuezheng/article/details/108351039

    【3】中给模板中的数据自动以索引:https://blog.csdn.net/weixin_44953658/article/details/118539743

    参考:Filebeat自定义索引 && 多output过滤

    官网:https://www.elastic.co/guide/en/beats/winlogbeat/current/elasticsearch-output.html

  • 相关阅读:
    一次Oracle数据迁移
    mysql Error Handling and Raising in Stored Procedures
    expdp ORA-39213
    RHEL 6.4 64bit kettle5.01导入xlsx格式的excel时报错
    Oracle表空间传输测试
    oracle expdp 无法导出SYS下特定TABLE
    Oracle wrap 测试的一些细节问题
    论文-CondenseNet: An Efficient DenseNet using Learned Group Convolutions
    SystemVerilog-断言
    推挽输出和开漏输出
  • 原文地址:https://www.cnblogs.com/gered/p/15386300.html
Copyright © 2020-2023  润新知