Skip to content
KitploitKITPLOIT
도구블로그
Log in
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
graph-go — 단순히 노드와 그래프 | Kitploit
도구/GitHubGitHub/guilherme-grimm/graph-go
Cloud Infrastructure SecurityContainer SecurityNetwork MappingConfiguration AuditingDevSecOpsDatabase SecurityLog Analysis
GitHubguilherme-grimm/graph-go

graph-go

단순히 노드와 그래프

저장소 보기
1245201개월 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

graph-go

인프라를 한눈에 확인하세요. 설정이 필요 없습니다.

graph-go를 스택에 연결하면 모든 데이터베이스, 테이블, 서비스, 스토리지 버킷의 실시간 대화형 지도를 실시간 상태 모니터링과 함께 볼 수 있습니다.

License: AGPL v3 graph-go demo


graph-go는 CLI 우선 인프라 매퍼입니다. Docker 데몬에 연결하고, 실행 중인 컨테이너를 검사하며, 데이터베이스 및 스토리지 서비스를 프로빙하여 인프라를 자동으로 발견합니다. UI는 백엔드에서 제공되며 실제 백엔드 상태를 반영합니다. 수동 인벤토리가 필요하지 않습니다.

기능세부 사항
자동 발견Docker 컨테이너 및 Kubernetes 클러스터에서 인프라를 감지합니다. 수동 인벤토리가 필요하지 않습니다.
Kubernetes네임스페이스, 디플로이먼트, 스테이트풀셋, 데몬셋, 파드, 서비스 — 인포머 기반 실시간 감시 제공
Docker실행 중인 컨테이너 분류, 자격 증명 추출, Docker 이벤트 감시, graphgo.* 레이블을 통해 유형/DSN/노드 유형/이름을 재정의하거나 컨테이너 무시 가능
PostgreSQL테이블, 외래 키 관계, 스키마 토폴로지
MongoDB데이터베이스 및 컬렉션
MySQL테이블, 외래 키 관계
Redis키스페이스 및 키 분포
Elasticsearch인덱스, 클러스터 상태, 샤드 상태
S3 / MinIO버킷 및 최상위 접두사
HTTP 서비스헬스 엔드포인트, 서비스 간 종속성 매핑
실시간 상태WebSocket 기반으로 5초마다 실시간 상태 업데이트
대화형 그래프수영장 레인 레이아웃, 네임스페이스 그룹 컨테이너, 패닝/줌, 유형/상태별 필터링, 노드 검색

Docker 레이블

graph-go는 제한된 graphgo.* 컨테이너 레이블 세트를 지원합니다 (제어하려는 모든 컨테이너에 설정 가능):

레이블효과
graphgo.ignore=true이 컨테이너를 완전히 건너뜁니다.
graphgo.type=postgres어댑터 유형을 강제 지정합니다 (postgres, mongodb, mysql, redis, elasticsearch, s3, http)
graphgo.dsn=...연결 문자열을 주입합니다 (postgres/mysql의 경우 DSN, mongodb의 경우 URI, 그 외의 경우 dsn으로 대체)
graphgo.node-type=gateway시각적 노드 유형을 재정의합니다 (service, gateway, auth, api, queue, cache)
graphgo.name=...그래프에 표시되고 노드 ID/로그에 사용되는 노드 이름을 재정의합니다.

이 레이블들을 사용하여 잘못 분류된 컨테이너를 구출하고, graph-go에 사용자 정의 DSN을 지정하거나, 컨테이너를 제거하지 않고 그래프에서 숨길 수 있습니다.


빠른 시작 — 30초 안에 체험하기

시드된 데모 스택을 CLI로 부팅하세요. 이것이 graph-go를 실제 환경에서 가장 빠르게 확인할 수 있는 방법이며, 처음 사용자를 위한 권장 온보딩 경로입니다:

git clone https://github.com/guilherme-grimm/graph-go.git
cd graph-go
go run ./cmd/app demo

**http://localhost:8080**을 여십시오. 명령어는 Docker Compose를 통해 연결된 상태로 실행됩니다. Ctrl+C를 눌러 연결된 세션을 중지하세요.

차가운 머신에서 첫 번째 실행은 Docker가 기본 이미지를 가져오고 로컬 데모 이미지를 빌드해야 하므로 몇 분 정도 걸릴 수 있습니다. 이후 실행은 훨씬 빠릅니다.

데모 스택은 다음 호스트 포트가 비어 있어야 합니다: 8080, 5432, 27017, 9000, 9001.

이후 명시적으로 정리해야 하는 경우:

docker compose -f docker-compose.demo.yml down

자체 스택에 대해 실행하기

하나의 컨테이너, 하나의 포트입니다. Docker 소켓을 읽기 전용으로 마운트하면 graph-go가 호스트에서 실행 중인 모든 것을 자동으로 발견합니다:

docker run -d -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  ghcr.io/guilherme-grimm/graph-go:latest

graph-go는 Docker 소켓에서만 읽습니다. :ro 플래그가 이를 강제합니다 — 유지하세요.

**http://localhost:8080**을 여십시오. 자동 발견은 Docker 컨테이너와 (kubeconfig 또는 클러스터 내 서비스 계정이 있는 경우) Kubernetes 리소스를 구성 파일 없이 처리합니다.

Docker/Kubernetes 외부에 있는 서비스(원격 데이터베이스, 관리형 클라우드 서비스)의 경우 구성 파일을 마운트하세요. 구성을 참조하십시오.


사전 빌드된 바이너리

단일 자체 포함 바이너리 — UI가 포함되어 있지만 진입점은 여전히 CLI입니다.

# Linux amd64 (GitHub CLI 필요; 다른 플랫폼은 Releases 참조)
gh release download --repo guilherme-grimm/graph-go --pattern 'graph-go_*_linux_amd64.tar.gz' --clobber
tar xzf graph-go_*_linux_amd64.tar.gz
./graph-go serve   # 또는 `./graph-go` - 동일합니다

**http://localhost:8080**을 여십시오. 다른 플랫폼은 Releases 페이지를 참조하십시오.


명령어

명령어기능
graph-go demo저장소에서 시드된 Docker Compose 데모 스택을 부팅하고 포그라운드에서 출력을 스트리밍합니다.
graph-go serve자동 발견 및 실시간 업데이트로 HTTP 서버를 시작합니다 (기본값 - 인수 없이 실행하는 것과 동일).
graph-go scan발견을 한 번 실행하고 그래프를 JSON으로 stdout에 출력합니다. jq로 파이핑하거나, CI 검사, 또는 일회성 내보내기에 유용합니다.
graph-go version버전, 커밋, 빌드 날짜를 출력합니다.
graph-go --health-check로컬 /health를 호출하고 0/1로 종료합니다. 컨테이너 HEALTHCHECK에서 사용되며, 대화형 사용에는 적합하지 않습니다.

전역 플래그(모든 하위 명령어에 적용): --config, --log-level, --log-format. 전체 명령어별 정보는 graph-go <command> --help를 참조하십시오.

일반적인 흐름:

  1. graph-go demo — 실제 로컬 워크스루.
  2. graph-go serve — 자체 인프라에 대해 실행.
  3. graph-go scan — 일회성 자동화, 내보내기, 또는 CI 검사에 사용.

포트

포트용도
8080graph-go (UI + API + WebSocket — 프로덕션)
5173Vite 개발 서버 (개발 전용 — CONTRIBUTING.md 참조)
9001MinIO 콘솔 (데모 스택 전용)

구성

자동 발견이 경로입니다. Docker 소켓을 마운트하거나 Kubernetes 클러스터 내에서 실행하십시오 — graph-go는 구성 파일 없이 인프라를 발견합니다.

YAML 구성 (conf/config.yaml)은 발견을 통해 접근할 수 없는 서비스(원격 데이터베이스, 관리형 클라우드 서비스, 외부 엔드포인트)에 대한 탈출구로만 사용하십시오. 전체 스키마는 conf/config.sample.yaml을 참조하십시오 — 모든 어댑터 및 모든 구성 블록(server, docker, kubernetes, connections)에 대한 예제가 있습니다.

위의 Docker 실행과 함께 구성 파일을 사용하려면:

docker run -d -p 8080:8080 \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  -v $(pwd)/conf/config.yaml:/app/conf/config.yaml:ro \
  ghcr.io/guilherme-grimm/graph-go:latest

허가된 사용만: graph-go는 귀하가 소유하거나 액세스 권한이 있는 인프라를 시각화하기 위한 것입니다. 승인 없이 시스템에 사용하지 마십시오.


아키텍처 개요

백엔드 (Go)

                          ┌─────────────────────────────────────┐
                          │         Discoverer Interface         │
                          │  Discover() · Watch() · Close()     │
                          └──────────┬──────────┬───────────────┘
                                     │          │
                          ┌──────────▼──┐  ┌────▼──────────────┐
                          │   Docker    │  │   Kubernetes       │
                          │  Discoverer │  │   Discoverer       │
                          │ (containers,│  │ (informers, pods,  │
                          │  classify,  │  │  deployments,      │
                          │  events)    │  │  services, health) │
                          └──────┬──────┘  └────┬──────────────┘
                                 │               │
                          ┌──────▼───────────────▼──────┐
                          │  Parallel Discovery + Merge  │
                          │  (concatenate ServiceInfo)   │
                          └──────────────┬──────────────┘
                                         │
Config (YAML) ──→ YAML Merge ───────────▶│
                                         ▼
                          ┌─────────────────────────────┐
                          │     Adapter Registry         │
                          │  ├─ PostgreSQL  → Tables + FK│
                          │  ├─ MongoDB    → Collections │
                          │  ├─ MySQL      → Tables + FK │
                          │  ├─ Redis      → Keyspaces   │
                          │  ├─ Elasticsearch → Indices   │
                          │  ├─ S3         → Buckets      │
                          │  └─ HTTP       → Health + deps│
                          │                               │
                          │  + Topology (K8s nodes/edges) │
                          └──────────────┬───────────────┘
                                         ▼
                          Graph Model (Nodes + Edges)
                                         ▼
                          REST API + WebSocket (Real-time)

주요 구성 요소:

  • Discoverer 인터페이스: 모든 발견 백엔드에 대한 통일된 계약 (Discover, Watch, Close) — Docker와 Kubernetes가 병렬로 실행되고 결과가 연결됩니다.
  • Docker 발견: 컨테이너를 검사하고, 이미지를 분류하며, 환경 변수에서 자격 증명을 추출하고, Docker 이벤트를 감시하여 실시간 토폴로지 변경을 처리합니다.
  • Kubernetes 발견: 디바운스된 이벤트 처리를 통해 client-go 인포머를 사용합니다; 네임스페이스, 디플로이먼트, 스테이트풀셋, 데몬셋, 파드, 서비스를 상태 매핑과 함께 발견합니다.
  • 어댑터: Adapter 인터페이스를 구현하여 데이터베이스 및 스토리지 서비스를 프로빙합니다.
  • 레지스트리: 어댑터 및 토폴로지 세트를 관리하고, 서비스 수준의 부모 노드를 생성하며, 그래프 데이터를 집계합니다.
  • 캐시: 30초 TTL과 singleflight 패턴을 사용하여 thundering herd를 방지합니다.
  • WebSocket: 5초마다 상태 업데이트를 스트리밍합니다.

프론트엔드 (React + TypeScript)

도구 다운로드