Elasticsearch文档分析

时间:2017-02-28 19:02:52

标签: elasticsearch

Elasticsearch中是否有办法将两个文档关联起来基本上说:"这两个文件属于一起"。

例如,我希望能够关联属于同一个流的TCP数据包,所以如果我得到一个SYN和一个SYN-ACK,我想说这两个数据包是相互关联的。< / p>

最后,我希望能够说:&#34;给我所有没有相应SYN-ACK的SYN数据包&#34;。

感谢任何帮助

编辑:也许通过logstash聚合器提供数据包可以实现这一目标吗?然后我可以将数据包分组为&#34;流索引&#34; ??

1 个答案:

答案 0 :(得分:1)

如果您通过Logstash加载TCP事件,则可以利用aggregate filter

例如,下面的过滤器配置将在每个SYN-ACK和&#34;发布&#34;上创建合成事件。它在每some_unique_id。您只需要识别一个字段timeout,它将两个数据包绑定在一起作为相关的。另外,请务必查看正确的 filter { if [type] == "SYN" { aggregate { task_id => "%{some_unique_id}" map_action => "create" } } if [type] == "SYN-ACK" { aggregate { task_id => "%{some_unique_id}" map_action => "update" end_of_task => true timeout => 120 } } } (此处为120秒)

public class Fibonaccisequence {
    public static void main(String args[]){
        int term[] = new int[]{1,2};
        int termValue = term[0]+term[1];
        int sum = 0;
        while(termValue <= 4000000)
        {
            termValue = term[0]+term[1];
            if (term[1]%2==0)
            {sum=sum+term[0];}


            int a= term[1];
            term[1]=termValue;
            term[0]=a;
        }

        System.out.println(sum);
    }
 }