elasticsearch - 如何将日志收集到 Elasticsearch
问题描述
我有不同服务器(许多机器)中的 Web 应用程序日志。如何在安装了 Elastic search 和 Kibana 的系统中收集这些日志。当我搜索时,我只找到了显示 setup where logs
、logstash
、beats
和are all together 的教程。elasticsearch
kibana
解决方案
由于您有许多机器会产生日志,因此您需要使用 Filebeat、Logstash、Elasticsearch 和 Kibana 设置 ELK 堆栈。
- 您需要在每台机器上设置filebeat实例。
filebeat.yml
它会在每台机器上监听你的日志文件并将它们转发到你在配置文件中提到的logstash实例,如下所示:
#=========================== Filebeat inputs =============================
filebeat.inputs:
- type: log
# Change to true to enable this input configuration.
enabled: true
# Paths that should be crawled and fetched. Glob based paths.
paths:
- /path_to_your_log_1/ELK/your_log1.log
- /path_to_your_log_2/ELK/your_log2.log
#----------------------------- Logstash output --------------------------------
output.logstash:
# The Logstash hosts
hosts: ["private_ip_of_logstash_server:5044"]
Logstash 服务器监听 5044 端口并通过 logstash 配置文件流式传输所有日志:
input { beats { port => 5044 } } filter { # your log filtering logic is here } output { elasticsearch { hosts => [ "elasticcsearch_server_private_ip:9200" ] index => "your_idex_name" } }
在 logstash 中,您可以过滤日志并将其拆分为字段并将它们发送到 elasticsearch。
- Elasticsearch 将我们通过 logstash 发送的所有数据保存在索引中。
- elasticsearch 数据库中的所有数据都可以通过 Kibana 读取。我们可以使用 kibana 根据我们的数据创建具有多种图表类型的仪表板。
以下是带有 filebeat 的 ELK 的基本架构:
推荐阅读
- c# - 触发并忘记发送非必要指标的异步方法的最佳实践
- regex - 匹配不以指定字符串结尾的文本的正则表达式
- c# - XAMARIN iOS iPad Pro 全屏问题
- spring - 通过 Greenmail 进行 Springboot 测试
- python - TensorFlow 中的聊天机器人:TypeError
- pandas - Groupby by Year 使用 pd.Timestamp / dateTime64 格式为 YYYY-MM-DD,同时保持完整的时间戳
- google-apps-script - 从日历插件修改日历事件字段(在保存事件之前)?
- python - Numpy 数组计算花费的时间太长 - 错误?
- sql - 使用动态生成的值检查 postgres json 中是否存在键
- reactjs - 使用 React useContext 挂钩进行调度调用后,React 状态未更新