← Cloudflare One / cloudflare-one / insights / logs / logpush
Фильтры журналов Network Firewall
Вы можете применить Фильтры журнала в задание Logpush, чтобы экспортировать только определённые события Cloudflare Network Firewall. Примеры ниже показывают типичные конфигурации фильтров с использованием Logpush API. Каждый фильтр использует структуру JSON с where условия, содержащие key (поле журнала, по которому выполняется фильтрация), operator (сравнение, например eq для равенства или !eq для «не равно»), а value (значение для сравнения).
Фильтры в этом руководстве используют следующие поля журнала:
MitigationSystem: Определяет, какая система Cloudflare сделала выборку пакета. Для событий Network Firewall это значение равноmagic-firewall.RulesetID: Уникальный идентификатор управляемого набора правил, содержащего правило, соответствующее пакету, если таковой есть. Пустая строка означает, что ни один управляемый набор правил не совпал.Outcome: Действие, которое системы Cloudflare предприняли в отношении пакета (passилиdrop).Verdict: Действие, которое системы Cloudflare определили как необходимое для пакета (passилиdrop). Для отключенных правилVerdictможет отличаться отOutcomeпотому что правило проверило пакет, но не применило указанное в нём действие.
Фильтруйте по включённым или отключённым правилам
Используйте приведённые ниже примеры фильтров, чтобы отфильтровать трафик Cloudflare Network Firewall и отобразить события для включённых или отключённых правил.
Приведённый ниже пример создаёт задание Logpush который отображает только поля, относящиеся к Cloudflare Network Firewall, и показывает только события для отключённых правил.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Logs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/logpush/jobs" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"destination_conf": "<DESTINATION_CONF>",
"output_options": {
"field_names": [
"ColoName",
"Datetime",
"Direction",
"IPDestinationAddress",
"IPDestinationSubnet",
"IPProtocol",
"IPSourceAddress",
"IPSourceSubnet",
"Outcome",
"RuleID",
"RulesetID",
"SampleInterval",
"Verdict"
]
},
"filter": "{\"where\":{\"or\":[{\"and\":[{\"key\":\"MitigationSystem\",\"operator\":\"eq\",\"value\":\"magic-firewall\"},{\"key\":\"RulesetID\",\"operator\":\"!eq\",\"value\":\"\"},{\"key\":\"Outcome\",\"operator\":\"eq\",\"value\":\"pass\"},{\"key\":\"Verdict\",\"operator\":\"eq\",\"value\":\"drop\"}]}]}}"
}'Приведённый ниже пример создаёт задание Logpush который отображает только поля, относящиеся к Cloudflare Network Firewall, и показывает только события для включённых правил.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Logs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/logpush/jobs" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"destination_conf": "<DESTINATION_CONF>",
"output_options": {
"field_names": [
"ColoName",
"Datetime",
"Direction",
"IPDestinationAddress",
"IPDestinationSubnet",
"IPProtocol",
"IPSourceAddress",
"IPSourceSubnet",
"Outcome",
"RuleID",
"RulesetID",
"SampleInterval",
"Verdict"
]
},
"filter": "{\"where\":{\"or\":[{\"and\":[{\"key\":\"MitigationSystem\",\"operator\":\"eq\",\"value\":\"magic-firewall\"},{\"key\":\"RulesetID\",\"operator\":\"!eq\",\"value\":\"\"},{\"or\":[{\"key\":\"Outcome\",\"operator\":\"eq\",\"value\":\"drop\"},{\"key\":\"Verdict\",\"operator\":\"eq\",\"value\":\"pass\"}]}]}]}}"
}'Фильтруйте по разрешённому или заблокированному трафику
Используйте приведённые ниже примеры фильтров, чтобы отфильтровать трафик Cloudflare Network Firewall и отобразить события для разрешённого или заблокированного трафика.
Приведённый ниже пример создаёт задание Logpush который отображает только поля, относящиеся к Cloudflare Network Firewall, и показывает только события, где не было выполнено ни одного явного действия: то есть пакет прошёл через брандмауэр, не совпав ни с одним правилом. По умолчанию Cloudflare Network Firewall пропускает трафик, не совпавший ни с одним правилом. Это обозначается пустым RulesetID.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Logs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/logpush/jobs" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"destination_conf": "<DESTINATION_CONF>",
"output_options": {
"field_names": [
"ColoName",
"Datetime",
"Direction",
"IPDestinationAddress",
"IPDestinationSubnet",
"IPProtocol",
"IPSourceAddress",
"IPSourceSubnet",
"Outcome",
"RuleID",
"RulesetID",
"SampleInterval",
"Verdict"
]
},
"filter": "{\"where\":{\"and\":[{\"key\":\"MitigationSystem\",\"operator\":\"eq\",\"value\":\"magic-firewall\"},{\"key\":\"RulesetID\",\"operator\":\"eq\",\"value\":\"\"}]}}"
}'Приведённый ниже пример создаёт задание Logpush который отображает только поля, относящиеся к Cloudflare Network Firewall, и показывает только события, где было выполнено явное действие. В примере показаны как включённые, так и отключённые правила Cloudflare Network Firewall.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Logs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/logpush/jobs" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"destination_conf": "<DESTINATION_CONF>",
"output_options": {
"field_names": [
"ColoName",
"Datetime",
"Direction",
"IPDestinationAddress",
"IPDestinationSubnet",
"IPProtocol",
"IPSourceAddress",
"IPSourceSubnet",
"Outcome",
"RuleID",
"RulesetID",
"SampleInterval",
"Verdict"
]
},
"filter": "{\"where\":{\"and\":[{\"key\":\"MitigationSystem\",\"operator\":\"eq\",\"value\":\"magic-firewall\"},{\"key\":\"RulesetID\",\"operator\":\"!eq\",\"value\":\"\"}]}}"
}'Фильтруйте только события Network Firewall
Если задание Logpush включает события из нескольких систем защиты Cloudflare, используйте приведенный ниже фильтр, чтобы оставить только события Cloudflare Network Firewall. Пример ниже создаёт задание Logpush которая фильтрует по MitigationSystem чтобы включить только трафик Network Firewall.
Необходимые разрешения API-токена
Хотя бы одно из следующих права доступа токена требуется:Logs Write
curl "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/logpush/jobs" \
--request POST \
--header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
--json '{
"destination_conf": "<DESTINATION_CONF>",
"output_options": {
"field_names": [
"ColoName",
"Datetime",
"Direction",
"IPDestinationAddress",
"IPDestinationSubnet",
"IPProtocol",
"IPSourceAddress",
"IPSourceSubnet",
"Outcome",
"RuleID",
"RulesetID",
"SampleInterval",
"Verdict"
]
},
"filter": "{\"where\":{\"key\":\"MitigationSystem\",\"operator\":\"eq\",\"value\":\"magic-firewall\"}}"
}'