Ceph BucketNotifications не отправляет сообщения в Kafka

У меня есть тестовый кластер ceph с тремя узлами, на первом узле которого установлено radosgw. ceph версия 14.2.6 (f0aa067ac7a02ee46ea48aa26c6e298b5ea272e9) nautilus (стабильная)

# cat /etc/ceph/ceph.conf
[global]
fsid = a204e3b5-b0e1-4598-aadc-f46011b562f0

mon_initial_members = ceph-test-01, ceph-test-02, ceph-test-03
mon_host = 172.19.19.252,172.19.19.251,172.19.19.244

auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

public network = 172.19.19.0/24

rgw_frontends = beast port=80

И брокер Apache Kafka для приема сообщений.

Я создал тему в соответствии с официальной документацией CEPH:

(https://docs.ceph.com/docs/master/radosgw/notifications/ ).

POST http://ceph-test-01/?Action=CreateTopic&Name=bucketnotifications&push-endpoint=kafka://kafka-test-01:9092 with S3 credentials
Response:
<CreateTopicResponse xmlns="https://sns.amazonaws.com/doc/2010-03-31/">
    <CreateTopicResult>
        <TopicArn>arn:aws:sns:us::bucketnotifications</TopicArn>
    </CreateTopicResult>
    <ResponseMetadata>
        <RequestId>14804357-9c29-437d-9789-c127e1c13d23.44108.275</RequestId>
    </ResponseMetadata>
</CreateTopicResponse>

Я создал корзину с именем new-bucket и проверил ее конфигурацию:

GET http://ceph-test-01/new-bucket?notification
Response:
<NotificationConfiguration>
    <TopicConfiguration>
        <Id>bucketnotifications</Id>
        <Topic>arn:aws:sns:us::bucketnotifications</Topic>
        <Event>s3:ObjectCreated:*</Event>
        <Event>s3:ObjectRemoved:*</Event>
    </TopicConfiguration>
</NotificationConfiguration>

Когда я добавляю или удаляю файлы в корзину, ceph не отправляет уведомления в тему Apache Kafka. Radosgw logs (включен режим отладки) содержит следующие строки:

2020-03-04 10:58:00.533 7f29a8da3700 20 notification: 'bucketnotifications' on topic: 'bucketnotifications' and bucket: 'new-bucket' (unique topic: 'bucketnotifications') apply to event of type: 's3:ObjectCreated:Put'
2020-03-04 10:58:00.533 7f29a8da3700  1 ERROR: failed to create push endpoint: kafka://kafka-test-01:9092 due to: pubsub endpoint configuration error: unknown schema in: kafka://kafka-test-01:9092
2020-03-04 10:58:00.533 7f29a8da3700  5 req 188 0.248s s3:put_obj WARNING: publishing notification failed, with error: -22

Но Apache Kafka не создает новых тем.


person fenhir    schedule 05.03.2020    source источник
comment
Удалить kafka://?   -  person OneCricketeer    schedule 05.03.2020
comment
@cricket_007 Думаю, kafka:// взято из документов CEPH, по какой причине нужно удалить этот префикс?   -  person Alex Sergeenko    schedule 10.03.2020
comment
@Alex прочитал ошибку unknown schema in: kafka://   -  person OneCricketeer    schedule 10.03.2020
comment
@cricket_007 cricket_007 Не работает и с удаленным kafka://, считая его конечной точкой http.   -  person Alex Sergeenko    schedule 11.03.2020
comment
@ Алекс, ты знаешь, есть ли для этого открытая проблема JIRA или github?   -  person OneCricketeer    schedule 11.03.2020
comment
@cricket_007, насколько я понимаю, никаких связанных с этим вопросов не открывается, по крайней мере, я их не нашел.   -  person Alex Sergeenko    schedule 12.03.2020
comment
Есть еще один момент, который следует учитывать. Мы рассмотрели rgw_pubsub_push.cc github.com/ceph/ceph/ blob/ исходный файл и обнаружил, что существует флаг WITH_RADOSGW_KAFKA_ENDPOINT. Сгенерированное исключение выглядит так же, как и в нашем случае: throw configuration_error("unknown schema in: " + endpoint);. Есть ли шанс, что мы используем сборку CEPH с отключенными конечными точками Kafka?   -  person Alex Sergeenko    schedule 12.03.2020
comment
@cricket_007 Вот проблема с трекером CEPH: tracker.ceph.com/issues/44436   -  person Alex Sergeenko    schedule 12.03.2020


Ответы (1)


Кажется, в выпусках nautilus есть ошибка, которую схема kafka не проверяет. Вы можете перейти на версию 15.2.0, поддерживающую эту схему, или дождаться обновления исправления ошибок в nautilus.

person Seena Fallah    schedule 25.03.2020