Polycube 기반 eBPF 큐브와 상호 작용하기 위한 Elastic Stack의 사용자 지정 Beat입니다.
이 폴더가 ${GOPATH}/src/gitlab.com/astrid-repositories/cubebeat
위치에 있는지 확인하세요.
mkdir -p ${GOPATH}/src/gitlab.com/astrid-repositories/
cd ${GOPATH}/src/gitlab.com/astrid-repositories
git clone https://gitlab.com/astrid-repositories/cubebeat.git
Cubebeat
용 바이너리를 빌드하려면 아래 명령을 실행하세요. 그러면 동일한 디렉터리에 이름이 Cubebeat인 바이너리가 생성됩니다.
chmod +x build.sh
build.sh
디버깅 출력이 활성화된 상태에서 Cubebeat
실행하려면 다음을 실행하세요.
./cubebeat -c cubebeat.yml -e -d "*"
디버깅 출력을 활성화하지 않고 Cubebeat
실행하려면 다음을 실행하세요.
./cubebeat -c cubebeat.yml -e
Cubebeat
인수로 전달된 구성 파일(기본값: cubebeat.yml
)을 읽습니다.
이 파일은 구성 파일 형식에 설명된 대로 일반적인 비트 구성을 허용합니다.
또한 다음 예와 같이 특정 구성을 허용합니다.
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
다음 섹션에서는 다양한 옵션에 대해 설명합니다.
Cubebeat
입력을 위한 외부 구성 파일을 로드할 수 있으므로 구성을 여러 개의 작은 구성 파일로 분리할 수 있습니다.
POSIX
파일 권한이 있는 시스템에서는 모든 구성 파일에 소유권 및 파일 권한 검사가 적용됩니다.
자세한 내용은 Beats 플랫폼 참조 의 구성 파일 소유권 및 권한을 참조하세요.
cubebeat.yml
의 cubebeat.config.inputs
섹션에서 path
옵션을 지정합니다. 예를 들어:
cubebeat :
config.inputs :
path : config.d/*.yml
Glob path
로 찾은 각 파일에는 하나 이상의 입력 정의 목록이 포함되어야 합니다.
각 외부 구성 파일의 첫 번째 줄은
- name
으로 시작하는 입력 정의여야 합니다.
예를 들어:
- name : synflood
enabled : true
period : 10s
polycube.api-url : " http://localhost:9000/polycube/v1/synflood/sf/stats/ "
- name : packetcapture
enabled : true
period : 5s
polycube.api-url : " http://localhost:9000/polycube/v1/packetcapture/pc "
실행 중인 두 입력의
name
동일하지 않은 것이 중요합니다. 둘 이상의 동일한name
입력하는 경우 첫 번째 이름만 허용됩니다. 나머지는 폐기됩니다.
enabled
옵션이 true
이면 특정 큐브 입력은 polycube.api-url
에 정의된 URL에 대한 HTTP 요청을 만드는 period
에 정의된 각 시간 간격마다 특정 Polycube 큐브와 주기적으로 상호 작용합니다.
큐브에 연결할 수 없거나 데이터를 검색할 때 오류가 발생하는 경우,
cubebeat
period
에 정의된 기간 후에 새 연결을 시도하면서 계속 작동합니다.
각 period
특정 큐브 입력은 구성 파일 cubebeat.yml
에 정의된 대로 출력에 새로운 Elastic
이벤트를 보냅니다.
변경 사항이 있을 때 외부 구성 파일을 동적으로 다시 로드하도록 cubebeat
구성할 수 있습니다. 이 기능은 외부 구성 파일로 로드되는 입력 구성에 사용할 수 있습니다. 이 기능을 사용하여 기본 cubebeat.yml
구성 파일을 다시 로드할 수 없습니다.
이 기능을 구성하려면 구성 변경 사항을 감시할 path
(Glob)를 지정합니다. Glob에서 찾은 파일이 변경되면 구성 파일의 변경 사항에 따라 새 입력이 시작되고 중지됩니다.
이 기능은 하나의 컨테이너가 동일한 호스트의 다른 컨테이너에서 실행되는 서비스에 대한 로그를 추적하는 데 사용되는 컨테이너 환경에서 특히 유용합니다.
동적 구성 다시 로드를 활성화하려면 cubebeat.config.inputs
섹션에서 path
및 reload
옵션을 지정합니다. 예를 들어:
cubebeat :
config.inputs :
path : config/*.yml
reload :
enabled : true
period : 10s
옵션 | 설명 |
---|---|
path | 변경 사항을 확인할 파일을 정의하는 Glob입니다. |
reload.enabled | true로 설정하면 동적 구성 다시 로드가 활성화됩니다. |
reload.period | 파일의 변경 사항을 확인하는 빈도를 지정합니다. 파일 수정 시간은 초 단위로 저장되는 경우가 많으므로 period 1s 미만으로 설정하지 마십시오.period 1s 미만으로 설정하면 불필요한 오버헤드가 발생합니다. |
POSIX
파일 권한이 있는 시스템에서는 모든 구성 파일에 소유권 및 파일 권한 검사가 적용됩니다.
자세한 내용은 Beats 플랫폼 참조 의 구성 파일 소유권 및 권한을 참조하세요.