實(shí)驗(yàn)背景:
Kafka->Logstash->Elasticsearch實(shí)驗(yàn)環(huán)境安裝完成;
Logstash的啟動(dòng)文件設(shè)置有過濾機(jī)制;
Logstash啟動(dòng)文件:
[html]?view plaincopy
input?{?? kafka?{?? ??zk_connect?=>?"10.10.16.252:2181,10.10.16.253:2181,10.10.16.249:2181"?? ??group_id?=>?"test-consumer-group"?? ??topic_id?=>?"MyPattern"?? ??reset_beginning?=>?false?#?boolean?(optional),?default:?false?? ??consumer_threads?=>?5??#?number?(optional),?default:?1?? ??decorate_events?=>?true?#?boolean?(optional),?default:?false?? ??}?? }?? filter{?? ???? ??grok{?? ???? ?????patterns_dir?=>?"./patterns"?? ?????match?=>?{?"message"?=>?["#字段內(nèi)容#"]}?? ??}?? ?? }?? ?? ?? output?{?? ????? ???if?"jsonparsefailure"?not?in?[tags]{?? ?????? ??????elasticsearch{?? ??? ?????????host?=>?"localhost"?? ?????}?? ???}?? }??
發(fā)送數(shù)據(jù)的代碼如下所示:
[java]?view plaincopy
package?com.test.kafka;?? ?? import?java.util.Properties;?? import?kafka.javaapi.producer.Producer;?? import?kafka.producer.KeyedMessage;?? import?kafka.producer.ProducerConfig;?? ?? public?class?KafkaProduce?{?? ?? ????public?static?void?main(String[]?args)?{?? ?? ?????????Properties?props?=?new?Properties();?? ?????????props.setProperty("metadata.broker.list","10.10.16.253:9092,10.10.16.252:9092,10.10.16.249:9092");????? ?????????props.setProperty("serializer.class","kafka.serializer.StringEncoder");?? ?????????props.put("request.required.acks","-1");??????????? ?????????ProducerConfig?config?=?new?ProducerConfig(props);??? ??????????? ?????????Producer<String,String>?producer?=?new?Producer<String,?String>(config);?? ?????????KeyedMessage<String,?String>?data?=?new?KeyedMessage<String,String>("MyPattern","數(shù)據(jù)內(nèi)容");?? ??????????????????????????? ?????????producer.send(data);?? ??????????? ?????????producer.close();?? ????}?? }??
發(fā)送給Logstash后,使用ES搜索,開始時(shí),報(bào)一下錯(cuò)誤:
發(fā)送第一個(gè)紅框內(nèi)的數(shù)據(jù),結(jié)果報(bào)第二個(gè)紅框內(nèi)的錯(cuò)誤。
尋找錯(cuò)誤,經(jīng)過對比,發(fā)現(xiàn),代碼中“數(shù)據(jù)內(nèi)容”的字段比配置文件中“數(shù)據(jù)內(nèi)容”中的字段少一個(gè),所以報(bào)錯(cuò)。
改正,重新進(jìn)行實(shí)驗(yàn),結(jié)果正確。
進(jìn)行驗(yàn)證:
字段對應(yīng),則正確;代碼中少一個(gè)字段,則報(bào)上面的錯(cuò)。
來源:http://blog.csdn.net/wang_zhenwei/article/details/49755599
總結(jié)
以上是生活随笔為你收集整理的ELK错误1_Kafka-Logstash-Elasticsearch过程,Elasticsearch报grokparsefailure错误的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。