我是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
我想在 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)
我该怎么办,先谢谢你了!
我写了一个最长的公共子序列代码,并想使用递归打印最长的一个。
如果我把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)