호스트 구성 변경
호스트 구성 변경 수집기는 Linux 호스트의 각종 구성 변경을 모니터링하고, 변경 이벤트 데이터를 구성하여 Guance 플랫폼에 보고합니다.
주의: 이 수집기는 Linux 운영 체제만 지원하며, Windows 시스템은 지원하지 않습니다.
기능 설명¶
호스트 구성 변경 수집기는 다음과 같은 변경 감지 기능을 지원합니다:
| 기능 모듈 | 설명 |
|---|---|
| 사용자 및 그룹 변경 | /etc/passwd、/etc/shadow、/etc/group、/etc/gshadow 파일을 모니터링하여 사용자 및 그룹의 생성, 삭제, 속성 수정 및 구성원 변경을 감지합니다 |
| Crontab 변경 | /etc/crontab、/etc/cron.d/*、/var/spool/cron/crontabs/* 파일을 모니터링하여 예약 작업 변경을 감지합니다 |
| 파일 내용 변경 | 지정한 파일의 내용 변경을 모니터링하며, 차이 비교를 지원합니다 |
| 서비스 변경 | systemd 또는 sysvinit 서비스의 생성, 삭제, 속성 수정 및 상태 변경을 모니터링합니다 |
| 네트워크 구성 변경 | 네트워크 인터페이스, DNS 구성, 라우팅 구성, 방화벽 규칙, hosts 파일의 변경을 모니터링합니다 |
설정¶
DataKit 설치 디렉터리의 conf.d/samples 디렉터리로 이동하여 host_change.conf.sample을 복사한 뒤 host_change.conf로 이름을 변경합니다. 예시는 다음과 같습니다:
[[inputs.host_change]]
## 수집 간격
interval = "1m"
## 사용자 및 그룹 변경 감지 활성화
[inputs.host_change.user_group]
## 사용자 및 그룹 변경 감지를 활성화할지 여부
enabled = true
## Crontab 변경 감지 구성
# /etc/crontab, /etc/cron.d/*, /var/spool/cron/crontabs/*에서 파일을 수집
[inputs.host_change.crontab]
## Crontab 변경 감지를 활성화할지 여부
enabled = true
## 파일 변경 감지 구성
[inputs.host_change.file]
## 파일 변경 감지를 활성화할지 여부
enabled = false
## 변경을 모니터링할 파일
# 참고:
# 1. 일반 파일만 지원하며, 디렉터리는 허용되지 않습니다
# 2. 모든 경로는 절대 경로여야 합니다
files = [
# "/etc/passwd",
# "/etc/group",
# "/etc/sudoers"
]
## 이 크기보다 큰 파일은 전체 내용을 비교하지 않습니다.
## 기본값: 262144 바이트 (256KB)
max_file_size = 262144
## 파일 변경 모니터링 시 무시할 경로
ignore_paths = [
# "/etc/ssh/sshd_config.d/*",
# "/tmp/",
# "*.tmp"
]
## 서비스 변경 감지 구성
[inputs.host_change.service]
## 서비스 변경 감지를 활성화할지 여부
enabled = true
## 모니터링할 서비스 유형 (systemd, sysvinit)
# 비어 있으면 모든 서비스 유형을 모니터링하며, 둘 다 उपलब्ध한 경우 systemd가 우선됩니다
service_types = ["systemd"]
## 무시할 서비스 ( .service 접미사가 없는 서비스 이름, 정규식 지원)
ignore_services = []
## 포함할 서비스 ( .service 접미사가 없는 서비스 이름, 정규식 지원)
# 비어 있지 않으면 이 패턴과 일치하는 서비스만 모니터링됩니다
# include_services = []
## 네트워크 구성 변경 감지 구성
[inputs.host_change.network]
## 네트워크 구성 변경 감지를 활성화할지 여부
enabled = true
## 무시할 인터페이스 (인터페이스 이름, 와일드카드 지원)
ignore_interfaces = [
# "lo",
# "docker*",
# "veth*"
]
[inputs.host_change.tags]
# some_tag = "some_value"
# more_tag = "some_other_value"
설정이 완료되면 DataKit 재시작 하면 됩니다.
ConfigMap 방식으로 수집기 설정 주입을 통해 수집기를 활성화할 수 있습니다.
변경 이벤트¶
다음 모든 데이터 수집에는 기본적으로 host라는 전역 태그가 추가됩니다(태그 값은 DataKit가 위치한 호스트명입니다). 또한 설정에서 [inputs.host_change.tags]를 통해 다른 태그를 지정할 수도 있습니다:
이벤트 필드 설명¶
변경 이벤트¶
로컬 시스템에서 수집한 호스트 변경 이벤트로, 구성된 파일, crontab, 네트워크, 서비스, 사용자 및 그룹 변경을 포함합니다.
| 태그 및 필드 | 설명 |
|---|---|
| change_id ( tag) |
호스트 변경 이벤트의 고유 식별자입니다. |
| df_event_id ( tag) |
이벤트 ID입니다. |
| df_source ( tag) |
소스 이름입니다. |
| df_status ( tag) |
이벤트 상태입니다. |
| df_sub_status ( tag) |
이벤트 세부 상태입니다. |
| host ( tag) |
시스템 호스트명입니다. |
| change_time_us | 변경 이벤트의 타임스탬프(마이크로초)입니다. Type: int | (gauge) Unit: timeStamp,usec |
| df_message | 호스트 변경 이벤트를 설명하는 메시지 텍스트입니다. Type: string | (string) Unit: N/A |
| df_title | 호스트 변경 이벤트를 요약하는 제목 텍스트입니다. Type: string | (string) Unit: N/A |
변경 이벤트 유형¶
- 사용자 및 그룹 변경 이벤트
| 변경 ID | 설명 |
|---|---|
host_change_01_01 |
사용자 추가 |
host_change_01_02 |
사용자 삭제 |
host_change_01_03 |
사용자 속성 수정 |
host_change_01_04 |
그룹 추가 |
host_change_01_05 |
그룹 삭제 |
host_change_01_06 |
그룹 속성 수정 |
host_change_01_07 |
그룹 구성원 추가 |
host_change_01_08 |
그룹 구성원 삭제 |
- Crontab 변경 이벤트
| 변경 ID | 설명 |
|---|---|
host_change_02_01 |
Crontab 작업 변경 |
- 파일 변경 이벤트
| 변경 ID | 설명 |
|---|---|
host_change_03_01 |
파일 내용 변경 |
- 서비스 변경 이벤트
| 변경 ID | 설명 |
|---|---|
host_change_04_01 |
서비스 추가 |
host_change_04_02 |
서비스 삭제 |
host_change_04_03 |
서비스 수정 |
host_change_04_04 |
서비스 상태 변경 |
- 네트워크 구성 변경 이벤트
| 변경 ID | 설명 |
|---|---|
host_change_05_01 |
네트워크 인터페이스 변경 |
host_change_05_02 |
DNS 구성 변경 |
host_change_05_03 |
라우팅 구성 변경 |
host_change_05_04 |
방화벽 규칙 변경 |
host_change_05_05 |
Hosts 파일 변경 |