Включение логов для отладки
Falco
По умолчанию используется уровень логирования debug
.
Falcosidekick
По умолчанию отладочное логирование выключено в Falcosidekick
.
Для включения отладочного логирования установите параметр spec.settings.debugLogging
в true
:
1apiVersion: deckhouse.io/v1alpha1
2kind: ModuleConfig
3metadata:
4 name: runtime-audit-engine
5spec:
6 enabled: true
7 settings:
8 debugLogging: true
Просмотр метрик
Для получения метрик можно использовать PromQL-запрос falco_events{}
:
1kubectl -n d8-monitoring exec -it prometheus-main-0 prometheus -- \
2 curl -s http://127.0.0.1:9090/api/v1/query\?query\=falco_events | jq
В будущем мы добавим Grafana dashboard для просмотра метрик.
Эмуляция события Falco
Вы можете использовать утилиту event-generator для генерации событий Falco.
event-generator
может генерировать различные подозрительные действия (syscalls, k8s audit events и др.).
Вы можете использовать следующую команду для запуска тестового набора событий в кластере Kubernetes:
1kubectl run falco-event-generator --image=falcosecurity/event-generator run
Если вам нужно реализовать действие, воспользуйтесь руководством.
Эмуляция события Falcosidekick
Вы можете использовать Falcosidekick /test
HTTP endpoint для отправки тестового события во все включенные выходы.
-
Получите список подов в пространстве имен
d8-runtime-audit-engine
:1kubectl -n d8-runtime-audit-engine get pods
Пример вывода:
1NAME READY STATUS RESTARTS AGE 2runtime-audit-engine-4cpjc 4/4 Running 0 3d12h 3runtime-audit-engine-rn7nj 4/4 Running 0 3d12h
-
Получите IP-адрес пода
runtime-audit-engine-4cpjc
:1export POD_IP=$(kubectl -n d8-runtime-audit-engine get pod runtime-audit-engine-4cpjc --template '{{.status.podIP}}')
-
Создайте отладочное событие, выполнив запрос:
1kubectl run curl --image=curlimages/curl curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" $POD_IP:2801/test
-
Проверьте метрику отладочного события:
1kubectl -n d8-monitoring exec -it prometheus-main-0 prometheus -- \ 2 curl -s http://127.0.0.1:9090/api/v1/query\?query\=falco_events | jq
-
Пример вывода:
1{ 2 "metric": { 3 "__name__": "falco_events", 4 "container": "kube-rbac-proxy", 5 "instance": "192.168.199.60:4212", 6 "job": "runtime-audit-engine", 7 "node": "dev-master-0", 8 "priority": "Debug", 9 "rule": "Test rule", 10 "tier": "cluster" 11 }, 12 "value": [ 13 1687150913.828, 14 "2" 15 ] 16}