【问题标题】:how to only collect error level log in filebeat and send to elasticsearch如何仅在filebeat中收集错误级别日志并发送到elasticsearch
【发布时间】:2020-10-02 23:08:55
【问题描述】:

我正在使用 filebeat 7.x 收集日志数据,但我面临一个问题,即日志大小如此之大(每天 100GB)。

现在我正在考虑如何从源文件中收集错误级别日志。最好的方法是什么?

我正在使用 filebeat 将日志发送到 Kubernetes 集群中的 elasticsearch,我关心的是我是否必须使用 kafka 和 logstash 来定义规则?

请在下面找到正在使用的 filebeat 配置文件:

{
    "filebeat.yml": "filebeat.inputs:
        - type: container
          paths:
            - /var/log/containers/*.log
          processors:
          - add_kubernetes_metadata:
              host: ${NODE_NAME}
              matchers:
              - logs_path:
                  logs_path: \"/var/log/containers/\"

        output.elasticsearch:
          host: '${NODE_NAME}'
          hosts: '${ELASTICSEARCH_HOSTS:elasticsearch-master:9200}'
        "
}

【问题讨论】:

    标签: elasticsearch logstash filebeat


    【解决方案1】:

    我建议您将流程配置为:

    Filebeat → Kafka → Logstash → ElasticSearch → Kibana

    1. Filebeat 按照配置从您的服务器读取日志并将其推送到 Kafka 主题。

    2. 然后,Logstash 将订阅来自 kafka 主题的日志,并根据要求执行解析/过滤/格式化/排除和包含字段,并将处理后的日志数据发送到 Elasticsearch Index。

    3. 通过仪表板可视化您的数据

    【讨论】:

      【解决方案2】:

      如果您提出这个问题,卡夫卡不是“必须的”。如果您受限于可以在弹性集群中捕获的数据量,则可以在您的 logstash 配置中应用解析逻辑来解析和过滤您需要的日志。 Filebeat将数据发送到logstash,logstash解析过滤后发送到elastic。

      【讨论】:

        猜你喜欢
        • 2020-01-18
        • 1970-01-01
        • 2019-08-19
        • 1970-01-01
        • 2018-08-24
        • 2021-03-26
        • 1970-01-01
        • 2018-05-10
        • 1970-01-01
        相关资源
        最近更新 更多