Compare languages | Модуль runtime-audit-engine: расширенная конфигурация

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

Enabling debugging logs

Falco

Falco

По умолчанию используется уровень логирования debug.

By default, the log level for Falco is set to debug.

Falcosidekick

Falcosidekick

По умолчанию отладочное логирование выключено в Falcosidekick.

By default, the debug logging for Falcosidekick is disabled.

Для включения отладочного логирования установите параметр spec.settings.debugLogging в true:

To enable debugging logging set the spec.settings.debugLogging parameter to true:

yaml apiVersion: deckhouse.io/v1alpha1 kind: ModuleConfig metadata: name: runtime-audit-engine spec: enabled: true settings: debugLogging: true

yaml apiVersion: deckhouse.io/v1alpha1 kind: ModuleConfig metadata: name: runtime-audit-engine spec: enabled: true settings: debugLogging: true

Просмотр метрик

Viewing metrics

Для получения метрик можно использовать PromQL-запрос falco_events{}:

You can use the PromQL query falco_events{} to get metrics:

shell kubectl -n d8-monitoring exec -it prometheus-main-0 prometheus –
curl -s http://127.0.0.1:9090/api/v1/query\?query=falco_events | jq

shell kubectl -n d8-monitoring exec -it prometheus-main-0 prometheus –
curl -s http://127.0.0.1:9090/api/v1/query\?query=falco_events | jq

В будущем мы добавим Grafana dashboard для просмотра метрик.

We will add Grafana dashboard in the future for viewing metrics.

Эмуляция события Falco

Emulating a Falco event

Вы можете использовать утилиту event-generator для генерации событий Falco.

You can use the event-generator CLI utility to generate a Falco events.

event-generator может генерировать различные подозрительные действия (syscalls, k8s audit events и др.).

event-generator can generate a variety of suspect actions(syscalls, k8s audit events, …).

Вы можете использовать следующую команду для запуска тестового набора событий в кластере Kubernetes:

Use the following command to run all events with the Pod in Kubernetes cluster:

shell kubectl run falco-event-generator –image=falcosecurity/event-generator run

shell kubectl run falco-event-generator –image=falcosecurity/event-generator run

Если вам нужно реализовать действие, воспользуйтесь руководством.

If you need to implement an action, use this guide.

Эмуляция события Falcosidekick

Emulating a Falcosidekick event

Вы можете использовать Falcosidekick /test HTTP endpoint для отправки тестового события во все включенные выходы.

You can use the Falcosidekick /test HTTP endpoint to send a test event to all enabled outputs.

  • Получите список подов в пространстве имен d8-runtime-audit-engine:
  • Get a list of Pods in d8-runtime-audit-engine namespace:

shell kubectl -n d8-runtime-audit-engine get pods

shell kubectl -n d8-runtime-audit-engine get pods

Пример вывода:

Example of the output:

text NAME READY STATUS RESTARTS AGE runtime-audit-engine-4cpjc 4/4 Running 0 3d12h runtime-audit-engine-rn7nj 4/4 Running 0 3d12h

text NAME READY STATUS RESTARTS AGE runtime-audit-engine-4cpjc 4/4 Running 0 3d12h runtime-audit-engine-rn7nj 4/4 Running 0 3d12h

  • Получите IP-адрес пода runtime-audit-engine-4cpjc:
  • Get runtime-audit-engine-4cpjc Pod IP address:

shell export POD_IP=$(kubectl -n d8-runtime-audit-engine get pod runtime-audit-engine-4cpjc –template ‘{{.status.podIP}}’)

shell export POD_IP=$(kubectl -n d8-runtime-audit-engine get pod runtime-audit-engine-4cpjc –template ‘{{.status.podIP}}’)

  • Создайте отладочное событие, выполнив запрос:
  • Create a debug event, by making a query:

shell kubectl run curl –image=curlimages/curl curl -X POST -H “Content-Type: application/json” -H “Accept: application/json” $POD_IP:2801/test

shell kubectl run curl –image=curlimages/curl curl -X POST -H “Content-Type: application/json” -H “Accept: application/json” $POD_IP:2801/test

  • Проверьте метрику отладочного события:
  • Check a debug event metric:

shell kubectl -n d8-monitoring exec -it prometheus-main-0 prometheus –
curl -s http://127.0.0.1:9090/api/v1/query\?query=falco_events | jq

shell kubectl -n d8-monitoring exec -it prometheus-main-0 prometheus –
curl -s http://127.0.0.1:9090/api/v1/query\?query=falco_events | jq

  • Пример вывода:
  • Example of the output part:

json { “metric”: { “name”: “falco_events”, “container”: “kube-rbac-proxy”, “instance”: “192.168.199.60:4212”, “job”: “runtime-audit-engine”, “node”: “dev-master-0”, “priority”: “Debug”, “rule”: “Test rule”, “tier”: “cluster” }, “value”: [ 1687150913.828, “2” ] }

json { “metric”: { “name”: “falco_events”, “container”: “kube-rbac-proxy”, “instance”: “192.168.199.60:4212”, “job”: “runtime-audit-engine”, “node”: “dev-master-0”, “priority”: “Debug”, “rule”: “Test rule”, “tier”: “cluster” }, “value”: [ 1687150913.828, “2” ] }