【问题标题】:One elasticsearch/logstash instance with multiple applications with a unique index一个具有唯一索引的多个应用程序的 elasticsearch/logstash 实例
【发布时间】:2018-06-02 14:57:53
【问题描述】:

我们使用 swisscoms 应用程序云,目前正在评估新的 Elasticsearch 服务。我们设置它包括logstash和kibana。

现在,我们为每个应使用通用 elasticsearch/logstash/kibana 实例的应用添加了用户提供的服务。当我们第一次登录到 kibana 时,我们看到有一个名为 logstash- 的索引,所有应用程序的所有日志都在其中。

现在我们想要的是为每个写入我们 elk 实例的应用程序建立一个索引。假设我们有 e 应用程序(app1、app2、app3)。我们希望有三个索引(app1-...、app2-... 和 app3-...)。关于我们如何实现这一目标的任何想法?

这是必须在 Cloud Foundry 上使用 ENV 变量完成的配置,还是我们必须在 Java 和 NodeJS 应用程序中配置的东西

(app1-... , ...)?

提前感谢您的帮助。

【问题讨论】:

    标签: elasticsearch logstash kibana cloud-foundry swisscomdev


    【解决方案1】:

    您可以使用Elasticsearch output plugin for logstash,这是在 Elasticsearch 中存储日志的推荐方法。该插件有一个名为index 的配置选项,用于定义要写入事件的索引的名称。默认索引名称为logstash-%{+YYYY.MM.dd}

    将它与if 条件结合使用,根据类型为每个应用分配索引名称,如下所示,

    output {
      if [type] == "apache" {
        elasticsearch {
          index => "apache-website-index"
        }
      } elseif [type] == "nginx" {
          elasticsearch {
            index => "nginx-website-index"
        }
      }
    }
    

    也请查看this answer

    如果您有任何问题,请发表评论。

    【讨论】:

    • 嗨 Sufyan 感谢您的反馈。我会试试的。我在那里有哪些可用的房产?我可以获取组织、空间、应用名称和主机吗?是否可以只为 logstash-... 加上其中一个前缀而不是最后有一个大的 if elseif 构造?
    • 我们的 appcloud 实例上有 elasticsearch、logstash 和 kibana。每个应用程序都使用用户提供的服务连接到 elasticsearch。
    • logstash 如何从您的应用中收集日志?您需要查看用于从您的应用收集日志并发送到弹性搜索的 logstash 模板。这会告诉你日志的类型、标签等,或者你可以在 elasticsearch 的日志中登录并检查那里是否有“类型”字段。
    • 好的,我会试着找出来的。非常感谢 Sufiyan。
    • 如果你还没有找到,你可以在/etc/filebeat/filebeat.yml下的filebeat配置中为每个应用分配类型,如果你有任何问题,请告诉我
    猜你喜欢
    • 1970-01-01
    • 2014-01-26
    • 1970-01-01
    • 2012-10-30
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 2016-12-15
    • 1970-01-01
    相关资源
    最近更新 更多