如何只收集 filebeat 中的错误级别日志并发送到 elasticsearch
how to only collect error level log in filebeat and send to elasticsearch
我正在使用 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}'
"
}
我建议您将流程配置为:
Filebeat → Kafka → Logstash → ElasticSearch → Kibana
Filebeat 根据配置从您的 server/s 读取日志并将其推送到 Kafka topic/s。
然后,Logstash将从kafka主题订阅这些日志并执行parsing/filtering/formatting/exclude并根据要求包含字段并将处理后的日志数据发送到Elasticsearch Index。
通过仪表板可视化您的数据
Kafka 不是 "must" 如果你问的是这个问题。如果您受到弹性集群中可以捕获的数据量的限制,那么可以在您的 logstash 配置中应用解析逻辑来解析和过滤您需要的日志。 Filebeat会将数据发送给logstash,logstash解析过滤后发送给elastic
我正在使用 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}'
"
}
我建议您将流程配置为:
Filebeat → Kafka → Logstash → ElasticSearch → Kibana
Filebeat 根据配置从您的 server/s 读取日志并将其推送到 Kafka topic/s。
然后,Logstash将从kafka主题订阅这些日志并执行parsing/filtering/formatting/exclude并根据要求包含字段并将处理后的日志数据发送到Elasticsearch Index。
通过仪表板可视化您的数据
Kafka 不是 "must" 如果你问的是这个问题。如果您受到弹性集群中可以捕获的数据量的限制,那么可以在您的 logstash 配置中应用解析逻辑来解析和过滤您需要的日志。 Filebeat会将数据发送给logstash,logstash解析过滤后发送给elastic