【问题标题】:ELK stack configurationELK 堆栈配置
【发布时间】:2021-08-09 01:59:54
【问题描述】:

我对elk stack没有太多经验,我基本上只知道基础知识。

  • filebeat 获取数据并将其发送到 logstash
  • Lo​​gstash 对其进行处理并将其发送给弹性搜索
  • Kibana 使用弹性搜索来可视化数据

(我希望那是正确的)

我需要创建一个 elk 系统,用于传递、存储和可视化来自三个不同项目的数据。

项目 1。使用 MongoDB,我需要从 1 个表中获取所有信息到 kibana 中

2 号项目。也使用 MongoDB,我需要从 1 个表中获取所有信息到 kibana

3 号项目。使用 mysql,我需要从该数据库中获取一些表到 kibana 中

这三个项目都在同一台服务器上

对于项目 1 和 2,我需要数据流保持不变(即,如果用户注册,我可以在 kabana 中看到) 但对于 3 号项目。我只在需要生成报告时才需要数据(这个项目的功能是某种 BI)

所以我的问题是如何创建一个 elk 架构,从这 3 个来源获取输入并能够组合成一个 elk 项目。

我的最佳猜测是:

Project No1 -> filebeat -> logstash

Project No2 -> filebeat -> logstash

3 号项目 -> logstash

(这里的 logstash 是单个实例,然后馈入弹性)

这是一种现实的方法吗?

我也偶然发现了redis,从外观上看,它似乎可以将所有数据源合并为一个,然后将输出提供给logstash。

什么是更好的方法?

最后,我提到了filebeat,但据我了解,它基本上是从日志文件中读取数据。这是否意味着我必须将所有数据库条目重新写入日志文件,以便将它们提供给 logstash,或者可以在没有中介的情况下让 logstash 进入数据库。

我尝试在网上查找所有这些内容,但由于某种原因,互联网上关于 ELK 堆栈初学者问题的问题有点少。

谢谢

【问题讨论】:

    标签: redis logstash kibana elk


    【解决方案1】:

    filebeat 用于将日志传送到 logstash,您不能使用它从数据库中读取项目。但是您可以使用 logstash 的输入插件从 DB 中读取数据。

    根据您的描述,您需要一个带有 3 个管道(每个项目一个)的 logstash 实例

    对于项目 3,您可以使用 Logstash JDBC 输入插件连接到您的 mysql 数据库并根据“last_updated”列读取新的/更新的行。 JDBC 输入插件有一个 cron 配置值,允许您将其设置为定期运行并使用您在配置中定义的 SQL 查询读取更新的行。

    对于项目 1-2,您还可以将 JDBC 输入插件与 mongoDB 一起使用。 git 上还有一个 mongoDB 输入插件的开源实现。您可以查看此帖子以了解如何使用它here

    (查看输入插件的完整列表here

    如果这对您有用并且您设法设置它,那么所有三种配置的其余部分将大致相同。 即使用过滤器插件修改数据,使用 Elasticsearch 输出插件将数据推送到弹性索引。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多