小编張皓翔*_*張皓翔的帖子

如何将Kafka与Elasticsearch连接?

我是Kafka的新手,我使用kafka通过logstash收集网络流量(可以),并且我想将数据从kafka发送到elasticsearch,但是存在一些问题。
我的问题是如何将Kafka与Elasticsearch连接?netflow到kafka logstash配置:

input{
    udp{
        host => "120.127.XXX.XX"
        port => 5556
        codec => netflow
    }
}
    filter{

    }
output {
  kafka {
    bootstrap_servers => "localhost:9092"    
    topic_id => "test"    
  }
  stdout{codec=> rubydebug}
}
Run Code Online (Sandbox Code Playgroud)

kafka到elasticsearch logstash:

input {
      kafka { }
    }
    output {
        elasticsearch {
            hosts => ["120.127.XXX.XX:9200"]
        }
        stdout{codec=> rubydebug}
    }
Run Code Online (Sandbox Code Playgroud)

日志:

D:\ELK\logstash-6.1.1\bin>logstash -f kafkatoES.conf --path.data D:\ELK\logstash-6.1.1\datatest
Sending Logstash's logs to D:/ELK/logstash-6.1.1/logs which is now configured via log4j2.properties
[2018-02-01T18:52:59,713][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"fb_apache", :directory=>"D:/ELK/logstash-6.1.1/modules/fb_apache/configuration"}
[2018-02-01T18:52:59,728][INFO ][logstash.modules.scaffold] Initializing module {:module_name=>"netflow", :directory=>"D:/ELK/logstash-6.1.1/modules/netflow/configuration"} …
Run Code Online (Sandbox Code Playgroud)

elasticsearch apache-kafka kafka-consumer-api apache-kafka-connect

7
推荐指数
2
解决办法
1万
查看次数

[过滤器] 下应有 [START_OBJECT]

我想在 aggs 中放置双重过滤器。像这样。

"aggs": {
  "download1" : {
        "filter" : [
            { "term": { "IPV4_DST_ADDR":"192.168.0.159"}},
            { "range": { "LAST_SWITCHED": { "gte": "now-5m" } }}
        ],
        "aggs" : {
            "downlod_bytes" : { "sum" : { "field" : "IN_BYTES" } }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

但它显示了一个错误:

"error": {
"root_cause": [
  {
    "type": "parsing_exception",
    "reason": "Expected [START_OBJECT] under [filter], but got a [START_ARRAY] in [download1]",
    "line": 33,
    "col": 24
  }
]}
Run Code Online (Sandbox Code Playgroud)

我该怎么办,先谢谢你了!

rest elasticsearch

4
推荐指数
1
解决办法
8461
查看次数

返回后打印一些东西

我写了一个最长的公共子序列代码,并想使用递归打印最长的一个。

如果我把printfbefore 返回,结果将反向打印答案 - >“UAJM”。

所以我把printf后面的返回。

但是,输出为空。我希望它可以按顺序打印字符->“MJAU”。

多谢!

- - - - -更新 - - - - -

哦,我明白了!返回后,它立即退出函数,不再运行任何代码。

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int map[20][20];
int maxlen;
int max(int a,int b)
{
    return a>b?a:b;
}
void LCS(char* X,char* Y,int m,int n)
{
    if(!m||!n)
        return ;
    if(X[m-1]==Y[n-1])
    {
        return LCS(X,Y,m-1,n-1);
        printf("%c",X[m-1]);
    }
    if(map[m-1][n]>map[m][n-1])
        return  LCS(X,Y,m-1,n);
    else
        return  LCS(X,Y,m,n-1);

}
void LCSlength(char* X,char* Y)
{
    int len1=strlen(X),len2=strlen(Y);

    for(int i=1;i<=len1;i++)
    {
        for(int j=1;j<=len2;j++)
        {
            if(X[i-1]==Y[j-1])
            {
                map[i][j]=map[i-1][j-1]+1; …
Run Code Online (Sandbox Code Playgroud)

c

2
推荐指数
1
解决办法
208
查看次数