Apache Kafka with SSL is working but SSL errors against localhost in kafka log (drives me nuts) - ssl

i have a Kafka problem, that drives me nuts.
We have a 4 nodes cluster. We used to work without SSL in our development stage. --> no problem.
For release, we switched on SSL for both listeners. --> Everything is working fine (application + kafka manager CMAK + Monitoring)
But we get one an error in our kafka broker serverlog in all environements (test, release, prod). Something is polling, and i don´t know what it is, or where to look:
It starts with:
[2020-10-16 10:50:27,866] INFO AdminClientConfig values:
bootstrap.servers = [127.0.0.1:10092]
client.dns.lookup = default
client.id =
connections.max.idle.ms = 300000
metadata.max.age.ms = 300000
metric.reporters = []
metrics.num.samples = 2
metrics.recording.level = INFO
metrics.sample.window.ms = 30000
receive.buffer.bytes = 65536
reconnect.backoff.max.ms = 1000
reconnect.backoff.ms = 50
request.timeout.ms = 120000
retries = 5
retry.backoff.ms = 100
sasl.client.callback.handler.class = null
sasl.jaas.config = null
sasl.kerberos.kinit.cmd = /usr/bin/kinit
sasl.kerberos.min.time.before.relogin = 60000
sasl.kerberos.service.name = null
sasl.kerberos.ticket.renew.jitter = 0.05
sasl.kerberos.ticket.renew.window.factor = 0.8
sasl.login.callback.handler.class = null
sasl.login.class = null
sasl.login.refresh.buffer.seconds = 300
sasl.login.refresh.min.period.seconds = 60
sasl.login.refresh.window.factor = 0.8
sasl.login.refresh.window.jitter = 0.05
sasl.mechanism = GSSAPI
security.protocol = PLAINTEXT
security.providers = null
send.buffer.bytes = 131072
ssl.cipher.suites = null
ssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1]
ssl.endpoint.identification.algorithm = https
ssl.key.password = null
ssl.keymanager.algorithm = SunX509
ssl.keystore.location = null
ssl.keystore.password = null
ssl.keystore.type = JKS
ssl.protocol = TLS
ssl.provider = null
ssl.secure.random.implementation = null
ssl.trustmanager.algorithm = PKIX
ssl.truststore.location = null
ssl.truststore.password = null
ssl.truststore.type = JKS
(org.apache.kafka.clients.admin.AdminClientConfig)
Then massive SSL error polling:
[2020-10-16 10:48:11,799] INFO [SocketServer brokerId=2] Failed authentication with /127.0.0.1 (SSL handshake failed) (org.apache.kafka.common.network.Selector)
[2020-10-16 10:48:13,141] INFO [SocketServer brokerId=2] Failed authentication with /127.0.0.1 (SSL handshake failed) (org.apache.kafka.common.network.Selector)
[2020-10-16 10:48:14,476] INFO [SocketServer brokerId=2] Failed authentication with /127.0.0.1 (SSL handshake failed) (org.apache.kafka.common.network.Selector)
Then Timeout:
[2020-10-16 10:48:20,890] INFO [AdminClient clientId=adminclient-25] Metadata update failed (org.apache.kafka.clients.admin.internals.AdminMetadataManager)
org.apache.kafka.common.errors.TimeoutException: Timed out waiting for a node assignment.
[2020-10-16 10:48:20,892] INFO [AdminClient clientId=adminclient-25] Metadata update failed (org.apache.kafka.clients.admin.internals.AdminMetadataManager)
org.apache.kafka.common.errors.TimeoutException: The AdminClient thread has exited.
After 1-2 minutes, it starts again.
Our Broker config:
# Maintained by Ansible
zookeeper.connect=ZOOKEEPER1:2181,ZOOKEEPER2:2181,ZOOKEEPER3:2181
log.dirs=KAFKKALOGDIR
broker.id=2
confluent.license.topic.replication.factor=3
log.segment.bytes=1073741824
socket.receive.buffer.bytes=102400
socket.send.buffer.bytes=102400
offsets.topic.replication.factor=3
num.network.threads=8
transaction.state.log.replication.factor=3
transaction.state.log.min.isr=2
confluent.support.metrics.enable=False
zookeeper.connection.timeout.ms=18000
num.io.threads=16
socket.request.max.bytes=104857600
log.retention.check.interval.ms=300000
group.initial.rebalance.delay.ms=0
confluent.metadata.topic.replication.factor=3
num.recovery.threads.per.data.dir=2
default.replication.factor=3
num.partitions=10
log.retention.hours=168
confluent.support.customer.id=anonymous
listener.security.protocol.map=INTERNAL:SSL,EXTERNAL:SSL
listeners=INTERNAL://:10091,EXTERNAL://:10092
advertised.listeners=INTERNAL://BROKERURL:10091,EXTERNAL://BROKERURL:10092
## Inter Broker Listener Configuration
inter.broker.listener.name=INTERNAL
listener.name.internal.ssl.truststore.location=LOCATION
listener.name.internal.ssl.truststore.password=PASSWORD
listener.name.internal.ssl.keystore.location=LOCATION
listener.name.internal.ssl.keystore.password=PASSWORD
listener.name.internal.ssl.key.password=PASSWORD
listener.name.external.ssl.truststore.location=LOCATION
listener.name.external.ssl.truststore.password=PASSWORD
listener.name.external.ssl.keystore.location=LOCATION
listener.name.external.ssl.keystore.password=PASSWORD
listener.name.external.ssl.key.password=PASSWORD
## Metrics Reporter Configuration
confluent.metrics.reporter.security.protocol=SSL
confluent.metrics.reporter.ssl.truststore.location=LOCATION
confluent.metrics.reporter.ssl.truststore.password=PASSWORD
What i did:
-disabled our monitoring agent (thought the agent is polling without SSL) --> nothing
-Add an additional localhost listener with PLAINTEXT 127.0.0.1 --> got massive problems with error "no matching leader for topic XY"
So, i don´t know how to continue - maybe someone has an idea
many thanks

Your AdminClientConfig specifies security.protocol=PLAINTEXT - that doesn't seem right given you want to enable SSL. https://kafka.apache.org/11/javadoc/org/apache/kafka/common/security/auth/SecurityProtocol.html shows the possible options for that variable.
You also have sasl.jaas.config=null, which I don't believe is correct either.
https://www.confluent.io/blog/apache-kafka-security-authorization-authentication-encryption/ provides a good walk-through of how to setup security with Kafka.
Edited to add (in response to followup question): AdminClient is a Java class which is instantiated from your connect-distributed.properties file. When you search your service logfile for AdminClient you will see something like this:
[2020-09-16 02:58:14,180] INFO AdminClientConfig values:
bootstrap.servers = [servernames-elided:9092]
client.dns.lookup = default
client.id =
connections.max.idle.ms = 300000
default.api.timeout.ms = 60000
metadata.max.age.ms = 300000
metric.reporters = []
metrics.num.samples = 2
metrics.recording.level = INFO
metrics.sample.window.ms = 30000
receive.buffer.bytes = 65536
reconnect.backoff.max.ms = 1000
reconnect.backoff.ms = 50
request.timeout.ms = 20000
retries = 2147483647
retry.backoff.ms = 500
sasl.client.callback.handler.class = null
sasl.jaas.config = [hidden]
sasl.kerberos.kinit.cmd = /usr/bin/kinit
sasl.kerberos.min.time.before.relogin = 60000
sasl.kerberos.service.name = null
sasl.kerberos.ticket.renew.jitter = 0.05
sasl.kerberos.ticket.renew.window.factor = 0.8
sasl.login.callback.handler.class = null
sasl.login.class = null
sasl.login.refresh.buffer.seconds = 300
sasl.login.refresh.min.period.seconds = 60
sasl.login.refresh.window.factor = 0.8
sasl.login.refresh.window.jitter = 0.05
sasl.mechanism = PLAIN
security.protocol = SASL_SSL
security.providers = null
send.buffer.bytes = 131072
ssl.cipher.suites = null
ssl.enabled.protocols = [TLSv1.2, TLSv1.1, TLSv1]
ssl.endpoint.identification.algorithm = https
ssl.key.password = null
ssl.keymanager.algorithm = SunX509
ssl.keystore.location = null
ssl.keystore.password = null
ssl.keystore.type = JKS
ssl.protocol = TLS
ssl.provider = null
ssl.secure.random.implementation = null
ssl.trustmanager.algorithm = PKIX
ssl.truststore.location = null
ssl.truststore.password = null
ssl.truststore.type = JKS
(org.apache.kafka.clients.admin.AdminClientConfig:347)
Note that sasl.jaas.config = [hidden] - that's because the username and password for accessing the cluster are stored in the properties file directly, like so:
sasl.jaas.config=org.apache.kafka.common.security.plain.PlainLoginModule required username=\"someUsernameThisIs\" password=\"notMyRealPassword\";
Note that the escaping for the doublequotes is necessary for the configuration parser.

Related

ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get issuer certificate (_ssl.c:1123)

import time
import logging
import paho.mqtt.client as mqtt
from OpenSSL import SSL
import os
import ssl
log = logging.getLogger('RemoTV.hardware.l298n')
logging.basicConfig(level=logging.DEBUG)
sleeptime = 0.2
rotatetimes = 0.4
StepPinForward = None
StepPinBackward = None
StepPinLeft = None
StepPinRight = None
def setup(robot_config):
global StepPinForward
global StepPinBackward
global StepPinLeft
global StepPinRight
global sleeptime
global rotatetimes
sleeptime = robot_config.getfloat('l298n', 'sleeptime')
rotatetimes = robot_config.getfloat('l298n', 'rotatetimes')
log.debug("GPIO mode : %s", str(GPIO.getmode()))
GPIO.setwarnings(False)
GPIO.cleanup()
if robot_config.getboolean('tts', 'ext_chat'): # ext_chat enabled, add motor commands
extended_command.add_command('.set_rotate_time', set_rotate_time)
extended_command.add_command('.set_sleep_time', set_sleep_time)
# TODO passing these as tuples may be unnecessary, it may accept lists as well.
StepPinForward = tuple(map(int, robot_config.get('l298n', 'StepPinForward').split(',')))
StepPinBackward = tuple(map(int, robot_config.get('l298n', 'StepPinBackward').split(',')))
StepPinLeft = tuple(map(int, robot_config.get('l298n', 'StepPinLeft').split(',')))
StepPinRight = tuple(map(int, robot_config.get('l298n', 'StepPinRight').split(',')))
def on_message(client, userdata, message):
payload = message.payload.decode('utf-8')
GPIO.setmode(GPIO.BOARD)
GPIO.setup(12, GPIO.OUT)
GPIO.setup(11, GPIO.OUT)
GPIO.setup(15, GPIO.OUT)
GPIO.setup(16, GPIO.OUT)
GPIO.setup(36, GPIO.OUT)
GPIO.setup(35, GPIO.OUT)
if payload == 'f':
GPIO.output(12, GPIO.HIGH)
time.sleep(sleeptime)
GPIO.output(12, GPIO.LOW)
if payload == 'b':
GPIO.output(11, GPIO.HIGH)
time.sleep(sleeptime)
GPIO.output(11, GPIO.LOW)
if payload == 'l':
GPIO.output(15, GPIO.HIGH)
time.sleep(sleeptime * rotatetimes)
GPIO.output(15, GPIO.LOW)
if payload == 'r':
GPIO.output(16, GPIO.HIGH)
time.sleep(sleeptime * rotatetimes)
GPIO.output(16, GPIO.LOW)
if payload == 'z':
GPIO.output(36, GPIO.HIGH)
time.sleep(sleeptime * rotatetimes)
GPIO.output(36, GPIO.LOW)
if payload == 'x':
GPIO.output(35, GPIO.HIGH)
time.sleep(sleeptime * rotatetimes)
GPIO.output(35, GPIO.LOW)
ca_cert_path = "fullchain1.pem"
client = mqtt.Client()
# Set the TLS/SSL parameters for the client
client.tls_set(
ca_certs=ca_cert_path,
certfile='cert1.pem',
keyfile='privkey1.pem',
cert_reqs=ssl.CERT_REQUIRED,
tls_version=SSL.SSLv23_METHOD
)
client.username_pw_set(username="not posting my passwd", password="lol ahah")
# client.tls_insecure_set(False)
client.on_message = on_message
client.connect('clawclan.co.uk',8083)
client.subscribe("clawmachine/controls")
client.loop_forever()
Thats the python code that I'm using to connect to my mqtt broker, I have been through multiple issues as tlsv1.3 isn't supported by pyopenssl or something, I have spent days trying to get this code to work and fixing issues, and this one has been making me lose my mind hahahahahahahahah.
My mosquitto config:
allow_anonymous false
password_file /home/pi/claw/passwordfile.txt
listener 1883 localhost
listener 8883
certfile /home/pi/claw/cert1.pem
cafile /home/pi/claw/chain1.pem
keyfile /home/pi/claw/privkey1.pem
listener 8083
protocol websockets
certfile /home/pi/claw/cert1.pem
cafile /home/pi/claw/chain1.pem
keyfile /home/pi/claw/privkey1.pem
This is the error I'm getting when I run the .py file
pi#raspberrypi:~/claw $ python3 cac.py
Traceback (most recent call last):
File "/home/pi/claw/cac.py", line 102, in <module>
client.connect('clawclan.co.uk', 8083)
File "/home/pi/.local/lib/python3.9/site-packages/paho/mqtt/client.py", line 914, in connect
return self.reconnect()
File "/home/pi/.local/lib/python3.9/site-packages/paho/mqtt/client.py", line 1073, in reconnect
sock.do_handshake()
File "/usr/lib/python3.9/ssl.py", line 1309, in do_handshake
self._sslobj.do_handshake()
ssl.SSLCertVerificationError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: unable to get issuer certificate (_ssl.c:1123)
If u want me to add anything, just ask, as I will be just checking for responses, for the rest of the day

Spacy v3 - ValueError: [E030] Sentence boundaries unset

I'm training an entity linker model with spacy 3, and am getting the following error when running spacy train:
ValueError: [E030] Sentence boundaries unset. You can add the 'sentencizer' component to the pipeline with: nlp.add_pipe('sentencizer'). Alternatively, add the dependency parser or sentence recognizer, or set sentence boundaries by setting doc[i].is_sent_start. .
I've tried with both transformer and tok2vec pipelines, it seems to be failing on this line:
File "/usr/local/lib/python3.7/dist-packages/spacy/pipeline/entity_linker.py", line 252, in update sentences = [s for s in eg.reference.sents]
Running spacy debug data shows no errors.
I'm using the following config, before filling it in with spacy init fill-config:
[paths]
train = null
dev = null
kb = "./kb"
[system]
gpu_allocator = "pytorch"
[nlp]
lang = "en"
pipeline = ["transformer","parser","sentencizer","ner", "entity_linker"]
batch_size = 128
[components]
[components.transformer]
factory = "transformer"
[components.transformer.model]
#architectures = "spacy-transformers.TransformerModel.v3"
name = "roberta-base"
tokenizer_config = {"use_fast": true}
[components.transformer.model.get_spans]
#span_getters = "spacy-transformers.strided_spans.v1"
window = 128
stride = 96
[components.sentencizer]
factory = "sentencizer"
punct_chars = null
[components.entity_linker]
factory = "entity_linker"
entity_vector_length = 64
get_candidates = {"#misc":"spacy.CandidateGenerator.v1"}
incl_context = true
incl_prior = true
labels_discard = []
[components.entity_linker.model]
#architectures = "spacy.EntityLinker.v1"
nO = null
[components.entity_linker.model.tok2vec]
#architectures = "spacy.HashEmbedCNN.v1"
pretrained_vectors = null
width = 96
depth = 2
embed_size = 2000
window_size = 1
maxout_pieces = 3
subword_features = true
[components.parser]
factory = "parser"
[components.parser.model]
#architectures = "spacy.TransitionBasedParser.v2"
state_type = "parser"
extra_state_tokens = false
hidden_width = 128
maxout_pieces = 3
use_upper = false
nO = null
[components.parser.model.tok2vec]
#architectures = "spacy-transformers.TransformerListener.v1"
grad_factor = 1.0
[components.parser.model.tok2vec.pooling]
#layers = "reduce_mean.v1"
[components.ner]
factory = "ner"
[components.ner.model]
#architectures = "spacy.TransitionBasedParser.v2"
state_type = "ner"
extra_state_tokens = false
hidden_width = 64
maxout_pieces = 2
use_upper = false
nO = null
[components.ner.model.tok2vec]
#architectures = "spacy-transformers.TransformerListener.v1"
grad_factor = 1.0
[components.ner.model.tok2vec.pooling]
#layers = "reduce_mean.v1"
[corpora]
[corpora.train]
#readers = "spacy.Corpus.v1"
path = ${paths.train}
max_length = 0
[corpora.dev]
#readers = "spacy.Corpus.v1"
path = ${paths.dev}
max_length = 0
[training]
accumulate_gradient = 3
dev_corpus = "corpora.dev"
train_corpus = "corpora.train"
[training.optimizer]
#optimizers = "Adam.v1"
[training.optimizer.learn_rate]
#schedules = "warmup_linear.v1"
warmup_steps = 250
total_steps = 20000
initial_rate = 5e-5
[training.batcher]
#batchers = "spacy.batch_by_padded.v1"
discard_oversize = true
size = 2000
buffer = 256
[initialize]
vectors = ${paths.vectors}
[initialize.components]
[initialize.components.sentencizer]
[initialize.components.entity_linker]
[initialize.components.entity_linker.kb_loader]
#misc = "spacy.KBFromFile.v1"
kb_path = ${paths.kb}
I can write a script to add the sentence boundaries in manually to the docs, but am wondering why the sentencizer component is not doing this for me, is there something missing in the config?
You haven't put the sentencizer in annotating_components, so the updates it makes aren't visible to other components during training. Take a look at the relevant section in the docs.

Bus.bus Unavailable after workers greater then 0

This is my odoo-server.conf
admin_passwd = <pwd>
xmlrpc_port = 8069
logfile = /var/log/odoo/odoo-server.log
addons_path=<path>
dbfilter = <dbname>
limit_memory_soft = 2629145600
limit_memory_hard = 4677721600
limit_request = 8192
limit_time_cpu = 600
limit_time_real = 1200
max_cron_threads = 1
workers = 8
I have already follow the step for enabled workers.(Except SSL)
You will have to configure the apache or nginx to reverse proxy to handle the longpolling request.

kafka s3 connector fails to connect Minio

I've a system which files are uploaded to SQL Server via an application. My purpose is to transfer these uploaded files in MS SQL Server to Minio through Kafka.
I've installed Kafka brookers via Strimzi. Then I've prepared a custom Docker image which includes Kafka Connect, Debezium SQL plugin and S3 Sink Connector plugin.
This is my Dockerfile:
FROM strimzi/kafka:latest-kafka-2.5.0
USER root:root
COPY ./plugins/ /opt/kafka/plugins/
USER 1001
ENV MINIO_VOLUMES=http://minio.dev-kik.io
ENV AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
ENV AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
...then I deployed my container via Strimzi and installed Kafka Connect cluster on Kubernetes. I installed sql connector, it works.
When I fire up S3/Minio connector, there are multiple issues which I cannot interpret completely.
1)I'm not sure entering Minio credentials into Dockerfile as env variable is correct or not.
2)Although Kafka Connect pod(s) can resolve minio url on bash command line, Kafka connect says my url is an unknown address.
3)I'm not sure I enter my Minio address to the right component.
my MinioConnector config (Strimzi):
apiVersion: kafka.strimzi.io/v1alpha1
kind: KafkaConnector
metadata:
name: "minio-connector"
labels:
strimzi.io/cluster: mssql-minio-connect-cluster
spec:
class: io.confluent.connect.s3.S3SinkConnector
config:
storage.class: io.confluent.connect.s3.storage.S3Storage
format.class: io.confluent.connect.s3.format.avro.AvroFormat
schema.generator.class: io.confluent.connect.storage.hive.schema.DefaultSchemaGenerator
partitioner.class: io.confluent.connect.storage.partitioner.DefaultPartitioner
tasks.max: '1'
topics: filesql1.dbo.files
s3.bucket.name: dosyalar
s3.part.size: '5242880'
flush.size: '3'
format: binary
schema.compatibility: NONE
max.request.size: "536870912"
store.url: http://minio.dev-kik.io
...and logs:
[StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,050 INFO S3SinkConnectorConfig values:
avro.codec = null
aws.access.key.id =
aws.secret.access.key = [hidden]
behavior.on.null.values = fail
connect.meta.data = true
enhanced.avro.schema.support = false
filename.offset.zero.pad.width = 10
flush.size = 3
format.bytearray.extension = .bin
format.bytearray.separator = null
format.class = class io.confluent.connect.s3.format.avro.AvroFormat
parquet.codec = snappy
retry.backoff.ms = 5000
rotate.interval.ms = -1
rotate.schedule.interval.ms = -1
s3.acl.canned = null
s3.bucket.name = dosyalar
s3.compression.level = -1
s3.compression.type = none
s3.credentials.provider.class = class com.amazonaws.auth.DefaultAWSCredentialsProviderChain
s3.http.send.expect.continue = true
s3.object.tagging = false
s3.part.retries = 3
s3.part.size = 5242880
s3.proxy.password = [hidden]
s3.proxy.url =
s3.proxy.user = null
s3.region = us-west-2
s3.retry.backoff.ms = 200
s3.sse.customer.key = [hidden]
s3.sse.kms.key.id =
s3.ssea.name =
s3.wan.mode = false
schema.cache.size = 1000
schema.compatibility = NONE
shutdown.timeout.ms = 3000
(io.confluent.connect.s3.S3SinkConnectorConfig) [StartAndStopExecutor-connect-1-3]
2020-05-17 07:48:00,051 INFO StorageCommonConfig values:
directory.delim = /
file.delim = +
storage.class = class io.confluent.connect.s3.storage.S3Storage
store.url = http://minio.dev-kik.io
topics.dir = topics
(io.confluent.connect.storage.common.StorageCommonConfig) [StartAndStopExecutor-connect-1-3]
2020-05-17 07:48:00,052 INFO PartitionerConfig values:
locale =
partition.duration.ms = -1
partition.field.name = []
partitioner.class = class io.confluent.connect.storage.partitioner.DefaultPartitioner
path.format =
timestamp.extractor = Wallclock
timestamp.field = timestamp
timezone =
(io.confluent.connect.storage.partitioner.PartitionerConfig) [StartAndStopExecutor-connect-1-3]
2020-05-17 07:48:00,054 INFO Creating task minio-connector-0 (org.apache.kafka.connect.runtime.Worker) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,054 INFO Starting S3 connector minio-connector (io.confluent.connect.s3.S3SinkConnector) [StartAndStopExecutor-connect-1-3]
2020-05-17 07:48:00,064 INFO Finished creating connector minio-connector (org.apache.kafka.connect.runtime.Worker) [StartAndStopExecutor-connect-1-3]
2020-05-17 07:48:00,074 INFO ConnectorConfig values:
config.action.reload = restart
connector.class = io.confluent.connect.s3.S3SinkConnector
errors.log.enable = false
errors.log.include.messages = false
errors.retry.delay.max.ms = 60000
errors.retry.timeout = 0
errors.tolerance = none
header.converter = null
key.converter = null
name = minio-connector
tasks.max = 1
transforms = []
value.converter = null
(org.apache.kafka.connect.runtime.ConnectorConfig) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,074 INFO EnrichedConnectorConfig values:
config.action.reload = restart
connector.class = io.confluent.connect.s3.S3SinkConnector
errors.log.enable = false
errors.log.include.messages = false
errors.retry.delay.max.ms = 60000
errors.retry.timeout = 0
errors.tolerance = none
header.converter = null
key.converter = null
name = minio-connector
tasks.max = 1
transforms = []
value.converter = null
(org.apache.kafka.connect.runtime.ConnectorConfig$EnrichedConnectorConfig) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,079 INFO SinkConnectorConfig values:
config.action.reload = restart
connector.class = io.confluent.connect.s3.S3SinkConnector
errors.deadletterqueue.context.headers.enable = false
errors.deadletterqueue.topic.name =
errors.deadletterqueue.topic.replication.factor = 3
errors.log.enable = false
errors.log.include.messages = false
errors.retry.delay.max.ms = 60000
errors.retry.timeout = 0
errors.tolerance = none
header.converter = null
key.converter = null
name = minio-connector
tasks.max = 1
topics = [filesql1.dbo.files]
topics.regex =
transforms = []
value.converter = null
(org.apache.kafka.connect.runtime.SinkConnectorConfig) [StartAndStopExecutor-connect-1-3]
2020-05-17 07:48:00,079 INFO EnrichedConnectorConfig values:
config.action.reload = restart
connector.class = io.confluent.connect.s3.S3SinkConnector
errors.deadletterqueue.context.headers.enable = false
errors.deadletterqueue.topic.name =
errors.deadletterqueue.topic.replication.factor = 3
errors.log.enable = false
errors.log.include.messages = false
errors.retry.delay.max.ms = 60000
errors.retry.timeout = 0
errors.tolerance = none
header.converter = null
key.converter = null
name = minio-connector
tasks.max = 1
topics = [filesql1.dbo.files]
topics.regex =
transforms = []
value.converter = null
(org.apache.kafka.connect.runtime.ConnectorConfig$EnrichedConnectorConfig) [StartAndStopExecutor-connect-1-3]
2020-05-17 07:48:00,121 INFO TaskConfig values:
task.class = class io.confluent.connect.s3.S3SinkTask
(org.apache.kafka.connect.runtime.TaskConfig) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,124 INFO Instantiated task minio-connector-0 with version 5.5.0 of type io.confluent.connect.s3.S3SinkTask (org.apache.kafka.connect.runtime.Worker) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,125 INFO JsonConverterConfig values:
converter.type = key
decimal.format = BASE64
schemas.cache.size = 1000
schemas.enable = true
(org.apache.kafka.connect.json.JsonConverterConfig) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,125 INFO Set up the key converter class org.apache.kafka.connect.json.JsonConverter for task minio-connector-0 using the worker config (org.apache.kafka.connect.runtime.Worker) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,126 INFO JsonConverterConfig values:
converter.type = value
decimal.format = BASE64
schemas.cache.size = 1000
schemas.enable = true
(org.apache.kafka.connect.json.JsonConverterConfig) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,126 INFO Set up the value converter class org.apache.kafka.connect.json.JsonConverter for task minio-connector-0 using the worker config (org.apache.kafka.connect.runtime.Worker) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,127 INFO Set up the header converter class org.apache.kafka.connect.storage.SimpleHeaderConverter for task minio-connector-0 using the worker config (org.apache.kafka.connect.runtime.Worker) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,130 INFO Initializing: org.apache.kafka.connect.runtime.TransformationChain{} (org.apache.kafka.connect.runtime.Worker) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,131 INFO SinkConnectorConfig values:
config.action.reload = restart
connector.class = io.confluent.connect.s3.S3SinkConnector
errors.deadletterqueue.context.headers.enable = false
errors.deadletterqueue.topic.name =
errors.deadletterqueue.topic.replication.factor = 3
errors.log.enable = false
errors.log.include.messages = false
errors.retry.delay.max.ms = 60000
errors.retry.timeout = 0
errors.tolerance = none
header.converter = null
key.converter = null
name = minio-connector
tasks.max = 1
topics = [filesql1.dbo.files]
topics.regex =
transforms = []
value.converter = null
(org.apache.kafka.connect.runtime.SinkConnectorConfig) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,132 INFO EnrichedConnectorConfig values:
config.action.reload = restart
connector.class = io.confluent.connect.s3.S3SinkConnector
errors.deadletterqueue.context.headers.enable = false
errors.deadletterqueue.topic.name =
errors.deadletterqueue.topic.replication.factor = 3
errors.log.enable = false
errors.log.include.messages = false
errors.retry.delay.max.ms = 60000
errors.retry.timeout = 0
errors.tolerance = none
header.converter = null
key.converter = null
name = minio-connector
tasks.max = 1
topics = [filesql1.dbo.files]
topics.regex =
transforms = []
value.converter = null
(org.apache.kafka.connect.runtime.ConnectorConfig$EnrichedConnectorConfig) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,135 INFO ConsumerConfig values:
allow.auto.create.topics = true
auto.commit.interval.ms = 5000
auto.offset.reset = earliest
bootstrap.servers = [kafka-beytepe-kafka-bootstrap:9093]
check.crcs = true
client.dns.lookup = default
client.id = connector-consumer-minio-connector-0
client.rack =
connections.max.idle.ms = 540000
default.api.timeout.ms = 60000
enable.auto.commit = false
exclude.internal.topics = true
fetch.max.bytes = 52428800
fetch.max.wait.ms = 500
fetch.min.bytes = 1
group.id = connect-minio-connector
group.instance.id = null
heartbeat.interval.ms = 3000
interceptor.classes = []
internal.leave.group.on.close = true
isolation.level = read_uncommitted
key.deserializer = class org.apache.kafka.common.serialization.ByteArrayDeserializer
max.partition.fetch.bytes = 1048576
max.poll.interval.ms = 300000
max.poll.records = 500
metadata.max.age.ms = 300000
metric.reporters = []
metrics.num.samples = 2
metrics.recording.level = INFO
metrics.sample.window.ms = 30000
partition.assignment.strategy = [class org.apache.kafka.clients.consumer.RangeAssignor]
receive.buffer.bytes = 65536
reconnect.backoff.max.ms = 1000
reconnect.backoff.ms = 50
request.timeout.ms = 30000
retry.backoff.ms = 100
sasl.client.callback.handler.class = null
sasl.jaas.config = null
sasl.kerberos.kinit.cmd = /usr/bin/kinit
sasl.kerberos.min.time.before.relogin = 60000
sasl.kerberos.service.name = null
sasl.kerberos.ticket.renew.jitter = 0.05
sasl.kerberos.ticket.renew.window.factor = 0.8
sasl.login.callback.handler.class = null
sasl.login.class = null
sasl.login.refresh.buffer.seconds = 300
sasl.login.refresh.min.period.seconds = 60
sasl.login.refresh.window.factor = 0.8
sasl.login.refresh.window.jitter = 0.05
sasl.mechanism = GSSAPI
security.protocol = SSL
security.providers = null
send.buffer.bytes = 131072
session.timeout.ms = 10000
ssl.cipher.suites = null
ssl.enabled.protocols = [TLSv1.2]
ssl.endpoint.identification.algorithm = https
ssl.key.password = null
ssl.keymanager.algorithm = SunX509
ssl.keystore.location = null
ssl.keystore.password = null
ssl.keystore.type = JKS
ssl.protocol = TLSv1.2
ssl.provider = null
ssl.secure.random.implementation = null
ssl.trustmanager.algorithm = PKIX
ssl.truststore.location = /tmp/kafka/cluster.truststore.p12
ssl.truststore.password = [hidden]
ssl.truststore.type = JKS
value.deserializer = class org.apache.kafka.common.serialization.ByteArrayDeserializer
(org.apache.kafka.clients.consumer.ConsumerConfig) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,425 WARN The configuration 'offset.flush.timeout.ms' was supplied but isn't a known config. (org.apache.kafka.clients.consumer.ConsumerConfig) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,425 WARN The configuration 'max.request.size' was supplied but isn't a known config. (org.apache.kafka.clients.consumer.ConsumerConfig) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,425 INFO Kafka version: 2.5.0 (org.apache.kafka.common.utils.AppInfoParser) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,425 INFO Kafka commitId: 66563e712b0b9f84 (org.apache.kafka.common.utils.AppInfoParser) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,425 INFO Kafka startTimeMs: 1589701680425 (org.apache.kafka.common.utils.AppInfoParser) [StartAndStopExecutor-connect-1-4]
2020-05-17 07:48:00,445 INFO [Worker clientId=connect-1, groupId=sql-minio-cluster] Finished starting connectors and tasks (org.apache.kafka.connect.runtime.distributed.DistributedHerder) [DistributedHerder-connect-1-1]
2020-05-17 07:48:00,465 INFO [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Subscribed to topic(s): filesql1.dbo.files (org.apache.kafka.clients.consumer.KafkaConsumer) [task-thread-minio-connector-0]
2020-05-17 07:48:00,470 INFO S3SinkConnectorConfig values:
avro.codec = null
aws.access.key.id =
aws.secret.access.key = [hidden]
behavior.on.null.values = fail
connect.meta.data = true
enhanced.avro.schema.support = false
filename.offset.zero.pad.width = 10
flush.size = 3
format.bytearray.extension = .bin
format.bytearray.separator = null
format.class = class io.confluent.connect.s3.format.avro.AvroFormat
parquet.codec = snappy
retry.backoff.ms = 5000
rotate.interval.ms = -1
rotate.schedule.interval.ms = -1
s3.acl.canned = null
s3.bucket.name = dosyalar
s3.compression.level = -1
s3.compression.type = none
s3.credentials.provider.class = class com.amazonaws.auth.DefaultAWSCredentialsProviderChain
s3.http.send.expect.continue = true
s3.object.tagging = false
s3.part.retries = 3
s3.part.size = 5242880
s3.proxy.password = [hidden]
s3.proxy.url =
s3.proxy.user = null
s3.region = us-west-2
s3.retry.backoff.ms = 200
s3.sse.customer.key = [hidden]
s3.sse.kms.key.id =
s3.ssea.name =
s3.wan.mode = false
schema.cache.size = 1000
schema.compatibility = NONE
shutdown.timeout.ms = 3000
(io.confluent.connect.s3.S3SinkConnectorConfig) [task-thread-minio-connector-0]
2020-05-17 07:48:00,474 INFO StorageCommonConfig values:
directory.delim = /
file.delim = +
storage.class = class io.confluent.connect.s3.storage.S3Storage
store.url = http://minio.dev-kik.io
topics.dir = topics
(io.confluent.connect.storage.common.StorageCommonConfig) [task-thread-minio-connector-0]
2020-05-17 07:48:00,483 INFO PartitionerConfig values:
locale =
partition.duration.ms = -1
partition.field.name = []
partitioner.class = class io.confluent.connect.storage.partitioner.DefaultPartitioner
path.format =
timestamp.extractor = Wallclock
timestamp.field = timestamp
timezone =
(io.confluent.connect.storage.partitioner.PartitionerConfig) [task-thread-minio-connector-0]
2020-05-17 07:48:00,881 INFO Returning new credentials provider based on the configured credentials provider class (io.confluent.connect.s3.storage.S3Storage) [task-thread-minio-connector-0]
2020-05-17 07:48:02,007 INFO AvroDataConfig values:
connect.meta.data = true
enhanced.avro.schema.support = false
schemas.cache.config = 1000
(io.confluent.connect.avro.AvroDataConfig) [task-thread-minio-connector-0]
2020-05-17 07:48:02,010 INFO Started S3 connector task with assigned partitions: [] (io.confluent.connect.s3.S3SinkTask) [task-thread-minio-connector-0]
2020-05-17 07:48:02,011 INFO WorkerSinkTask{id=minio-connector-0} Sink task finished initialization and start (org.apache.kafka.connect.runtime.WorkerSinkTask) [task-thread-minio-connector-0]
2020-05-17 07:48:03,684 WARN [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Error while fetching metadata with correlation id 2 : {filesql1.dbo.files=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient) [task-thread-minio-connector-0]
2020-05-17 07:48:03,685 INFO [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Cluster ID: jnExZIqQT0y3UUvA-wSrQg (org.apache.kafka.clients.Metadata) [task-thread-minio-connector-0]
2020-05-17 07:48:03,687 INFO [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Discovered group coordinator kafka-beytepe-kafka-2.kafka-beytepe-kafka-brokers.kafka.svc:9093 (id: 2147483645 rack: null) (org.apache.kafka.clients.consumer.internals.AbstractCoordinator) [task-thread-minio-connector-0]
2020-05-17 07:48:03,691 INFO [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] (Re-)joining group (org.apache.kafka.clients.consumer.internals.AbstractCoordinator) [task-thread-minio-connector-0]
2020-05-17 07:48:03,744 INFO [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Join group failed with org.apache.kafka.common.errors.MemberIdRequiredException: The group member needs to have a valid member id before actually entering a consumer group (org.apache.kafka.clients.consumer.internals.AbstractCoordinator) [task-thread-minio-connector-0]
2020-05-17 07:48:03,744 INFO [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] (Re-)joining group (org.apache.kafka.clients.consumer.internals.AbstractCoordinator) [task-thread-minio-connector-0]
2020-05-17 07:48:04,062 WARN [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Error while fetching metadata with correlation id 7 : {filesql1.dbo.files=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient) [task-thread-minio-connector-0]
2020-05-17 07:48:04,204 WARN [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Error while fetching metadata with correlation id 8 : {filesql1.dbo.files=LEADER_NOT_AVAILABLE} (org.apache.kafka.clients.NetworkClient) [task-thread-minio-connector-0]
2020-05-17 07:48:06,756 INFO [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Finished assignment for group at generation 1: {connector-consumer-minio-connector-0-5ebe1cc4-338c-46be-b636-2e8e1029a34c=Assignment(partitions=[filesql1.dbo.files-0])} (org.apache.kafka.clients.consumer.internals.ConsumerCoordinator) [task-thread-minio-connector-0]
2020-05-17 07:48:06,764 INFO [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Successfully joined group with generation 1 (org.apache.kafka.clients.consumer.internals.AbstractCoordinator) [task-thread-minio-connector-0]
2020-05-17 07:48:06,765 INFO [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Adding newly assigned partitions: filesql1.dbo.files-0 (org.apache.kafka.clients.consumer.internals.ConsumerCoordinator) [task-thread-minio-connector-0]
2020-05-17 07:48:06,774 INFO [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Found no committed offset for partition filesql1.dbo.files-0 (org.apache.kafka.clients.consumer.internals.ConsumerCoordinator) [task-thread-minio-connector-0]
2020-05-17 07:48:06,806 INFO [Consumer clientId=connector-consumer-minio-connector-0, groupId=connect-minio-connector] Resetting offset for partition filesql1.dbo.files-0 to offset 0. (org.apache.kafka.clients.consumer.internals.SubscriptionState) [task-thread-minio-connector-0]
2020-05-17 07:48:41,864 INFO WorkerSourceTask{id=mssql-files-connector-0} Committing offsets (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:48:41,867 INFO WorkerSourceTask{id=mssql-files-connector-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:49:41,868 INFO WorkerSourceTask{id=mssql-files-connector-0} Committing offsets (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:49:41,868 INFO WorkerSourceTask{id=mssql-files-connector-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:50:41,868 INFO WorkerSourceTask{id=mssql-files-connector-0} Committing offsets (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:50:41,869 INFO WorkerSourceTask{id=mssql-files-connector-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:51:41,869 INFO WorkerSourceTask{id=mssql-files-connector-0} Committing offsets (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:51:41,870 INFO WorkerSourceTask{id=mssql-files-connector-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:52:41,870 INFO WorkerSourceTask{id=mssql-files-connector-0} Committing offsets (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:52:41,871 INFO WorkerSourceTask{id=mssql-files-connector-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:53:41,871 INFO WorkerSourceTask{id=mssql-files-connector-0} Committing offsets (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:53:41,872 INFO WorkerSourceTask{id=mssql-files-connector-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:54:41,872 INFO WorkerSourceTask{id=mssql-files-connector-0} Committing offsets (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:54:41,872 INFO WorkerSourceTask{id=mssql-files-connector-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:55:41,873 INFO WorkerSourceTask{id=mssql-files-connector-0} Committing offsets (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
2020-05-17 07:55:41,873 INFO WorkerSourceTask{id=mssql-files-connector-0} flushing 0 outstanding messages for offset commit (org.apache.kafka.connect.runtime.WorkerSourceTask) [SourceTaskOffsetCommitter-1]
Please note that I don't have any on AWS.

Indices not rotated in SPHINX

I want to use 2 indexes (querys), but sphinx gives this warning:
[sphinx#reea3 ~]$ /usr/bin/indexer --config /home/sphinx/sphinx/sphinx.conf --all --rotate
Sphinx 0.9.9-release (r2117)
Copyright (c) 2001-2009, Andrew Aksyonoff
using config file '/home/sphinx/sphinx/sphinx.conf'...
indexing index 'job1'...
collected 6 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 6 docs, 837 bytes
total 0.005 sec, 152988 bytes/sec, 1096.69 docs/sec
indexing index 'job2'...
collected 8 docs, 0.0 MB
sorted 0.0 Mhits, 100.0% done
total 8 docs, 151 bytes
total 0.002 sec, 53794 bytes/sec, 2850.01 docs/sec
total 10 reads, 0.000 sec, 0.2 kb/call avg, 0.0 msec/call avg
total 20 writes, 0.000 sec, 0.3 kb/call avg, 0.0 msec/call avg
WARNING: failed to open pid_file '/var/run/sphinx/searchd.pid'.
WARNING: indices NOT rotated.
Below is the source code.
I have taken out the sql query and attribute list.
Whats to be done in order for SPHINX to rotate indices?
#
# Minimal Sphinx configuration sample (clean, simple, functional)
#
source jobSource1
{
type = mysql
sql_host = localhost
sql_user = root
# sql_pass = 123456
sql_pass =
sql_db = dbx
sql_port = 3306
sql_query = sql_query
sql_attr_uint = attributes go here
sql_attr_str2ordinal = attributes go here
}
source jobSource2
{
type = mysql
sql_host = localhost
sql_user = root
# sql_pass = 123456
sql_pass =
sql_db = dbx
sql_port = 3306
sql_query = sql_query
sql_attr_uint = attribute
sql_attr_str2ordinal = attribute
}
index job1
{
source = jobSource1
path = /home/sphinx/jobs/job1
docinfo = extern
charset_type = utf-8
}
index job2
{
source = jobSource2
path = /home/sphinx/jobs/job1
docinfo = extern
charset_type = utf-8
}
indexer
{
mem_limit = 32M
}
searchd
{
port = 9312
log = /var/log/sphinx/searchd.log
query_log = /var/log/sphinx/query.log
read_timeout = 5
max_children = 30
pid_file = /var/run/sphinx/searchd.pid
max_matches = 1000
seamless_rotate = 1
preopen_indexes = 0
unlink_old = 1
}
Actually, after a brainstorming seasion with my colleagues, we talked to the admins, and it turned out that the searchd process was initialized using the root priviledges, so only the root user could modify the file.
After restarting the process with the normal priviledges, everithing turned out to be working just fine;
use this command sudo indexer --rotate --all