MQTT + Kafka + Amazon ElasticSearch Service [P015]
https://www.youtube.com/watch?v=-8B8Yp52XMY
* GitHub : https://github.com/rdiot/rdiot-p015
* Parts
- Arduino UNO
- Ethernet W5100 Shield (W5100) [B004]
- LCD1602 I2C (LCD1602) [D016]
- Photo Resistor Module (KY-018) [S002]
- Temperature and humidity DHT22 (DHT22) [S063]
- TPM-300 Air Quality Module (TPM-300) [S092]
- Samsung ARTIK 5 (ARTIK5-V0.5) [B023]
- Raspberry Pi 3 B Model (RASPBERRY-PI-3-B) [B088] x 3ea : for Kafka Cluster
- USB Power Supply
- Ethernet Hub
* Contents
1. Amazon ElasticSearch Service Setup
- Define domain
- Configure cluster
- Set up access
- Review
- Amazon Elasticsearch Service dashboard
2. ES Information example
- ElasticSearch Endpoint : https://search-rdiot-aws-es-2yolnmmxbjghreiywdbh4yrsay.ap-northeast-2.es.amazonaws.com
- Kibana URL : https://search-rdiot-aws-es-2yolnmmxbjghreiywdbh4yrsay.ap-northeast-2.es.amazonaws.com/_plugin/kibana/
3. MQTT - Kafka - Bridge (json)
- source : https://github.com/rdiot/rdiot-p015/blob/master/MqttToKafkaReConn.java
- result
{"time": 1511884443315,"value":724}
{"time": 1511884444405,"value":724}
{"time": 1511884445488,"value":723}
{"time": 1511884446579,"value":724}
{"time": 1511884447657,"value":726}
4. install logstash : tested logstash-2.4.1
$ cd /data1/logstash
$ wget https://download.elastic.co/logstash/logstash/logstash-2.4.1.tar.gz
$ tar zxvf logstash-2.4.1.tar.gz
$ ln -s logstash-2.4.1 logstash
$ sudo apt-get install ant texinfo openjdk-8-jdk build-essential
$ git clone https://github.com/jnr/jffi.git
$ export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-armhf"
$ cd jffi
$ ant jar
$ sudo cp build/jni/libjffi-1.2.so /data1/logstash/logstash/vendor/jruby/lib/jni/arm-Linux
5. logstash config : tested logstash-2.4.1
- source : https://github.com/rdiot/rdiot-p015/blob/master/logstash-kafka-aws-es.conf
input {
kafka {
zk_connect => "kafka-pi-01:2181"
group_id => "logstash"
topic_id => "cds"
consumer_threads => 2
decorate_events => true
}
}
filter {
json {
source => "message"
}
date {
match => [ "time", "UNIX"]
target => "time_new"
}
}
output {
elasticsearch {
index => "test-%{+YYYY.MM.dd}"
hosts => ["https://search-rdiot-aws-es-2yolnmmxbjghreiywdbh4yrsay.ap-northeast-2.es.amazonaws.com"]
codec => json
}
stdout {
codec => "rubydebug"
}
}
6. Amazon ElasticSearch Query Sample
7. Kibana : Search & Chart
'1) HW Platform > Raspberry_Pi' 카테고리의 다른 글
MQTT + Kafka + Raspberry Pi ElasticSearch Cluster [P016] (0) | 2017.11.29 |
---|---|
ARTIK MQTT + Raspberry Pi Apache Kafka Cluster Bridge [P014] (0) | 2017.09.27 |
Raspberry Pi Apache Kafka Cluster [P013] (0) | 2017.06.08 |
Raspberry Pi GPIO Ruler [B180] (0) | 2017.02.22 |
Raspberry Pi 3 B Model (RASPBERRY-PI-3-B) [B088] (0) | 2016.09.01 |