Включение логов для отладки

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}