Fluentd
Примечание
Вы можете создать триггер, который будет запускать функцию Cloud Functions или контейнер Serverless Containers при отправке данных в поток. Подробнее о триггере для Data Streams.
-
Скачайте и установите Fluentd
. -
Установите плагин Fluentd для поддержки протокола AWS Kinesis Data Streams. По этому протоколу будет осуществляться поставка данных.
sudo td-agent-gem install fluent-plugin-kinesis
-
В консоли управления
выберите каталог, в котором находится поток данных. -
Выберите сервис Data Streams.
-
Выберите поток данных.
-
Нажмите Подключиться и перейдите на вкладку Fluentd.
-
Скопируйте пример файла конфигурации и вставьте его в файл
/etc/td-agent/td-agent.conf
.Пример файла конфигурации:
<system> log_level debug </system> <source> @type http @id input_http port 8888 </source> <match kinesis> @type copy <store> @type stdout </store> <store> @type kinesis_streams aws_key_id <идентификатор_ключа_доступа> aws_sec_key <секретный_ключ> # kinesis stream name stream_name /ru-central1/aoegtvhtp8ob********/cc8004q4lbo6********/test # region region ru-central-1 endpoint https://yds.serverless.yandexcloud.net <buffer> flush_interval 5s </buffer> </store> </match>
Где:
<идентификатор_ключа_доступа>
— идентификатор статического ключа доступа.<секретный_ключ>
— секретная часть статического ключа доступа.
-
Отправьте тестовые данные в Fluentd:
curl \ --request POST \ --data 'json={"user_id":"user1", "score": 100}' \ http://localhost:8888/kinesis
Если настройка выполнена успешно, в логе работы Fluentd
/var/log/td-agent/td-agent.log
появится сообщение о получении данных и отправке их в Yandex Data Streams по протоколу AWS Kinesis Data Streams:kinesis: {"json":"message"} DEBUG -- : [Aws::Kinesis::Client 200 0.628973 0 retries] put_records(stream_name:"/ru-central1/aoeu1kuk2dht********/cc8029jgtuab********/fluentd_stream",records:[{data:"{\"message\":\"Write chunk 5c0cf5c556654e99cac84*********** / 2 records / 0 KB\"}\n",partition_key:"6ec03a4e3ba832c85e802***********"},{data:"{\"message\":\"Finish writing chunk\"}\n",partition_key:"8ada32f7373e1ab4c48fb***********"},{data:"{\"json\":\"message\"}\n",partition_key:"70f21f2decfc90b6f1975***********"}])