본문으로 건너뛰기

고급 기능

확장팩 설정

정상적으로 설치 후 확장팩 기능을 사용하려면 다음과 같이 설정 파일을 생성하고 에이전트를 다시 시작하세요.

MySQL 서버 목록

MySQL/MariaDB 모니터링 에이전트를 이용할 수 있습니다.

웹 URL 성능 체크

와탭 인프라 에이전트가 주어진 웹 주소로 접속하여 접속 여부 및 응답 시간을 수집합니다. 수집된 웹 URL 성능은 카테고리 server_webcheck에서 확인할 수 있습니다. 다음 명령으로 체크할 웹 주소를 추가하세요. URL 모니터링 서비스에 대한 자세한 내용은 다음 문서를 참조하세요.

echo "체크할 웹 주소" | sudo tee -a /usr/whatap/infra/conf/webcheck.conf
echo "webcheck.enabled=true" | sudo tee -a /usr/whatap/infra/conf/whatap.conf
sudo service whatap-infra restart

Redis 서버 목록

와탭 인프라 에이전트가 주어진 Redis 주소로 접속하여 연결 개수를 포함한 여러 개의 성능 지수를 수집합니다. 수집된 성능 정보는 카테고리 server_redis에서 확인할 수 있습니다. 다음 명령으로 체크할 Redis 서버의 접속 정보를 추가할 수 있습니다.

sudo echo "addr=Redis 주소:포트" | sudo tee /usr/whatap/infra/conf/redis.conf
sudo echo "password=Redis 패스워드" | sudo tee -a /usr/whatap/infra/conf/redis.conf
sudo service whatap-infra restart

Memcached 서버 목록

와탭 인프라 에이전트가 주어진 Memcached 주소로 접속하여 연결 개수를 포함한 여러 개의 성능 지수를 수집합니다. 수집된 정보는 카테고리 server_memcached에서 확인할 수 있습니다. 다음 명령으로 체크할 Memcached 서버의 접속 정보를 추가할 수 있습니다.

sudo echo "addr=Memcached 주소:포트" | sudo tee /usr/whatap/infra/conf/memcached.conf
sudo echo "password=Memcached 패스워드" | sudo tee -a /usr/whatap/infra/conf/memcached.conf
sudo service whatap-infra restart

TCP 포트 감시

네트워크 데몬의 수신 포트 비활성화 시 알림을 받을 수 있습니다.

홈 화면 > 프로젝트 선택 > 경고 알림 > 이벤트 설정 > 서버 탭을 선택하고 + 이벤트 추가 버튼을 선택하세요.

TCP 포트

  • number-s 포트 지표 토글 버튼을 클릭하여 사용 상태로 변경하세요.

  • number-s 저장 버튼을 선택하여 저장하세요.

  • 대상 서버에서 다음 명령을 추가하세요.

    #아래 변수에 모니터링 대상 아이피를 지정합니다.
    export TARGET_IP=127.0.0.1
    #아래 변수에 모니터링 대상 포트를 지정합니다.
    export TARGET_PORT=80
    echo "tcp.check.$TARGET_PORT=tcp://$TARGET_IP:$TARGET_PORT" |sudo tee -a /usr/whatap/infra/conf/whatap.conf
노트

다중 포트 감시

여러 개의 포트를 감시하기 위해서는 whatap.conf 파일 내 추가 설정이 필요합니다. 다음 예시를 참고하세요.

whatap.conf
# port 8080, port 80 
tcp.check.8080=tcp://127.0.0.1:8080
tcp.check.80=tcp://127.0.0.1:80

프로세스 네트워크 성능 측정

프로세스 네트워크 성능은 서버 목록 > 서버 상세 화면의 프로세스 위젯에서 확인할 수 있습니다.

echo "process.fdcheck=true" |sudo tee -a /usr/whatap/infra/conf/whatap.conf

서버 스펙 수집

CPU, MEMORY, DISK, NIC의 스펙과 설치된 패키지 및 가상 머신의 메타 정보를 수집합니다. 각 카테고리에서 다음 내용을 확인하실 수 있습니다.

  • server_package: 설치된 패키지입니다.
  • server_inventory: CPU, MEMORY, DISK, NIC의 스펙입니다.
  • server_pending_security_update: 리눅스의 보안 패치 대기 목록입니다.
echo "inventory.product.enabled=true" |sudo tee -a /usr/whatap/infra/conf/whatap.conf

리눅스 컨테이너 성능 수집

리눅스 컨테이너의 CPU, MEMORY, DISK, NIC 성능을 수집합니다. 수집된 성능 정보는 카테고리 server_container에서 확인할 수 있습니다.

Linux Shell
echo "container.enabled=true" |sudo tee -a /usr/whatap/infra/conf/whatap.conf

윈도우 서버 서비스 운영 상태 수집

윈도우 서버 서비스 운영 상태를 수집합니다. 수집된 서비스 운영 상태는 카테고리 server_windows_service에서 확인할 수 있습니다.

Windows Powershell
# 관리자 권한이 필요합니다.
Add-Content -Path "C:\Program Files\WhatapInfra\whatap.conf" -Value "winservice.enabled=true"

파일 감시

파일 시스템상에 존재하거나 존재할 가능성이 있는 파일 및 디렉터리를 감시할 수 있습니다.

echo "filecheck.enabled=true" |sudo tee -a /usr/whatap/infra/conf/whatap.conf
echo "감시를 원하는 파일 혹은 디렉터리 전체 경로" |sudo tee -a /usr/whatap/infra/conf/filesystem.conf

Nvidia GPU 모니터링

nvidia-smi 명령이 탑재된 경우 GPU 성능을 5초 간격으로 수집해 와탭으로 업로드합니다. 수집된 정보는 메트릭스 카테고리 server_nvidiasmi로 수집됩니다.

echo "nvidiasmi.enabled=true" |sudo tee -a /usr/whatap/infra/conf/whatap.conf
  • category server_nvidiasmi

    메트릭스비고
    DecoderUtilgauge, Decoder utilization (in %)
    EncoderUtilgauge, Encoder utilization (in %)
    FreeFbMemoryUsageGpugauge, Framebuffer memory free (in MiB).
    UsedFbMemoryUsageGpugauge, Framebuffer memory used (in MiB).
    GpuTempgauge, GPU temperature (in C).
    GpuUtilgauge, GPU utilization (in %).
    MemClockgauge, Memory clock frequency (in MHz).
    MemoryUtilgauge, Memory utilization (in %).
    SmClockgauge, SM clock frequency (in MHz).

와탭 에이전트 로그 위치 변경

와탭 에이전트 로그(whatap_infrad.log, whatap_infra.log, whatap_infrad.fork.stdout.log)의 경로를 변경합니다. 지정 경로가 없는 경우 와탭 에이전트가 생성을 시도합니다. 에이전트 버전 2.0.6 이상 지원됩니다.

echo "agent.log.prefix=변경을 원하는 디렉터리" |sudo tee -a /usr/whatap/infra/conf/whatap.conf
노트

윈도우의 경우 경로 구분자를 \\로 입력할 수 있습니다.

Netstat 모니터링

netstat 명령이 탑재된 경우 1분 간격으로 수집하여 카테고리 server_netstat (netstat connection 통계), server_netstat_s (netstat -s 명령 실행 결과)로 업로드됩니다.

echo "netstats.enabled=true" |sudo tee -a /usr/whatap/infra/conf/whatap.conf

사용자 스크립트 모니터링

리눅스 서버에서 실행 가능한 사용자 스크립트를 주기적으로 실행하여 결과를 업로드합니다. 다음 예시를 참조하여 사용자 스크립트를 작성하세요.

  1. 스크립트를 다음과 같이 작성 후 실행하세요.

    Linux Shell
    #!/bin/bash

    urls=("https://www.whatap.io" "https://blog.whatap.io" "https://service.whatap.io")

    for url in ${urls[*]}; do

    echo "M $url url $url"
    curl -w @- -o /dev/null -s "$url" <<'EOF'
    M %{url_effective} url %{url_effective}\n
    H %{url_effective} time_namelookup %{time_namelookup}\n
    H %{url_effective} time_connect %{time_connect}\n
    H %{url_effective} time_appconnect %{time_appconnect}\n
    H %{url_effective} time_pretransfer %{time_pretransfer}\n
    H %{url_effective} time_redirect %{time_redirect}\n
    H %{url_effective} time_starttransfer %{time_starttransfer}\n
    H %{url_effective} time_total %{time_total}\n
    EOF

    done
  2. 다음과 같이 출력되는지 확인하세요.

    Linux Shell
    $ ./curl.sh
    M https://www.whatap.io/ url https://www.whatap.io/
    H https://www.whatap.io/ time_namelookup 0.007289
    H https://www.whatap.io/ time_connect 0.010702
    H https://www.whatap.io/ time_appconnect 0.033637
    H https://www.whatap.io/ time_pretransfer 0.033831
    H https://www.whatap.io/ time_redirect 0.000000
    H https://www.whatap.io/ time_starttransfer 0.043230
    H https://www.whatap.io/ time_total 0.043312
    M https://blog.whatap.io/ url https://blog.whatap.io/
    H https://blog.whatap.io/ time_namelookup 0.000000
    H https://blog.whatap.io/ time_connect 0.000000
    H https://blog.whatap.io/ time_appconnect 0.000000
    H https://blog.whatap.io/ time_pretransfer 0.000000
    H https://blog.whatap.io/ time_redirect 0.000000
    H https://blog.whatap.io/ time_starttransfer 0.000000
    H https://blog.whatap.io/ time_total 0.005654
    M https://service.whatap.io/ url https://service.whatap.io/
    H https://service.whatap.io/ time_namelookup 0.004296
    H https://service.whatap.io/ time_connect 0.007282
    H https://service.whatap.io/ time_appconnect 0.038404
    H https://service.whatap.io/ time_pretransfer 0.038607
    H https://service.whatap.io/ time_redirect 0.000000
    H https://service.whatap.io/ time_starttransfer 0.055226
    H https://service.whatap.io/ time_total 0.055307
  3. 스크립트 정상 수집을 확인하고 다음과 같이 와탭 서버 모니터링 에이전트에 스크립트를 등록하세요.

    Linux Shell
    export USER_SCRIPT=실행할 사용자 스크립트 절대 경로
    sudo chmod +x $USER_SCRIPT
    sudo mkdir /usr/whatap/infra/ext/
    sudo cp -r $USER_SCRIPT /usr/whatap/infra/ext/
    export RUNAS_USER=사용자 스크립트를 실행할 계정. root 계정제외
    sudo WHATAP_HOME=/usr/whatap/infra/conf /usr/whatap/infra/whatap_infrad --user=$RUNAS_USER init-script
    sudo service whatap-infra restart

수집된 데이터는 분석 > 메트릭스 차트에서 카테고리 server_ext_폴더_실행스크립트에서 찾을 수 있습니다.

서버 시간 동기화 모니터링

노트

사전 확인

  • 운영체제: 리눅스

  • 와탭 서버 모니터링 에이전트 버전: 2.5.4 이상

다음 옵션을 통해 서버 시간 동기화(NTP) 모니터링 기능을 활성화 할 수 있습니다.

echo "ntpq.enabled=true" |sudo tee -a /usr/whatap/infra/conf/whatap.conf

추가 지표 안내

서버 시간 동기화 모니터링 기능 활성화 시 추가되는 메트릭은 다음과 같습니다.

server_ntpq

Tags
태그명설명비고
refid해당 리모트(remote)의 시간 동기화 소스를 의미합니다.-
remote호스트가 시간 동기화를 수행할 대상 서버를 의미합니다.-
Fields
필드명단위설명비고
delayms서버가 보낸 쿼리에 대한 응답으로 회신 패킷을 반환하는데 걸린 시간을 의미합니다.-
jitter-두 샘플 간의 오프셋 측정 차이로 추정한 오차 경계치를 의미합니다.-
offsetms서버 설정 시간과 클라이언트 설정 시간 간의 차이를 의미합니다.-
pollsecondntp.conf 파일에서 minpoll 값으로 정의된 원격 호스트로의 폴링 간격을 의미합니다.-
reach-서버에 도달하는 시도가 얼마나 성공적인지 확인할 수 있습니다. 2^0 위치에 가장 최근 질의 성공 여부를 기록하고 8 비트 쉬프트 레지스터로 작동합니다.-
st-원격 호스트의 스트래텀 레벨을 의미합니다.-
sync_client-1: 동기화 서버가 존재합니다.-
0: 동기화 서버가 존재하지 않습니다.
t-사용 가능한 유형은 다음과 같습니다.-
l : 로컬(예 GPS시계)
u: 유니캐스트(일반적인 유형)
m: 멀티캐스트
b: 브로드캐스트
whensecond원격 호스트 응답 이후 지난 초 수를 의미합니다.-

리눅스 시스템 로그 모니터링

리눅스 시스템 로그를 실시간 업로드하여 장애 시 해당 시간에 발생한 로그를 확인할 수 있습니다. 수집 대상 로그 파일은 다음과 같습니다.

  • /var/log/syslog
  • /var/log/messages

설정 방법은 다음과 같습니다.

Linux Shell
echo "systemlog.enabled=true" |sudo tee -a /usr/whatap/infra/conf/whatap.conf

로그 모니터링 플러그인

임의의 로그를 수집할 수 있습니다. 다음 설정은 에이전트 재시작이 필요합니다.

Linux Shell

Linux Shell
cd /usr/whatap/infra
sudo mkdir extension

cat <<EOL | sudo tee extension/logsink.conf > /dev/null
[[inputs.logsink]]
category = "serverlog"
## 로그 발생량 통계 별도 데이터로 전송 여부
stats_enabled = true
## 로그 발생량 통계 카테고리
stats_category = "logsink_stats"
## 로그 파일 경로(path)에 별표(*)가 포함되어 제외할 로그 비대상 파일명 설정
excludeNames = [ ".gz",".zip" ]
[[inputs.logsink.file]]
## 로그 파일 지정 시, 날짜 패턴(strftime.org) 지정 가능
path = "/some/path/%Y-%m-%d/.log"
disabled = false
encoding = "euc-kr"

[[inputs.logsink.file]]
path = "/some/other/log"
disabled = false
encoding = "utf-8"

[[inputs.logsink.file]]
## 줄 단위 로그에서 해당 키워드 검색 시, 이전 로그에 병합
nowrap_keywords = ["Caused by:", "Test"]
EOL

sudo service whatap-infra restart

Windows Powershell

Windows Powershell
# 관리자 권한 필요
New-Item -type "Directory" -Path "C:\Program Files\WhatapInfra\extension"

$contentToAdd = @"
[[inputs.logsink]]
category = "serverlog"
## 로그 발생량 통계 별도 데이터로 전송 여부
stats_enabled = true
## 로그 발생량 통계 카테고리
stats_category = "logsink_stats"
## 로그 파일 경로(path)에 별표(*)가 포함되어 제외할 로그 비대상 파일명 설정
excludeNames = [ ".gz",".zip" ]
[[inputs.logsink.file]]
## 로그 파일 지정 시, 날짜 패턴(strftime.org) 지정 가능
path = "c:\\whatap\\logs%Y-%m-%d_.log"
disabled = false
encoding = "euc-kr"
[[inputs.logsink.file]]
## 줄 단위 로그에서 해당 키워드 검색 시, 이전 로그에 병합
nowrap_keywords = ["Caused by:", "Test"]
"@

New-Item -path "C:\Program Files\WhatapInfra\extension" -name "logsink.conf" -type "file" -value $contentToAdd -Force

Restart-Service "Whatap Infra"

옵션 설정

  • stats_enabled: 수집 현황 데이터의 수집 여부를 설정합니다. 기본값은 false입니다. 값을 true로 설정해야 합니다. true로 설정하면 다음 stats_category에서 설정한 카테고리(logsink_stats)로 통계 데이터가 발생합니다.

  • stats_category: 수집 현황 데이터를 저장할 메트릭스 카테고리를 설정합니다. 값을 logsink_stats로 설정해야 합니다. 통계 데이터 필드는 다음과 같습니다.

    • file
    • checkInterval
    • encoding
    • filepos
    • checkedLocalTime
    • lastupdatedLocalTime
    • fileSize
    • error
    • firstCheck
    • transferBytes
  • excludeNames: 로그 파일 경로(path)에 별표(*)를 포함한 경우 로그 비대상 파일을 제외하도록 파일명을 설정할 수 있습니다. 쉼표(,)를 구분자로 이용해 복수 설정할 수 있습니다.

    Example
    excludeNames = [ ".gz",".zip" ]
  • nowrap_keywords: 줄 단위 로그 검색 시 해당 옵션값으로 지정한 키워드가 검색될 경우 이전 로그에 병합합니다.

윈도우 이벤트 로그 옵션 설정

윈도우 이벤트 로그 수집 시 다음과 같이 옵션을 설정할 수 있습니다.

# 관리자 권한 필요
New-Item -type "Directory" -Path "C:\Program Files\WhatapInfra\extension"

$contentToAdd = @"
[[inputs.win_eventlog]]
category = "win_event_log"
stats_category = "win_event_log_stats"
stats_enabled = true
enabled = true
[[inputs.win_eventlog.file]]
#true | false
enabled = true
# Application, Security, Setup, System, Forwarded
file = "Application"
#1: Information, 2: Warning 3: Critical 4: Audit Success 5 Audit Fail
#event_type =
#event id
#event_id =
#event source name
#source_name = ""

"@

New-Item -path "C:\Program Files\WhatapInfra\extension" -name "win_eventlog.conf" -type "file" -value $contentToAdd -Force

Restart-Service "Whatap Infra"
노트
  • 지원 버전 2.5.2

  • 운영체제: Windows

  • 카테고리 지정(category) 필수

    예, win_event_log

  • 통계 카테고리 지정(stats_category) 필수

    예, win_event_log_stats

  • 통계 카테고리 On/Off(stats_enabled) 필수

    예, true 혹은 false

  • 수집 기능 On/Off(enabled) 필수

    예, true 혹은 false

  • 파일별 수집 기능 On/Off(enabled) 필수

    예, true 혹은 false

  • 파일(file) 필수

    예, Application, Security, Setup, System, Forwarded

  • 이벤트 타입(event_type) 비필수

    예, 1, 2, 3, 4, 5

    노트

    이벤트 타입

    1. Information

    2. Warning

    3. Critical

    4. Audit Success

    5. Audit Fail

  • 이벤트 아이디(event_id) 비필수

  • 이벤트 소스 이름(source_name) 비필수

로그 다중 파일 지정 및 분리

다중 파일 지정

여러 로그 파일을 동일한 카테고리로 설정하려면, 각 로그 파일 경로를 [[inputs.logsink.file]] 항목에 추가하고, path 설정을 통해 파일 경로를 지정합니다. 또한, category, stats_enabled, stats_category 등의 옵션을 사용하여 로그 발생량 통계 설정과 같은 부가적인 설정을 할 수 있습니다. 예시는 /root/test1/root/test2 파일을 동일한 카테고리(serverlog)로 지정한 경우입니다.

[[inputs.logsink]]
category = "serverlog"
stats_enabled = true
stats_category = "logsink_stats"
excludeNames = [ ".gz",".zip" ]

[[inputs.logsink.file]]
path = "/root/test1"
disabled = false
encoding = "utf-8"

[[inputs.logsink.file]]
path = "/root/test2"
disabled = false
encoding = "utf-8"
노트

category, stats_enabled, stats_category, nowrap_keywords 등의 옵션에 대한 내용은 상단 안내를 참조하세요.

해당 예시의 경우 라이브 테일 메뉴에서는 다음과 같이 확인할 수 있습니다.

다중 파일 지정

파일 분리

서로 다른 카테고리로 로그 파일을 지정하려면, logsink{숫자}.conf 파일을 각각 생성한 후, 각 파일 내에서 다른 category 값을 설정하세요. 다음 예시는 logsink.conflogsink1.conf를 통해 각각 다른 로그 카테고리를 설정한 경우입니다.

logsink.conf
# cat logsink.conf
[[inputs.logsink]]
category = "serverlog1"
stats_enabled = true
stats_category = "logsink_stats"
excludeNames = [ ".gz",".zip" ]

[[inputs.logsink.file]]
path = "/root/test1"
disabled = false
encoding = "utf-8"
logsink1.conf
#cat logsink1.conf
[[inputs.logsink]]
category = "serverlog2"
stats_enabled = true
stats_category = "logsink_stats"
excludeNames = [ ".gz",".zip" ]

[[inputs.logsink.file]]
path = "/root/test2"
disabled = false
encoding = "utf-8"
노트

category, stats_enabled, stats_category, nowrap_keywords 등의 옵션에 대한 내용은 상단 안내를 참조하세요.

해당 예시의 경우 라이브 테일 메뉴에서는 다음과 같이 확인할 수 있습니다.

파일 분리