← Cloudflare Logs / logs / logpush / logpush-job / enable-destinations
Включите HTTP-назначение
Теперь Cloudflare Logpush поддерживает отправку журналов на настраиваемые HTTP-эндпойнты.
Обратите внимание, что при использовании Logpush для отправки в конечные точки HTTP клиентам Cloudflare необходимо самостоятельно настраивать аутентификацию отправляемых журналов. Например, клиент может указать секретный токен в URL-адресе или в заголовке HTTP получателя Logpush.
Управление через панель управления Cloudflare
-
На панели управления Cloudflare перейдите к разделу Logpush на уровне аккаунта или домена (также называемого зоной).
Для аккаунта: Перейдите в Logpush ↗
Для домена (также называемого зоной): Перейдите в Logpush ↗
-
В зависимости от выбора вам доступны наборы данных уровня аккаунта и наборы данных, привязанные к зоне, соответственно.
-
Выберите Создание задания Logpush.
-
В Выберите пункт назначения, выберите Назначение HTTP.
-
Введите конечная точка HTTP куда нужно отправлять логи, и выберите Продолжение. - Вы можете использовать
"header_*"параметры URL для установки заголовков запроса, например, для передачи токена аутентификации на вашу конечную точку HTTP. -
Выберите набор данных для отправки в хранилище.
-
На следующем шаге настройте задание Logpush:
- Введите Название задания.
- В разделе Если журналы соответствуют, вы можете выбрать, какие события включить в журналы или исключить из них. См. Фильтры с дополнительной информацией. Эта опция доступна не для всех наборов данных.
- В Отправьте следующие поля, вы можете либо отправлять в хранилище назначения все журналы, либо выбирать, какие журналы отправлять.
-
В Advanced Options, вы можете:
- Выберите формат полей отметки времени в своих журналах (
RFC3339(по умолчанию),Unix, илиUnixNano). - Выберите частота сэмплирования для ваших журналов или отправлять случайно выбранный процент журналов.
- Включите скрытие данных для
CVE-2021-44228. Эта опция заменит каждое вхождение${сx{.
- Выберите формат полей отметки времени в своих журналах (
-
Выберите Отправить после того как настройка задания Logpush завершена.
Управление через API
Чтобы создать задание Logpush, выполните POST запрос к URL эндпойнта для создания задания Logpush с соответствующими параметрами.
Поддерживаются следующие параметры:
- Поля, не изменившиеся по сравнению с другими источниками:
- dataset (обязательно): Например,
http_requests. - имя (необязательно): Рекомендуем использовать имя своего домена в качестве имени задания.
- output_options (необязательно): См. Параметры вывода журнала для настройки полей, частоты дискретизации и формата метки времени.
- dataset (обязательно): Например,
- Уникальные поля:
- destination_conf: Куда отправлять логи. Складывается из URL-адреса конечной точки и используемых HTTP-заголовков.
- Любой
"header_*"параметры URL будут использоваться для установки заголовков запроса.- Конечная точка HTTPS не может содержать настраиваемые параметры URL, конфликтующие с
"header_*"параметры URL, которые вы задали. - Эти параметры должны быть правильно закодированы для URL (то есть используйте
"%20"для пробела), иначе некоторые специальные символы могут быть декодированы неверно.
- Конечная точка HTTPS не может содержать настраиваемые параметры URL, конфликтующие с
destination_confмогут содержать дополнительные параметры URL помимо специальных"header_*"параметров.- Специальные символы, не закодированные в формате URL, будут закодированы при загрузке.
- Пример:
https://logs.example.com?header_Authorization=Basic%20REDACTED&tags=host:theburritobot.com,dataset:http_requests
- Любой
- max_upload_bytes (необязательно): Максимальный несжатый размер файла пакета журналов. Значение этого параметра должно быть от 5 MB до 1 GB. Задать минимальный размер файла нельзя, поэтому файлы журналов могут быть значительно меньше этого размера пакета.
- max_upload_records (необязательно): Максимальное количество строк журнала на пакет. Значение этого параметра должно быть от 1,000 до 1,000,000 строк. Указать минимальное количество строк на пакет нельзя, поэтому файлы журналов могут содержать значительно меньше строк, чем эта величина.
- destination_conf: Куда отправлять логи. Складывается из URL-адреса конечной точки и используемых HTTP-заголовков.
Пример запроса с использованием cURL:
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Logs Write
curl "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/logpush/jobs" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"name": "<DOMAIN_NAME>",
"destination_conf": "https://logs.example.com?header_Authorization=Basic%20REDACTED&tags=host:theburritobot.com,dataset:http_requests",
"output_options": {
"field_names": [
"ClientIP",
"ClientRequestHost",
"ClientRequestMethod",
"ClientRequestURI",
"EdgeEndTimestamp",
"EdgeResponseBytes",
"EdgeResponseStatus",
"EdgeStartTimestamp",
"RayID"
],
"timestamp_format": "rfc3339"
},
"max_upload_bytes": 5000000,
"max_upload_records": 1000,
"dataset": "http_requests",
"enabled": true
}'Ответ:
{
"errors": [],
"messages": [],
"result": {
"id": <JOB_ID>,
"dataset": "http_requests",
"kind": "",
"max_upload_bytes": 5000000,
"max_upload_records": 1000,
"enabled": true,
"name": "<DOMAIN_NAME>",
"output_options": {
"field_names": ["ClientIP", "ClientRequestHost", "ClientRequestMethod", "ClientRequestURI", "EdgeEndTimestamp", "EdgeResponseBytes", "EdgeResponseStatus" ,"EdgeStartTimestamp", "RayID"],
"timestamp_format": "rfc3339"
},
"destination_conf": "https://logs.example.com?header_Authorization=Basic%20REDACTED&tags=host:theburritobot.com,dataset:http_requests",
"last_complete": null,
"last_error": null,
"error_message": null
},
"success": true
}См. Управлять Logpush с помощью cURL чтобы обновить задание (включая включение и отключение).