Отправка логов с Cloudflare

Материал из Документация Ключ-АСТРОМ
Версия от 17:42, 6 октября 2026; IKuznetsov (обсуждение | вклад) (Новая страница: « = Отправка логов с Cloudflare = '''Cloudflare Logpush''' поддерживает отправку логов напрямую в Ключ-АСТРОМ. Настроить '''Logpush''' можно через панель управления Cloudflare или через '''API'''. == Предварительные требования == Перед настройкой '''Cloudflare Logpush''' необходимо следующее: * '''Т...»)
(разн.) ← Предыдущая версия | Текущая версия (разн.) | Следующая версия → (разн.)

Отправка логов с 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&timestamps=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
}