Compare languages | The runtime-audit-engine module: advanced usage

Enabling debugging logs

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

Falco

Falco

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

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

Falcosidekick

Falcosidekick

By default, the debug logging for Falcosidekick is disabled.

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

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

Для включения отладочного логирования установите параметр spec.settings.debugLogging в 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

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

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

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

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

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

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

Emulating a Falco event

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

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

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

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

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

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

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

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.

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

Emulating a Falcosidekick event

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

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

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

  • Get a list of Pods in d8-runtime-audit-engine namespace: shell kubectl -n d8-runtime-audit-engine get pods

Example of the output:

  • Получите список подов в пространстве имен d8-runtime-audit-engine:

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

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

  • 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}}’)

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

  • Create a debug event, by making a query:
  • Получите IP-адрес пода runtime-audit-engine-4cpjc:

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 export POD_IP=$(kubectl -n d8-runtime-audit-engine get pod runtime-audit-engine-4cpjc –template ‘{{.status.podIP}}’)

  • Example of the output part: json { “metric”: { “name”: “falco_events”, “container”: “kube-rbac-proxy”, “instance”: “192.168.199.60:8766”, “job”: “runtime-audit-engine”, “node”: “dev-master-0”, “priority”: “Debug”, “rule”: “Test rule”, “tier”: “cluster” }, “value”: [ 1687150913.828, “2” ] }
  • Создайте отладочное событие, выполнив запрос:

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 -n d8-monitoring exec -it prometheus-main-0 prometheus –
curl -s http://127.0.0.1:9090/api/v1/query\?query=falco_events | jq

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

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