首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >多个Logstash输出取决于Outputs

多个Logstash输出取决于Outputs
EN

Stack Overflow用户
提问于 2015-12-30 09:14:33
回答 1查看 204关注 0票数 0

我正面临一个配置失败,我自己无法解决,试图通过文档获得解决方案,但没有运气。

我有几个不同的主机,它们通过hosts将它们的指标发送到logstash。在logstash配置中,我想分离每个主机,并将其导入自己的ES-索引。当我试图配置我的设置时,logstash会抛出一个失败--也许有人可以帮我。

分离应该由主机名收件传递触发:

这是一个旧的原始json输出,所以请不要介意错误的集合索引。

代码语言:javascript
复制
{
  "_index": "wv-metrics",
  "_type": "logs",
  "_id": "AVHyJunyGanLcfwDBAon",
  "_score": null,
  "_source": {
    "host": "somefqdn.com",
    "@timestamp": "2015-12-30T09:10:15.211Z",
    "plugin": "disk",
    "plugin_instance": "dm-5",
    "collectd_type": "disk_merged",
    "read": 0,
    "write": 0,
    "@version": "1"
  },
  "fields": {
    "@timestamp": [
      1451466615211
    ]
  },
  "sort": [
    1451466615211
  ]
} 

请看我的配置:

输入Config (到目前为止正在工作)

代码语言:javascript
复制
input {
  udp {
    port => 25826
    buffer_size => 1452
    codec => collectd { }
  }
}

输出Config文件:

代码语言:javascript
复制
filter {
if [host] == "somefqdn.com" {
output {
  elasticsearch {
   hosts => "someip:someport"
   user => logstash
   password => averystrongpassword
   index => "somefqdn.com"
                }
          }
     }
}

引发的错误:

代码语言:javascript
复制
root@test-collectd1:/home/username# service logstash configtest
Error: Expected one of #, => at line 21, column 17 (byte 314) after filter {
if [host] == "somefqdn.com" {
output {
  elasticsearch

我明白,我的配置中可能缺少一个字符,但我找不到它。

提前行动!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-30 09:18:40

我在快速扫描中发现两个错误:

首先,不应使用筛选器{}块包装输出节。

其次,输出节应该以输出{}开始(将条件放在里面):

代码语言:javascript
复制
output {
    if [host] == "somefqdn.com" {
        elasticsearch {
            ...
        }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34526388

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档