수집기 문제 해결
수집기 문제 해결
초록
1장. 수집기 로그 및 Pod 상태 검색 및 분석
문제 해결의 첫 번째 단계는 로그 및 Pod 상태를 검색하는 것입니다. 로그를 사용하면 오류의 근본 원인을 식별할 수 있습니다. 또한 Pod의 최신 상태를 검사하면 실패 메시지에 대한 정보를 제공할 수 있습니다.
1.1. 수집기 로그 검색
먼저 실패한 수집기에서 로그를 검사해야 합니다. 사용자 환경 및 액세스 권한에 따라 다음 두 가지 방법으로 로그를 얻을 수 있습니다.
1.1.1. oc
또는 kubectl
명령을 사용하여 로그 검색
oc
또는 kubectl
명령을 사용하여 실행 중인 수집기 Pod에서 로그를 가져올 수 있습니다. 선택적으로 현재 수집기 Pod가 다시 시작되면 이전 수집기 Pod의 로그를 확인할 수도 있습니다.
사전 요구 사항
Pod 및 로그를 나열할 권한이 있는지 확인합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc auth can-i get pods && oc auth can-i get pods --subresource=logs
$ oc auth can-i get pods && oc auth can-i get pods --subresource=logs
1 - 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
절차
app=collector
레이블이 있는 모든 Pod를 나열합니다.Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pods -n stackrox -l app=collector
$ oc get pods -n stackrox -l app=collector
1 - 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다.
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow collector-vclg5 1/2 CrashLoopBackOff 2 (25s ago) 2m41s+
collector-vclg5 1/2 CrashLoopBackOff 2 (25s ago) 2m41s+
수집기 Pod의 로그를 가져옵니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs -n stackrox <collector_pod_name> collector
$ oc logs -n stackrox <collector_pod_name> collector
1 - 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다. <collector_pod_name
>의 경우 수집기 Pod의 이름을 지정합니다(예:collector-vclg5
).
(선택 사항) 현재 수집기 Pod가 다시 시작되면 이전 수집기 Pod의 로그를 확인할 수 있습니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc logs -n stackrox <collector_pod_name> collector --previous
$ oc logs -n stackrox <collector_pod_name> collector --previous
1 - 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다. <collector_pod_name
>의 경우 수집기 Pod의 이름을 지정합니다(예:collector-vclg5
).
1.1.2. RHACS 진단 번들에서 로그 검색
RHACS(Red Hat Advanced Cluster Security for Kubernetes) 사용자 인터페이스에서 진단 번들을 다운로드하여 수집기 로그에 액세스할 수도 있습니다. 진단 번들을 다운로드한 후에는 모든 수집기 Pod의 로그를 검사할 수 있습니다. 자세한 내용은 진단 번들 생성을 참조하십시오.
1.2. 수집기 Pod 상태 분석
Pod의 최신 상태를 검사하는 것은 수집기 충돌의 원인을 확인하는 또 다른 쉬운 방법입니다. 실패 메시지는 최신 상태로 기록되며 kubectl describe pod
또는 oc describe pod
명령을 사용하여 액세스할 수 있습니다.
절차
수집기 Pod를 설명합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow oc describe pod -n stackrox <collector_pod_name>
$ oc describe pod -n stackrox <collector_pod_name>
1 - 1
- Kubernetes를 사용하는 경우
oc
대신kubectl
을 입력합니다. <collector_pod_name
>의 경우 수집기 Pod의 이름을 지정합니다(예:collector-vclg5
).
출력 예
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ... ...
# ... Last State: Terminated Reason: Error Message: No suitable kernel object downloaded
1 Exit Code: 1 Started: Fri, 21 Oct 2022 11:50:56 +0100 Finished: Fri, 21 Oct 2022 11:51:25 +0100 # ...
- 1
- 이 예제에서는 수집기가 커널 드라이버를 다운로드하지 못한 것을 확인할 수 있습니다.
2장. 일반적으로 발생하는 오류 상태
수집기를 시작할 때 대부분의 오류는 수집기를 시작하고 시스템의 커널 드라이버를 검색하거나 다운로드합니다.
다음 다이어그램에서는 수집기 시작 프로세스의 주요 부분을 설명합니다.
그림 2.1. 수집기 Pod 시작 프로세스

시작 프로세스의 일부가 실패하면 로그에 성공하거나 실패한 단계를 자세히 설명하는 진단 요약이 표시됩니다.
다음 로그 파일 예제에서는 성공적인 시작을 보여줍니다.
[INFO 2022/11/28 13:21:55] == Collector Startup Diagnostics: == [INFO 2022/11/28 13:21:55] Connected to Sensor? true [INFO 2022/11/28 13:21:55] Kernel driver available? true [INFO 2022/11/28 13:21:55] Driver loaded into kernel? true [INFO 2022/11/28 13:21:55] ====================================
[INFO 2022/11/28 13:21:55] == Collector Startup Diagnostics: ==
[INFO 2022/11/28 13:21:55] Connected to Sensor? true
[INFO 2022/11/28 13:21:55] Kernel driver available? true
[INFO 2022/11/28 13:21:55] Driver loaded into kernel? true
[INFO 2022/11/28 13:21:55] ====================================
로그 출력은 센서에 연결되어 있고 커널 드라이버를 로드하고 로드한 수집기를 확인합니다. 이 로그를 사용하여 수집기의 성공적인 시작을 확인할 수 있습니다.
2.1. 센서에 연결할 수 없음
시작할 때 먼저 센서에 연결할 수 있는지 확인하십시오. 센서는 네트워크 이벤트를 처리하기 위한 커널 드라이버 및 CIDR 블록을 다운로드하여 시작 프로세스의 필수 부분입니다. 다음 로그는 센서에 연결할 수 없음을 나타냅니다.
Collector Version: 3.15.0 OS: Ubuntu 20.04.4 LTS Kernel Version: 5.4.0-126-generic Starting StackRox Collector... [INFO 2023/05/13 12:20:43] Hostname: 'hostname' [...] [INFO 2023/05/13 12:20:43] Sensor configured at address: sensor.stackrox.svc:9998 [INFO 2023/05/13 12:20:43] Attempting to connect to Sensor [INFO 2023/05/13 12:21:13] [INFO 2023/05/13 12:21:13] == Collector Startup Diagnostics: == [INFO 2023/05/13 12:21:13] Connected to Sensor? false [INFO 2023/05/13 12:21:13] Kernel driver candidates: [INFO 2023/05/13 12:21:13] ==================================== [INFO 2023/05/13 12:21:13] [FATAL 2023/05/13 12:21:13] Unable to connect to Sensor.
Collector Version: 3.15.0
OS: Ubuntu 20.04.4 LTS
Kernel Version: 5.4.0-126-generic
Starting StackRox Collector...
[INFO 2023/05/13 12:20:43] Hostname: 'hostname'
[...]
[INFO 2023/05/13 12:20:43] Sensor configured at address: sensor.stackrox.svc:9998
[INFO 2023/05/13 12:20:43] Attempting to connect to Sensor
[INFO 2023/05/13 12:21:13]
[INFO 2023/05/13 12:21:13] == Collector Startup Diagnostics: ==
[INFO 2023/05/13 12:21:13] Connected to Sensor? false
[INFO 2023/05/13 12:21:13] Kernel driver candidates:
[INFO 2023/05/13 12:21:13] ====================================
[INFO 2023/05/13 12:21:13]
[FATAL 2023/05/13 12:21:13] Unable to connect to Sensor.
이 오류는 센서가 올바르게 시작되지 않았거나 수집기 구성이 올바르지 않음을 의미할 수 있습니다. 이 문제를 해결하려면 수집기 구성을 확인하여 센서 주소가 올바르며 센서 Pod가 올바르게 실행되고 있는지 확인해야 합니다.
구성된 센서 주소를 구체적으로 확인하려면 수집기 로그를 확인합니다. 또는 다음 명령을 실행할 수 있습니다.
kubectl -n stackrox get pod <collector_pod_name> -o jsonpath='{.spec.containers[0].env[?(@.name=="GRPC_SERVER")].value}'
$ kubectl -n stackrox get pod <collector_pod_name> -o jsonpath='{.spec.containers[0].env[?(@.name=="GRPC_SERVER")].value}'
- 1
- &
lt;collector_pod_name
>의 경우 수집기 Pod의 이름을 지정합니다(예:collector-vclg5
).
2.3. 커널 드라이버 로드 실패
수집기가 시작되기 전에 커널 드라이버를 로드합니다. 그러나 드문 경우지만 수집기가 커널 드라이버를 로드할 수 없는 문제가 발생하여 다양한 오류 메시지 또는 예외가 발생할 수 있습니다. 이러한 경우 로그를 확인하여 커널 드라이버 로드 시 실패와 관련된 문제를 식별해야 합니다.
다음 수집기 로그를 고려하십시오.
[INFO 2023/05/13 14:25:13] Hostname: 'hostname' [...] [INFO 2023/05/13 14:25:13] Successfully downloaded and decompressed /module/collector.o [INFO 2023/05/13 14:25:13] [INFO 2023/05/13 14:25:13] This product uses ebpf subcomponents licensed under the GNU [INFO 2023/05/13 14:25:13] GENERAL PURPOSE LICENSE Version 2 outlined in the /kernel-modules/LICENSE file. [INFO 2023/05/13 14:25:13] Source code for the ebpf subcomponents is available at [INFO 2023/05/13 14:25:13] https://github.com/stackrox/falcosecurity-libs/ [INFO 2023/05/13 14:25:13] -- BEGIN PROG LOAD LOG -- [...] -- END PROG LOAD LOG -- [WARNING 2023/05/13 14:25:13] libscap: bpf_load_program() event=tracepoint/syscalls/sys_enter_chdir: Operation not permitted [ERROR 2023/05/13 14:25:13] Failed to setup collector-ebpf-6.2.0-20-generic.o [ERROR 2023/05/13 14:25:13] Failed to initialize collector kernel components. [INFO 2023/05/13 14:25:13] [INFO 2023/05/13 14:25:13] == Collector Startup Diagnostics: == [INFO 2023/05/13 14:25:13] Connected to Sensor? true [INFO 2023/05/13 14:25:13] Kernel driver candidates: [INFO 2023/05/13 14:25:13] collector-ebpf-6.2.0-20-generic.o (available) [INFO 2023/05/13 14:25:13] ==================================== [INFO 2023/05/13 14:25:13] [FATAL 2023/05/13 14:25:13] Failed to initialize collector kernel components.
[INFO 2023/05/13 14:25:13] Hostname: 'hostname'
[...]
[INFO 2023/05/13 14:25:13] Successfully downloaded and decompressed /module/collector.o
[INFO 2023/05/13 14:25:13]
[INFO 2023/05/13 14:25:13] This product uses ebpf subcomponents licensed under the GNU
[INFO 2023/05/13 14:25:13] GENERAL PURPOSE LICENSE Version 2 outlined in the /kernel-modules/LICENSE file.
[INFO 2023/05/13 14:25:13] Source code for the ebpf subcomponents is available at
[INFO 2023/05/13 14:25:13] https://github.com/stackrox/falcosecurity-libs/
[INFO 2023/05/13 14:25:13]
-- BEGIN PROG LOAD LOG --
[...]
-- END PROG LOAD LOG --
[WARNING 2023/05/13 14:25:13] libscap: bpf_load_program() event=tracepoint/syscalls/sys_enter_chdir: Operation not permitted
[ERROR 2023/05/13 14:25:13] Failed to setup collector-ebpf-6.2.0-20-generic.o
[ERROR 2023/05/13 14:25:13] Failed to initialize collector kernel components.
[INFO 2023/05/13 14:25:13]
[INFO 2023/05/13 14:25:13] == Collector Startup Diagnostics: ==
[INFO 2023/05/13 14:25:13] Connected to Sensor? true
[INFO 2023/05/13 14:25:13] Kernel driver candidates:
[INFO 2023/05/13 14:25:13] collector-ebpf-6.2.0-20-generic.o (available)
[INFO 2023/05/13 14:25:13] ====================================
[INFO 2023/05/13 14:25:13]
[FATAL 2023/05/13 14:25:13] Failed to initialize collector kernel components.
이러한 종류의 오류가 발생하면 직접 수정할 수 없습니다. 대신 RHACS(Red Hat Advanced Cluster Security for Kubernetes) 지원 팀에 보고하거나 GitHub 문제를 생성합니다.