Я попробовал с 5.1.0-post веткой.
Выдает несколько ошибок при настройке с SSL / TLS,
Я также упомянул ветку, ссылку на репозитории и совместимость
Я упомянул шаги ниже:
#
Versions:
a) ElasticSearch => 6.5.4
b) Kafka => 2.1.0
c) Kafka ElasticSearch Connector => 5.1.0-post
Confluent Platform and Apache Kafka Compatibility:
5.0.x 2.0.x
5.1.x 2.1.x
5.2.x 2.2.x
1. `mkdir CONNECTOR_BUILD`
2. `cd CONNECTOR_BUILD`
3. Cloned required packages (Since all 3 below repositories should be at dir level)
a) `git clone https://github.com/apache/kafka.git --branch 2.1`
b) `git clone https://github.com/confluentinc/common.git --branch 5.1.0-post`
c) `git clone https://github.com/confluentinc/kafka-connect-elasticsearch.git --branch 5.1.0-post`
4. Started making package of it.
a) `cd CONNECTOR_BUILD/kafka`
i) `gradle` (If gradle not installed, please install it.)
ii) Run the below command to install jars in local maven repo
./gradlew installAll
Build was successful
b) `cd CONNECTOR_BUILD/common`
i) `mvn clean install -DskipTests`
Build was successful
c) `cd CONNECTOR_BUILD/kafka-connect-elasticsearch`
i) `mvn clean install -DskipTests`
Build was successful
5. Untar ES 6.5.4 package.
6. Changed elasticsearch.yml file
7. Untar Kafka 2.1.0 package.
8. Created connector.properties file
9. Created ELK-connector.properties flie
10.Placed the kafka-connect-elasticsearch-5.1.0.jar (from kafka-connect-elasticsearch) inside kafka_2.11-2.1.0/libs
11. Also some extra dependencies from kafka-connect-elasticsearch/target/kafka-connect-elasticsearch-5.1.0-package/share/java/kafka-connect-elasticsearch/ inside kafka_2.11-2.1.0/libs
12. Run the command
./bin/connect-distributed.sh ../connector.properties ../ELK-Connector.properties
I am getting errors when following the below steps:
Переход по ссылке: Kafka Elastic SSL / TLS security
- Анализ CD /asticsearch / config
- MKDIR Certs
- CD-сертификаты
- Создан самозаверяющий сертификат.
Создайте центр сертификации (убедитесь, что ваше полное доменное имя localhost
)
openssl req -new -x509 -keyout cacert.key -out cacert.pem -days 666
Создание сертификата клиента
openssl genrsa -out client1.key 2048
Создание запроса на подпись сертификата
openssl req -new -key client1.key -out client1.csr
Подпишите запрос с CA
openssl x509 -req -in client1.csr -CA cacert.pem -CAkey cacert.key -CAcreateserial -out client1.crt -days 1825 -sha256
Пакет ключей разъема как JKS
openssl pkcs12 -export -out bundle.p12 -in client1.crt -inkey client1.key
keytool -keystore truststore.jks -import -file cacert.pem -alias cacert
keytool -destkeystore keystore.jks -importkeystore -srckeystore bundle.p12 -srcstoretype PKCS12
Настройка файла конфигурации ElasticSearch (asticsearch.yml)
xpack.security.enabled: true
xpack.security.http.ssl.enabled: true
xpack.security.http.ssl.client_authentication: требуется
xpack.security.http.ssl.key: certs / client1.key
xpack.security.http.ssl.certificate: certs / client1.crt
xpack.security.http.ssl.certificate_authorities: ["certs / cacert.pem"]
Установить пароли
bin/elasticsearch-keystore add
xpack.security.http.ssl.secure_key_passphrase
curl --key config/certs/client1.key --cert config/certs/client1.crt --cacert config/certs/cacert.pem https://10.27.0.114:9200
Теперь ES работает с https, как мы можем видеть в выводе ниже.
{
"name" : "mini01",
"cluster_name" : "Gen-E OpsCenter",
"cluster_uuid" : "2qviM7k7SPKp57_8KLDamQ",
"version" :
{ "number" : "6.5.4", "build_flavor" : "default", "build_type" : "tar", "build_hash" : "d2ef93d", "build_date" : "2018-12-17T21:17:40.758843Z", "build_snapshot" : false, "lucene_version" : "7.5.0", "minimum_wire_compatibility_version" : "5.6.0", "minimum_index_compatibility_version" : "5.0.0" }
,
"tagline" : "You Know, for Search"
}
- Настройка кафки с эластичным разъемом
- Теперь сделайте настройки конфигурации с вызовами REST. Так как наш разъем кафки работает.
curl -X POST -H "Content-Type: application/json" --data '{"name": "elasticsearch-sink", "config":
{ "connector.class": "io.confluent.connect.elasticsearch.ElasticsearchSinkConnector",
"Tasks.max": "4",
"темы": "raw_alarms_topic", "topic.index.map": "raw_alarms_topic: транспортно-сигналы", "key.ignore": "правда", "schema.ignore": "правда",
"connection.url": "https://mini01:9200"," type.name ":
"asticSearch-раковина ", "astic.https.ssl.keystore.location":
"/Data/Dhan/KKK/elasticsearch-6.5.4/config/certs/keystore.jks",
"astic.https.ssl.keystore.password ":" qwerty ",
"astic.https.ssl.key.password ":" qwerty ",
"astic.https.ssl.keystore.type ":" JKS ",
"Elastic.https.ssl.truststore.location":
"/Data/Dhan/KKK/elasticsearch-6.5.4/config/certs/truststore.jks",
"astic.https.ssl.truststore.password ":" qwerty ",
"astic.https.ssl.truststore.type ":" JKS ",
"astic.https.ssl.protocol ":" SSL "}} '
http://localhost:8083/connectors
Получение ошибок:
Задача уничтожается и не будет восстановлена до тех пор, пока не будет перезапущена вручную (org.apache.kafka.connect.runtime.WorkerTask: 178) [2019-04-15
02: 05: 24,356] ИНФОРМАЦИЯ Остановка ElasticsearchSinkTask.
(Io.confluent.connect.elasticsearch.ElasticsearchSinkTask: 177)
[2019-04-15 02: 05: 24,415] ОШИБКА
WorkerSinkTask {id =asticsearch-sink-1} Задача вызвала невыполнение и
неисправимое исключение
(Org.apache.kafka.connect.runtime.WorkerTask: 177)
org.apache.kafka.connect.errors.ConnectException: не удалось запустить
ElasticsearchSinkTask из-за ошибки соединения: в
io.confluent.connect.elasticsearch.jest.JestElasticsearchClient. (JestElasticsearchClient.java:145)
в
io.confluent.connect.elasticsearch.jest.JestElasticsearchClient. (JestElasticsearchClient.java:112)
в
io.confluent.connect.elasticsearch.ElasticsearchSinkTask.start (ElasticsearchSinkTask.java:118)
в
io.confluent.connect.elasticsearch.ElasticsearchSinkTask.start (ElasticsearchSinkTask.java:49)
в
org.apache.kafka.connect.runtime.WorkerSinkTask.initializeAndStart (WorkerSinkTask.java:302)
в
org.apache.kafka.connect.runtime.WorkerSinkTask.execute (WorkerSinkTask.java:191)
в
org.apache.kafka.connect.runtime.WorkerTask.doRun (WorkerTask.java:175)
в
org.apache.kafka.connect.runtime.WorkerTask.run (WorkerTask.java:219)
в
java.util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511)в java.util.concurrent.FutureTask.run (FutureTask.java:266) в
java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1149)
в
java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:624)
at java.lang.Thread.run (Thread.java:748) Причина:
javax.net.ssl.SSLHandshakeException:
sun.security.validator.ValidatorException: не удалось построить путь PKIX:
sun.security.provider.certpath.SunCertPathBuilderException: невозможно
найти действительный путь сертификации для запрашиваемой цели в
sun.security.ssl.Alerts.getSSLException (Alerts.java:192) в
sun.security.ssl.SSLSocketImpl.fatal (SSLSocketImpl.java:1946) в
sun.security.ssl.Handshaker.fatalSE (Handshaker.java:316) в
sun.security.ssl.Handshaker.fatalSE (Handshaker.java:310) в
sun.security.ssl.ClientHandshaker.serverCertificate (ClientHandshaker.java:1639)
в
sun.security.ssl.ClientHandshaker.processMessage (ClientHandshaker.java:223)
в sun.security.ssl.Handshaker.processLoop (Handshaker.java:1037) в
sun.security.ssl.Handshaker.process_record (Handshaker.java:965) в
sun.security.ssl.SSLSocketImpl.readRecord (SSLSocketImpl.java:1064) в
sun.security.ssl.SSLSocketImpl.performInitialHandshake (SSLSocketImpl.java:1367)
в
sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1395)
в
sun.security.ssl.SSLSocketImpl.startHandshake (SSLSocketImpl.java:1379)
в
org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket (SSLConnectionSocketFactory.java:394)
в
org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket (SSLConnectionSocketFactory.java:353)
в
org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect (DefaultHttpClientConnectionOperator.java:141)
в
org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect (PoolingHttpClientConnectionManager.java:353)
в
org.apache.http.impl.execchain.MainClientExec.establishRoute (MainClientExec.java:380)
в
org.apache.http.impl.execchain.MainClientExec.execute (MainClientExec.java:236)
в
org.apache.http.impl.execchain.ProtocolExec.execute (ProtocolExec.java:184)
в
org.apache.http.impl.execchain.RetryExec.execute (RetryExec.java:88)
в
org.apache.http.impl.execchain.RedirectExec.execute (RedirectExec.java:110)
в
org.apache.http.impl.client.InternalHttpClient.doExecute (InternalHttpClient.java:184)
в
org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:82)
в
org.apache.http.impl.client.CloseableHttpClient.execute (CloseableHttpClient.java:107)
в
io.searchbox.client.http.JestHttpClient.executeRequest (JestHttpClient.java:118)
в
io.searchbox.client.http.JestHttpClient.execute (JestHttpClient.java:57)
в
io.confluent.connect.elasticsearch.jest.JestElasticsearchClient.getServerVersion (JestElasticsearchClient.java:166)
в
io.confluent.connect.elasticsearch.jest.JestElasticsearchClient. (JestElasticsearchClient.java:143)
... еще 12 причин: sun.security.validator.ValidatorException:
Ошибка построения пути PKIX:
sun.security.provider.certpath.SunCertPathBuilderException: невозможно
найти действительный путь сертификации для запрашиваемой цели в
sun.security.validator.PKIXValidator.doBuild (PKIXValidator.java:397)
в
sun.security.validator.PKIXValidator.engineValidate (PKIXValidator.java:302)
в sun.security.validator.Validator.validate (Validator.java:262) в
sun.security.ssl.X509TrustManagerImpl.validate (X509TrustManagerImpl.java:324)
в
sun.security.ssl.X509TrustManagerImpl.checkTrusted (X509TrustManagerImpl.java:229)
в
sun.security.ssl.X509TrustManagerImpl.checkServerTrusted (X509TrustManagerImpl.java:124)
в
sun.security.ssl.ClientHandshaker.serverCertificate (ClientHandshaker.java:1621)
... еще 35 причин:
sun.security.provider.certpath.SunCertPathBuilderException: невозможно
найти действительный путь сертификации для запрашиваемой цели вsun.security.provider.certpath.SunCertPathBuilder.build (SunCertPathBuilder.java:141) в sun.security.provider.certpath.SunCertPathBuilder.engineBuild (SunCertPathBuilder.javadert.Java: 280) at sun.security.validator.PKIXValidator.doBuild (PKIXValidator.java:392) ... еще 41 [2019-04-15 02: 05,417] ОШИБКА WorkerSinkTask {id =asticsearch-sink-1} Задачауничтожается и не восстановится до тех пор, пока не будет перезапущен вручную (org.apache.kafka.connect.runtime.WorkerTask: 178)