NHN Academy IoT 서비스 안내

NHN Academy IoT 모니터링 서비스에 오신 것을 환영합니다! 본 가이드는 서비스의 주요 기능, 설정 방법, 활용 팁 등을 안내하여 사용자가 서비스를 최대한 효과적으로 이용할 수 있도록 돕기 위해 마련되었습니다.

1. 서비스 개요

NHN Academy IoT 서비스는 다양한 환경(서버룸, 개별 서버, 애플리케이션 등)에서 발생하는 센서 데이터 및 시스템 정보를 실시간으로 수집, 저장, 분석하고 시각화하여 보여주는 통합 모니터링 플랫폼입니다. 사용자는 본 서비스를 통해 인프라 및 서비스 상태를 직관적으로 파악하고, 문제 발생 시 신속하게 대응할 수 있습니다.

주요 제공 기능:

  • 실시간 데이터 대시보드: 주요 지표를 한눈에 파악할 수 있는 맞춤형 대시보드 제공
  • 시계열 데이터 분석: 과거 데이터 추이 분석 및 패턴 파악
  • 통합 차트: 여러 측정 항목을 비교 분석할 수 있는 유연한 차트 기능
  • 알림 설정: 특정 조건 충족 시 알림 수신 (향후 제공 예정)
  • 데이터 관리: 수집된 데이터 조회 및 관리 기능

2. 서비스 시작하기: 에이전트 설치 및 설정

서비스를 이용하기 위해서는 모니터링 대상에 데이터 수집 에이전트(예: Telegraf)를 설치하고, 수집된 데이터를 저희 시스템으로 전송하도록 설정해야 합니다. 데이터는 MQTT 프로토콜을 통해 지정된 토픽으로 전송됩니다.

2.1. 데이터 수집 에이전트 (Telegraf 예시)

Telegraf는 다양한 플러그인을 통해 시스템 메트릭, 센서 데이터 등을 쉽게 수집할 수 있는 오픈소스 에이전트입니다. 다음은 Telegraf 설치 및 기본 설정 가이드입니다.

설치 방법:

  1. Telegraf 공식 홈페이지(https://www.influxdata.com/time-series-platform/telegraf/)에서 사용 환경에 맞는 버전을 다운로드하여 설치합니다.
  2. 설치가 완료되면 Telegraf 설정 파일(보통 /etc/telegraf/telegraf.conf)을 수정합니다.

주요 설정 (telegraf.conf):

출력 플러그인 (Outputs - MQTT 설정):

수집된 데이터를 MQTT 브로커로 전송하도록 설정합니다. outputs.mqtt 섹션을 다음과 같이 구성합니다.


outputs.mqtt
  servers = ["tcp://[귀사의 MQTT 브로커 주소]:1883"] # 예: "tcp://mqtt.example.com:1883"
  topic_prefix = "" # 필요에 따라 토픽 접두사 설정 (아래 토픽 구조 참고)
  username = "[MQTT 사용자 이름]" # MQTT 브로커 인증 정보 (필요시)
  password = "[MQTT 비밀번호]"
  qos = 0
  keep_alive = "30s"
  data_format = "influx" # InfluxDB 라인 프로토콜 형식으로 데이터 전송
                        

입력 플러그인 (Inputs - 수집 대상 설정):

모니터링할 대상에 따라 다양한 입력 플러그인을 활성화합니다. 예를 들어, CPU, 메모리, 디스크, 네트워크 정보를 수집하려면 다음 플러그인들을 설정합니다.


# CPU 사용량 수집
inputs.cpu
  percpu = true
  totalcpu = true
  collect_cpu_time = false
  report_active = true

# 디스크 사용량 수집
inputs.disk
  ignore_fs = ["tmpfs", "devtmpfs", "devfs", "iso9660", "overlay", "aufs", "squashfs"]

# 메모리 사용량 수집
inputs.mem
  # no configuration

# 네트워크 I/O 수집
inputs.net
  # no configuration

# 시스템 정보 수집 (Load Average 등)
inputs.system
  # no configuration

# 특정 프로세스 모니터링 (선택적)
# inputs.procstat
#   exe = "my_application" # 모니터링할 프로세스 실행 파일 이름
#   prefix = "my_app_proc"
                        

온도/습도 센서 등 외부 장치 데이터는 해당 장치와 통신하는 스크립트나 별도 플러그인(예: `inputs.exec`, `inputs.http`)을 통해 수집하고 MQTT로 전송할 수 있습니다.

2.2. MQTT 토픽 구조 가이드

데이터는 다음의 토픽 구조를 따라 MQTT 브로커로 전송되어야 합니다. {companyDomain}은 귀사에 할당된 고유 도메인 값으로 대체해야 합니다.

📌 서버룸 등 환경 센서 데이터:

{companyDomain}/server_room/d/{device_id}/n/{location}/e/{metric}

  • {device_id}: 센서 장치의 고유 ID (예: 24e12abc)
  • {location}: 센서 설치 위치 (예: 입구, rack1_top). URL 인코딩 가능한 문자 사용.
  • {metric}: 측정 항목 (예: temperature, humidity)
  • 예시: javame/server_room/d/24e12abc/n/입구/e/temperature

📌 서버 정보 (IP 또는 호스트명 기반):

{companyDomain}/server_data/h/{hostname_or_ip}/n/{hardware_component}/e/{metric}

  • {hostname_or_ip}: 서버의 호스트명 또는 IP 주소 (예: 192.168.1.100, web_server_01). 점(.)은 밑줄(_)로 대체 권장 (예: 192_168_1_100).
  • {hardware_component}: 하드웨어 구성 요소 (예: cpu, memory, disk_sda1, net_eth0)
  • {metric}: 해당 구성 요소의 측정 항목 (예: usage_user, used_percent, bytes_sent)
  • 예시: javame/server_data/h/192_168_1_100/n/cpu/e/usage_user

📌 서비스(애플리케이션) 정보:

{companyDomain}/service_data/s/{service_name}/g/{category}/e/{metric}

  • {service_name}: 모니터링 대상 서비스/애플리케이션 이름 (예: MyWebApp, OrderProcessingService)
  • {category}: 서비스 내 측정 항목 카테고리 (예: jvm_memory, active_threads, request_latency)
  • {metric}: 구체적인 측정 항목 (예: heap_used, count, p95_microseconds)
  • 예시: javame/service_data/s/MyWebApp/g/jvm_memory/e/heap_used

참고: Telegraf의 `influx` 데이터 포맷 사용 시, 태그(tag)와 필드(field)가 자동으로 InfluxDB 라인 프로토콜에 맞게 구성됩니다. 위 토픽 구조는 데이터 그룹핑 및 라우팅을 위한 논리적 구조이며, 실제 InfluxDB에 저장될 때는 토픽의 일부가 태그로 변환될 수 있습니다. (예: `origin=server_data`, `host=192_168_1_100`, `location=cpu` / `_measurement=usage_user`, `_field=value`)

3. 수집되는 데이터 종류 및 확인

본 서비스를 통해 다음과 같은 유형의 데이터들을 주로 수집하고 모니터링할 수 있습니다. 실제 수집되는 데이터는 에이전트 설정에 따라 달라집니다.

  • 서버 하드웨어: CPU 사용률 (코어별/전체), 메모리 사용량 (전체, 사용 가능, 버퍼/캐시), 디스크 사용량 (파티션별 용량, I/O), 네트워크 트래픽 (인터페이스별 송수신량, 에러), 시스템 Load Average 등
  • 서버룸 환경: 온도, 습도, 전력 사용량 (power_watts), 누수 감지 등 (지원 센서에 따라 다름)
  • 애플리케이션/서비스: JVM 메트릭 (힙 메모리, 스레드 수, GC 현황), 특정 프로세스 CPU/메모리 사용량, 애플리케이션 응답 시간, 처리량 등 (애플리케이션 및 에이전트 설정에 따라 다름)

수집된 데이터는 "메인 대시보드" 및 "통합 차트 분석" 페이지에서 확인할 수 있습니다.

4. 대시보드 활용 가이드

4.1. 메인 대시보드

메인 대시보드에서는 시스템의 전반적인 상태와 주요 지표들을 한눈에 확인할 수 있습니다. CPU, 메모리, 디스크, 네트워크 등의 현재 사용률을 게이지 차트로 보여주며, 주요 알림 사항도 함께 제공됩니다.

4.2. 통합 차트 분석

통합 차트 분석 페이지에서는 사용자가 직접 조회 기간, Y축 단위, 측정 항목 등을 선택하여 원하는 데이터를 심층적으로 분석할 수 있습니다. 여러 측정 항목의 시계열 데이터를 하나의 그래프에 중첩하여 비교 분석하는 것이 가능합니다.

사용 방법:

  1. 조회 기간 선택: 분석하고자 하는 데이터의 시작일과 종료일을 선택합니다.
  2. Y축 단위 선택: '% (퍼센트)' 또는 '°C (섭씨 온도)' 등 분석하려는 데이터의 단위를 선택합니다. 이 선택에 따라 아래 "측정 항목 목록"이 필터링됩니다.
  3. (선택) 데이터 Origin 선택: 특정 Origin의 데이터만 보고 싶을 경우 선택합니다.
  4. 조회 버튼 클릭: 선택한 조건에 맞는 측정 항목 목록이 아래 테이블에 표시됩니다.
  5. 측정 항목 선택: 테이블에서 그래프로 보고자 하는 측정 항목들을 체크박스로 선택합니다.
  6. 선택된 항목들의 시계열 데이터가 상단 꺾은선 그래프에 자동으로 그려집니다.

팁: 단위가 다른 데이터들(예: %와 °C)은 그래프의 Y축이 자동으로 분리되어 표시되므로, 값의 범위가 크게 달라도 함께 비교 분석할 수 있습니다.

5. 문제 해결 및 문의

서비스 이용 중 문제가 발생하거나 궁금한 점이 있으시면, 먼저 본 가이드 및 FAQ(향후 제공 예정)를 확인해주시기 바랍니다. 해결되지 않는 문제는 다음 연락처로 문의해주시면 신속하게 지원해드리겠습니다.

  • 기술 지원팀 이메일: [email protected] (예시)
  • 문의 전화: 1588-XXXX (예시)

본 서비스 안내는 최신 정보를 반영하기 위해 주기적으로 업데이트될 수 있습니다. (최종 업데이트: 2025년 05월 23일)