Отправка логов с Cloudflare
Отправка логов с Cloudflare
Cloudflare Logpush поддерживает отправку логов напрямую в Ключ-АСТРОМ. Настроить Logpush можно через панель управления Cloudflare или через API.
Предварительные требования
Перед настройкой Cloudflare Logpush необходимо следующее:
- Токен API Ключ-АСТРОМ с областью действия
logs.ingest. Подробнее о токенах, их создании и областях действия см. в разделе API Ключ-АСТРОМ — Токены и аутентификация. - Базовый URL для приёма логов Ключ-АСТРОМ по HTTP. Пример базового URL:
https://abc123.live.astromkey.com. Требуется только при настройке Logpush через API. - Роль Cloudflare с разрешениями на редактирование Log Share. Подробнее см. в разделе Роли.
Шаги
Настройте Logpush либо через панель управления Cloudflare, либо через API. Назначение API Ключ-АСТРОМ может быть несовместимо со старыми задачами.
- Если вы планируете отправлять логи напрямую в Ключ-АСТРОМ, рекомендуется создать новую задачу, а не изменять существующую.
- При попытке изменить назначение в существующей задаче могут возникнуть ошибки.
Настройка через панель управления Cloudflare
1. Создание задачи Logpush
Войдите в панель управления Cloudflare. Выберите корпоративную учётную запись или домен/зону, которую хотите использовать с Logpush.
- Учётная запись: у вас есть доступ к наборам данных уровня учётной записи.
- Домен/зона: у вас есть доступ к наборам данных уровня зоны.
Перейдите в раздел Аналитика и логи > Logpush. Выберите Создать задачу Logpush.
2. Определение конечной точки API Ключ-АСТРОМ
Оставаясь в панели управления Cloudflare, выберите набор данных, который хотите отправить в сервис хранения. В разделе Выберите назначение выберите HTTP Destination (или Ключ-АСТРОМ, если доступно). Введите данные назначения: конечную точку API приёма логов Ключ-АСТРОМ по HTTP для вашей среды, с токеном API Ключ-АСТРОМ и необходимыми заголовками, переданными в качестве параметров запроса. Пример назначения:
https://<YOUR_ASTROMKEY_ENVIRONMENT>.live.astromkey.com/api/v2/logs/ingest?header_Authorization=Api-Token%20<ASTROMKEY_API_TOKEN>&header_accept=application/json&header_content-type=application/json&dt.ingest.origin=cloudflare
Выберите Продолжить.
3. Настройка задачи Logpush
Оставаясь в панели управления Cloudflare, выберите набор данных, который хотите отправить в сервис хранения. Настройте задачу Logpush.
- Имя задачи: введите имя на свой выбор.
- Если логи соответствуют: выберите события, которые должны быть включены или исключены из загружаемых логов. Эта опция доступна не для всех наборов данных. Подробнее см. в разделе Фильтры.
- Отправлять следующие поля: выберите, какие логи отправлять — все или только определённые поля.
- Дополнительные параметры:
- Выберите формат временной метки в логах. Доступны варианты: RFC3339 (по умолчанию), Unix или UnixNano.
- Выберите определённую частоту выборки или отправляйте случайно выбранный процент логов. Подробнее см. в разделе Частота выборки.
- Включите редактирование для CVE-2021-44228. Это заменит все вхождения
${наx{.
После завершения настройки задачи выберите Отправить.
Настройка через API
1. Создание задачи
Чтобы создать задачу, выполните POST-запрос к конечной точке задач Logpush. Пример запроса с использованием cURL:
$ curl -s https://api.cloudflare.com/client/v4/zones/<ZONE_TAG>/logpush/jobs -X POST \
-H "X-Auth-Email: <CLOUDFLARE_EMAIL>" \
-H "X-Auth-Key: <CLOUDFLARE_API_KEY>" \
-d '{
"name": "astromkey",
"logpull_options": "fields=ClientIP,EdgeStartTimestamp,EdgeResponseStatus,EdgeResponseBytes,ClientRequestURI,ClientRequestHost,ClientRequestMethod,ClientRequestPath×tamps=rfc3339",
"destination_conf": "https://<ASTROMKEY_BASE_URL>/api/v2/logs/ingest?header_Authorization=Api-Token%20<ASTROMKEY_API_TOKEN>&header_accept=application/json&header_content-type=application/json&dt.ingest.origin=cloudflare",
"dataset": "http_requests",
"enabled": true,
"output_options": {
"output_type": "ndjson",
"batch_prefix": "[",
"batch_suffix": "]",
"record_delimiter": ","
}
}'Замените следующие заполнители на соответствующие значения:
name: используйте имя вашего домена в качестве имени задачи. Необязательно.destination_conf: конечная точка API приёма логов Ключ-АСТРОМ по HTTP для вашей среды, с токеном API Ключ-АСТРОМ и необходимыми заголовками, переданными в качестве параметров запроса.<ZONE_TAG>: шестнадцатеричный идентификатор, доступный в Cloudflare.<CLOUDFLARE_EMAIL>: адрес электронной почты Cloudflare.<CLOUDFLARE_API_KEY>: ключ API Cloudflare.<CLOUDFLARE_BASIC_AUTHORIZATION>: ключ авторизации Cloudflare.<ASTROMKEY_BASE_URL>: конечная точка приёма логов Ключ-АСТРОМ по HTTP для вашей среды, как описано в разделе Предварительные требования.<ASTROMKEY_API_TOKEN>: токен API с областью действияlogs.ingest, как описано в разделе Предварительные требования.dataset: категория логов, которую вы хотите получать. Полный список поддерживаемых наборов данных см. в разделе Наборы данных.output_options: настройте поля, частоту выборки и формат временной метки. Необязательно.
Пример ответа JSON:
{
"errors": [],
"messages": [],
"result": {
"id": <JOB_ID>,
"dataset": "http_requests",
"enabled": false,
"name": "<DOMAIN_NAME>",
"output_options": {
"field_names": [
"ClientIP",
"ClientRequestHost",
"ClientRequestMethod",
"ClientRequestURI",
"ClientRequestPath",
"EdgeEndTimestamp",
"EdgeResponseBytes",
"EdgeResponseStatus",
"EdgeStartTimestamp",
"RayID"
],
"timestamp_format": "rfc3339"
},
"destination_conf": "https://<ASTROMKEY_BASE_URL>/api/v2/logs/ingest?header_Authorization=Api-Token%20<ASTROMKEY_API_TOKEN>&header_accept=application/json&header_content-type=application/json&dt.ingest.origin=cloudflare",
"last_complete": null,
"last_error": null,
"error_message": null
},
"success": true
}
2. Включение задачи
Чтобы включить задачу, выполните PUT-запрос к конечной точке задач Logpush. Пример запроса с использованием cURL:
- Используйте
<JOB_ID>из ответа JSON, как показано в разделе Создание задачи. - Отправьте
{"enabled": true}в теле запроса.
$ curl --request PUT \
https://api.cloudflare.com/client/v4/zones/{ZONE_ID}/logpush/jobs/{JOB_ID} \
--header "X-Auth-Email: <CLOUDFLARE_EMAIL>" \
--header "X-Auth-Key: <CLOUDFLARE_API_KEY>" \
--header "Content-Type: application/json" \
--data '{
"enabled": true
}'Пример ответа JSON:
{
"errors": [],
"messages": [],
"result": {
"id": <JOB_ID>,
"dataset": "http_requests",
"enabled": true,
"name": "<DOMAIN_NAME>",
"output_options": {
"field_names": [
"ClientIP",
"ClientRequestHost",
"ClientRequestMethod",
"ClientRequestURI",
"ClientRequestPath",
"EdgeEndTimestamp",
"EdgeResponseBytes",
"EdgeResponseStatus",
"EdgeStartTimestamp",
"RayID"
],
"timestamp_format": "rfc3339"
},
"destination_conf": "https://<YOUR_ASTROMKEY_ENVIRONMENT>.live.astromkey.com/api/v2/logs/ingest?header_Authorization=Api-Token%20<ASTROMKEY_API_TOKEN>&header_accept=application/json&header_content-type=application/json&dt.ingest.origin=cloudflare",
"last_error": null,
"error_message": null
},
"success": true
}