콘텐츠로 이동

호스트 관측 가능성 모범 사례 (Linux)


기본 개요

Linux(GNU/Linux)는 무료로 사용 및 배포할 수 있는 Unix 계열 운영체제로, 기업에서 가장 널리 사용되는 운영체제인 만큼 안정성이 가장 중요한 요소입니다. Guance은 수년간의 고객 경험을 바탕으로 호스트 관측 가능성을 완벽하게 지원하여, 고객이 인프라 운영 상태를 신속하게 파악하고 운영 비용을 대폭 절감할 수 있도록 돕습니다.

시나리오 개요

< Guance - 시나리오 - 대시보드 - 대시보드 생성 - 호스트 개요_Linux >

image.png image.png image.png image.png image.png image.png

전제 조건

공식 웹사이트 Guance에서 계정을 등록하고, 등록된 계정/비밀번호로 로그인합니다.

배포 및 구현

원클릭 설치

DataKit은 Guance에서 공식적으로 배포하는 데이터 수집 애플리케이션으로, 수백 가지 데이터 수집을 지원합니다.

Guance 콘솔에 로그인하여 「통합」 - 「DataKit」을 클릭하고, 명령줄을 복사하여 서버에서 직접 실행합니다.

image.png

기본 경로

디렉터리 경로
설치 디렉터리 /usr/local/datakit/
로그 디렉터리 /var/log/datakit/
메인 설정 파일 /usr/local/datakit/conf.d/datakit.conf
플러그인 설정 디렉터리 /usr/local/datakit/conf.d/

기본 플러그인

설치가 완료되면 일부 플러그인(데이터 수집)이 기본적으로 활성화됩니다. 메인 설정 파일 datakit.conf 에서 확인할 수 있습니다.

default_enabled_inputs = ["cpu", "disk", "diskio", "mem", "swap", "hostobject", "net", "host_processes", "container", "system"]

플러그인 설명:

메트릭 데이터는 [ Guance - 메트릭 ] 에서 확인할 수 있으며, 객체 데이터는 관련 페이지에서 직접 확인할 수 있습니다.

플러그인 이름 설명 데이터 유형
cpu 호스트의 CPU 사용률 수집 메트릭
disk 디스크 점유율 수집 메트릭
diskio 호스트의 디스크 IO 상태 수집 메트릭
mem 호스트의 메모리 사용률 수집 메트릭
swap Swap 메모리 사용률 수집 메트릭
system 호스트 운영체제 부하 수집 메트릭
net 호스트 네트워크 트래픽 상태 수집 메트릭
host_processes 호스트에서 상주(10분 이상 활성) 중인 프로세스 목록 수집 객체
hostobject 호스트 기본 정보(운영체제 정보, 하드웨어 정보 등) 수집 객체

데이터 수집

Guance에서 메트릭을 조회할 때 태그를 통해 빠르게 조건을 필터링할 수 있습니다.

기본 수집

CPU 메트릭

[ Guance - 메트릭 - cpu, CPU 상태 데이터 조회 ] [ Guance - 메트릭 - system, CPU 부하 및 코어 수 데이터 조회 ]

image.png

메모리 메트릭

[ Guance - 메트릭 - mem, 메모리 데이터 조회 ] [ Guance - 메트릭 - swap, 메모리 Swap 데이터 조회 ]

image.png

디스크 메트릭

[ Guance - 메트릭 - disk, 디스크 데이터 조회 ] [ Guance - 메트릭 - disk, 디스크 IO 데이터 조회 ]

image.png

네트워크 메트릭

[ Guance - 메트릭 - net, 네트워크 데이터 조회 ]

image.png

호스트 객체

[ Guance - 인프라 - 호스트, 모든 호스트 객체 목록 조회 ]

image.png

[ Guance - 인프라 - 호스트 - 호스트를 클릭하여 기본 시스템 정보 조회 ]

통합 실행 상태는 해당 서버에서 실행 중인 플러그인 목록을 나타냅니다.

image.png

프로세스 객체

[ Guance - 인프라 - 프로세스, 모든 프로세스 객체 목록 조회 ]

image.png

[ Guance - 인프라 - 프로세스 - 프로세스 이름을 클릭하여 해당 프로세스 관련 정보 조회 ]

image.png

고급 수집

DataKit은 기본 메트릭/객체 데이터 외에도 다른 플러그인을 통해 운영체제 모니터링 데이터를 보완할 수 있습니다.

프로세스 목록

모든 호스트의 실시간 프로세스 목록 정보를 확인하려면 프로세스 플러그인(전역 top 기능)을 활성화합니다.

1.플러그인 설정 디렉터리로 이동하여 sample 파일을 복사합니다.

cd /usr/local/datakit/conf.d/host/
cp host_processes.conf.sample host_processes.conf
vi host_processes.conf

2.프로세스 플러그인을 활성화합니다.

[[inputs.host_processes]]
  min_run_time = "10m"
  open_metric = true

3.datakit을 재시작합니다.

systemctl restart datakit

[ Guance - 메트릭 - host_processes, 프로세스 데이터 조회 ]

image.png

네트워크 인터페이스 메트릭

eBPF 기술을 사용하여 호스트 네트워크 인터페이스의 TCP/UDP 연결 정보를 수집합니다.

1.eBPF 플러그인을 설치합니다.

datakit install --datakit-ebpf

2.플러그인 설정 디렉터리로 이동하여 sample 파일을 복사합니다.

cd /usr/local/datakit/conf.d/host
cp ebpf.conf.sample ebpf.conf
vi ebpf.conf

3.eBPF 플러그인을 활성화합니다.

[[inputs.ebpf]]
  daemon = true
  name = 'ebpf'
  cmd = "/usr/local/datakit/externals/datakit-ebpf"
  args = ["--datakit-apiserver", "0.0.0.0:9529"]
  enabled_plugins = ["ebpf-net"]

4.datakit을 재시작합니다.

systemctl restart datakit

[ Guance - 인프라 - 호스트 - eBPF 플러그인이 설치된 호스트 클릭 - 네트워크, 시스템 네트워크 인터페이스 정보 조회 ]

image.png

보안 점검

호스트 운영체제의 보안 취약점을 실시간으로 탐지합니다.

1.Scheck 서비스를 설치합니다.

bash -c "$(curl https://static.dataflux.cn/security-checker/install.sh)"

설치 설명

디렉터리 경로
설치 디렉터리 /usr/local/scheck
로그 디렉터리 /usr/local/scheck/log
메인 설정 파일 /usr/local/scheck/scheck.conf
탐지 규칙 디렉터리 /usr/local/scheck/rules.d

2.메인 설정 파일을 수정합니다.

rule_dir='/usr/local/scheck/rules.d'
output='http://127.0.0.1:9529/v1/write/security'
log='/usr/local/scheck/log'
log_level='info'

3.서비스를 시작합니다.

systemctl start scheck

[ Guance - 보안 점검 - 탐색기, 모든 보안 이벤트 조회 ]

image.png

확장 수집

DataKit은 자체 데이터 수집 외에도 Telegraf 수집기를 완벽하게 호환합니다.

Telegraf를 설치합니다. CentOS 기준이며, 다른 시스템은 Telegraf 공식 문서를 참조하세요.

1.yum 소스를 추가합니다.

cat <<EOF | tee /etc/yum.repos.d/influxdb.repo
[influxdb]
name = InfluxDB Repository - RHEL \$releasever
baseurl = https://repos.influxdata.com/rhel/\$releasever/\$basearch/stable
enabled = 1
gpgcheck = 1
gpgkey = https://repos.influxdata.com/influxdb.key
EOF

2.Telegraf 수집기를 설치합니다.

yum -y install telegraf

3.메인 설정 파일 telegraf.conf를 수정합니다.

vi /etc/telegraf/telegraf.conf

4.influxdb를 비활성화하고 outputs.http를 활성화합니다(데이터를 Datakit으로 업로드).

#[[outputs.influxdb]]
[[outputs.http]]
url = "http://127.0.0.1:9529/v1/write/metric?input=telegraf"

5.Telegraf 기본 수집을 비활성화합니다.

#[[inputs.cpu]]
#  percpu = true
#  totalcpu = true
#  collect_cpu_time = false
#  report_active = false
#[[inputs.disk]]
#  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]
#[[inputs.diskio]]
#[[inputs.mem]]
#[[inputs.processes]]
#[[inputs.swap]]
#[[inputs.system]]

6.Telegraf를 시작합니다.

systemctl start telegraf

포트 메트릭

운영체제의 중요 포트를 탐지합니다.

1.메인 설정 파일 telegraf.conf를 수정합니다.

vi /etc/telegraf/telegraf.conf

2.포트 탐지를 활성화합니다.

[[inputs.net_response]]
  protocol = "tcp"
  address = "localhost:9090"
  timeout = "3s"
[[inputs.net_response]]
  protocol = "tcp"
  address = "localhost:22"
  timeout = "3s"

3.Telegraf를 재시작합니다.

systemctl restart telegraf

[ Guance - 메트릭 - net_response, 포트 데이터 조회 ]

image.png

프로세스 메트릭

운영체제의 중요 프로세스를 탐지합니다.

1.메인 설정 파일 telegraf.conf를 수정합니다.

vi /etc/telegraf/telegraf.conf

2.프로세스 탐지를 활성화합니다.

[[inputs.procstat]]
    pattern = "zookeeper"
[[inputs.procstat]]
    pattern = "httpd"

3.Telegraf를 재시작합니다.

systemctl restart telegraf

[ Guance - 메트릭 - procstat, 프로세스 데이터 조회 ]

image.png

단일 노드 테스트

로컬 호스트를 테스트 지점으로 사용하여 중요 인터페이스/사이트를 탐지합니다.

다중 노드 테스트는 신서틱 모니터링을 참조하세요.

1.메인 설정 파일 telegraf.conf를 수정합니다.

vi /etc/telegraf/telegraf.conf

2.HTTP 탐지를 활성화합니다.

[[inputs.http_response]]
    urls = ["https://www.baidu.com","https://guance.com","http://localhost:9090"]

3.Telegraf를 재시작합니다.

systemctl restart telegraf

[ Guance - 메트릭 - http_response, 테스트 데이터 조회 ]

image.png

모니터링 규칙

알림 규칙 및 알림 대상을 설정하여 시스템 안정 상태를 실시간으로 파악하는 데 사용됩니다.

내장 템플릿

Guance에는 일부 탐지 라이브러리 템플릿이 내장되어 있어 바로 사용할 수 있습니다.

[ Guance - 모니터링 - 템플릿에서 생성 - 호스트 탐지 라이브러리 ] [ Guance - 모니터링 - 템플릿에서 생성 - Ping 상태 탐지 라이브러리 ] [ Guance - 모니터링 - 템플릿에서 생성 - Port 탐지 라이브러리 ]

사용자 정의 탐지 라이브러리

사용자 정의 방식으로 탐지 규칙을 추가할 수 있습니다. Guance은 임계값, 프로세스, 로그, 네트워크 탐지 등 다양한 탐지 유형을 지원합니다.

임계값 탐지

[ Guance - 모니터링 - 모니터 생성 - 임계값 탐지 ]

탐지 메트릭: 알림 규칙 표현식. 여기서 은 데이터 테이블, 는 모니터링 메트릭, 는 태그입니다(by 조건에 있는 태그만 이벤트 내용에서 참조 가능).

image.png

트리거 조건: 최종 임계값 범위에 도달하면 조건이 충족되어 알림이 트리거됩니다. 트리거 후 다시 탐지했을 때 임계값 미만이면 복구될 수 있습니다(정상 상태에 탐지 주기 입력 필요).

image.png

이벤트 이름/내용에서 변수를 참조할 수 있으며, 이벤트 내용은 Markdown 텍스트 형식을 사용합니다(예: 줄바꿈은 공백 두 칸).

image.png

알림 대상

알림 규칙의 알림 대상을 사용자 정의하여 설정합니다.

[ Guance - 관리 - 알림 대상 ]

image.png

모니터 그룹에 따라 알림 대상을 추가합니다.

[ Guance - 모니터링 - 모니터 - 그룹 - 알림 설정 ]

image.png

문서 평가

이 페이지가 도움이 되었나요?