elasticsearch _id需要变量日志存储输出电子邮件,elasticsearch,logstash,elasticsearch,Logstash" /> elasticsearch _id需要变量日志存储输出电子邮件,elasticsearch,logstash,elasticsearch,Logstash" />

elasticsearch _id需要变量日志存储输出电子邮件

elasticsearch _id需要变量日志存储输出电子邮件,elasticsearch,logstash,elasticsearch,Logstash,我会在输出邮件中使用类似_id(元数据)的变量。 但它不起作用,因为它不能像变量一样考虑周到。 有人知道吗? 我以这种方式进行输出: elasticsearch { hosts => [ "https://xxx:9200" ] ssl => true ssl_certificate_verification => false user => "admin" password =&g

我会在输出邮件中使用类似_id(元数据)的变量。 但它不起作用,因为它不能像变量一样考虑周到。 有人知道吗? 我以这种方式进行输出:

elasticsearch {
     hosts => [ "https://xxx:9200" ]
     ssl => true
     ssl_certificate_verification => false
     user => "admin"
     password => "admin"
     index => "apache"
}
stdout { codec => rubydebug }
if [tags] {
email {
to => "xxx"
address => "smtp.gmail.com"
port => 587
username => "xxx"
password => "xxx"
use_tls => true
body => "something happened: %{message} http://xxx/5601/app/discover#/doc/82de0080-acd9-11eb-a4b8-614232a13000/indexname?id=%{id}"
}}} ```

我会采取不同的做法,利用Kibana中的功能

您可以在上设置警报(例如,
标记
存在),并决定发送警报

更新:


使用OpenDistro时,您可以访问他们的电子邮件,这些电子邮件以类似的方式工作,您可以使用它们发送警报。

我认为您正在尝试创建一封电子邮件,其中包含指向相关文档的直接链接

您可以通过对现有配置进行三个小更改来实现这一点

  • 在管道的
    筛选阶段生成“id”字符串
  • 在elasticsearch输出中将该字符串用作
    document\u id
  • 在电子邮件输出模板中使用该字符串
  • 默认情况下,Elasticsearch将生成一个不与Logstash共享的随机id。这就是为什么我们需要做这三个步骤

    生成一个ID字符串 和过滤器插件可以在这里提供帮助。我将使用UUID,因为它更简单:

    过滤器{
    uuid{
    target=>“[@metadata][uuid]”
    }
    }
    
    这将生成一个随机UUID,它应该足以满足您的需要。如果您希望使用一致散列(例如,用于重复数据消除),请使用指纹

    document\u id
    设置为id字符串 通过在elasticsearch输出中添加
    document\u id=>“[@metadata][UUID]”
    ,将UUID用作
    \u id

    elasticsearch{
    主机=>[”https://xxx:9200" ]
    ssl=>true
    ssl\u证书\u验证=>错误
    用户=>“******”
    密码=>“******”
    索引=>“apache”
    文档\u id=>“[@metadata][uuid]”
    }
    
    更多详细信息,请参阅Elasticsearch输出插件文档

    在电子邮件输出
    正文
    模板中包含ID字符串
    您的
    正文
    行应更新为包含
    %{[@metadata][uuid]}

    body=>“发生了一些事情:%{message}http://xxx/5601/app/discover#/doc/82de0080-acd9-11eb-a4b8-614232a13000/indexname?id=%{[@metadata][uuid]}”
    
    关于Kibana索引模式参考的注释 我假设
    82de0080-acd9-11eb-a4b8-614232a13000
    是与此处ES索引相关的Kibana索引模式的对象ID。对于其他索引模式,或者对于尝试相同操作的其他索引模式,确定适当字符串的最简单方法是在Kibana中导航到单个文档,然后替换为上面的ID变量

    或者,在撰写本文时(2021年5月),您可以将该字符串替换为单词
    mixed
    ,如下所示:

    http://xxx/5601/app/discover#/doc/mixed/indexname?id=%{[@metadata][uuid]}
    

    这可能会在将来出现问题,您仍然需要正确使用
    indexname

    是的,我以前尝试过,但我使用的是开放发行版,它在OD中并不完善。当然,这一功能不在开放发行版中,但OD提供了另一种类似的方式,您可以使用它发送警报。