Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

zbum/scouter-agent-host-go

Repository files navigation

Scouter Host Agent (Go)

Scouter Host Agent의 Go 구현체입니다. 호스트 시스템의 CPU, 메모리, 디스크, 네트워크 메트릭을 수집하여 Scouter Collector 서버로 전송하는 경량 모니터링 에이전트입니다.

Java 버전의 scouter.agent.host를 Go로 포팅한 프로젝트입니다.

주요 기능

  • CPU 사용률 (전체/시스템/사용자)
  • 메모리 사용률 및 용량
  • Swap 사용률
  • 네트워크 I/O (인터페이스별 RX/TX bytes/sec)
  • 디스크 I/O (디바이스별 Read/Write bytes/sec)
  • TCP 연결 상태 (ESTABLISHED, TIME_WAIT, FIN_WAIT 등)
  • 프로세스별 CPU 모니터링 (.scouter 레지스트리 연동)
  • CPU/메모리/디스크 임계값 알림
  • 설정 파일 Hot-Reload (3초 간격)
  • TCP를 통한 서버 RPC 처리 (HOST_TOP, HOST_DISK_USAGE, 설정 조회/변경 등)

빌드

# 빌드
make build
# 빌드 후 실행
make run
# 크로스 컴파일 (linux/darwin/windows, amd64/arm64)
make build-all
# 테스트
make test

설정

conf/scouter.conf 파일에서 설정합니다.

### Network
net_collector_ip=127.0.0.1
#net_collector_udp_port=6100
#net_collector_tcp_port=6100
#net_collector_tcp_session_count=1
### Object
#obj_type=
#obj_name=
### Counter
#counter_enabled=true
#counter_object_registry_path=/tmp/scouter
### Logging
#log_dir=./logs
#log_rotation_enabled=true
#log_keep_days=365
### Alert - CPU
#cpu_alert_enabled=true
#cpu_warning_pct=70
#cpu_fatal_pct=90
### Alert - Memory
#mem_alert_enabled=false
#mem_warning_pct=80
#mem_fatal_pct=90
### Alert - Disk
#disk_alert_enabled=true
#disk_warning_pct=70
#disk_fatal_pct=90

실행

./dist/scouter-agent-host

종료 방법:

  • SIGINT (Ctrl+C) 또는 SIGTERM 시그널
  • PID 파일 ({pid}.scouter) 삭제 시 자동 종료

프로젝트 구조

scouter-agent-host-go/
├── cmd/scouter-agent-host/ # 엔트리 포인트
├── internal/
│ ├── config/ # 설정 관리 (hot-reload)
│ ├── logger/ # 파일 로깅 (날짜 로테이션)
│ ├── protocol/ # Scouter 바이너리 프로토콜
│ │ ├── pack/ # Pack 타입 (ObjectPack, PerfCounterPack 등)
│ │ └── value/ # Value 타입 (MapValue, DecimalValue 등)
│ ├── counter/ # 카운터 수집 시스템
│ │ ├── meter/ # 슬라이딩 윈도우 메트릭 집계
│ │ └── task/ # 수집 태스크 (HostPerf, NetDisk, Heartbeat, ProcPerf)
│ └── netio/ # 네트워크 I/O
│ ├── data/ # UDP 전송 (카운터, 하트비트, 알림)
│ ├── tcp/ # TCP 세션 관리 (서버 RPC)
│ └── request/handler/ # RPC 핸들러 (HOST_TOP, DISK_USAGE, 설정 등)
├── conf/scouter.conf # 설정 파일
├── Makefile
└── go.mod

수집 카운터

카운터 설명
Cpu, SysCpu, UserCpu CPU 사용률
Mem, MemT, MemU, MemA 메모리 (%, 전체, 사용, 가용 MB)
Swap, SwapT, SwapU Swap (%, 전체, 사용 MB)
NetInBound, NetOutBound 네트워크 수신/송신 bytes
NetRxBytes, NetTxBytes 인터페이스별 네트워크 bytes/sec
DiskReadBytes, DiskWriteBytes 디스크 Read/Write bytes/sec
TcpStatEST, TcpStatTIM, TcpStatFIN, TcpStatCLS TCP 연결 상태
ProcCpu 프로세스별 CPU 사용률

요구 사항

  • Go 1.26+
  • Scouter Collector 서버 (scouter-server-go 또는 Java 서버)

라이선스

Apache License 2.0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

Contributors

AltStyle によって変換されたページ (->オリジナル) /