デプロイ

a10y は Kubernetes(本番環境)または Docker Compose(ローカル開発)で動作します。

アーキテクチャ

UI
aether-ide aether-term
Core
correlation-engine active-inventory
Data
OpenObserve Keep Qdrant Vector NATS

ダッシュボード(データ層 UI)

デプロイ後、データ層の各コンポーネントはビルトインのダッシュボードをすぐに利用できます。これらは日常運用の主要インターフェースです。

OpenObserve

:5080

ログ、メトリクス、トレース — すべてを 1 つの UI で。ダッシュボードの構築、SQL/PromQL クエリの実行、アラートの設定が可能。主要なオブザーバビリティインターフェース。

admin@a10y.local / changeme
http://localhost:5080

Keep

:3001

アラート管理コンソール。相関アラートの表示、ワークフローの作成、外部監視ツールとの連携設定。

http://localhost:3001

Qdrant

:6333/dashboard

ベクトル DB ダッシュボード。コレクションの閲覧、保存されたエンベディングの検査、類似検索の実行、クラスタヘルスの監視。

http://localhost:6333/dashboard

NATS Monitor

:8222

メッセージングのヘルス状態。アクティブ接続数、JetStream ストリーム/コンシューマー、メッセージレート、サブスクリプション詳細。

http://localhost:8222

全ポート一覧

サービスポート役割UI
OpenObserve5080ログ、メトリクス、トレースダッシュボード
Keep (frontend)3001アラート管理ダッシュボード
Keep (backend)8082Alert API
Qdrant6333ベクトル DBダッシュボード
NATS4222 / 8222メッセージング / モニターモニター
Vector9000 / 6514Syslog / Vector protocol
correlation-engine8000AI エンジン API
active-inventory8081トポロジー API
aether-ide8080Web IDE(予定)
aether-term3000ターミナル(予定)

Kubernetes (Helm)

前提条件

クイックスタート

# Add the a10y chart repo
helm repo add a10y https://autonomously-io.github.io/charts
helm repo update

# Create namespace and secret
kubectl create namespace a10y
kubectl -n a10y create secret generic correlation-engine-secrets \
  --from-literal=ANTHROPIC_API_KEY=sk-ant-...

# Install
helm install a10y a10y/autonomously -n a10y

カスタム設定

# values-prod.yaml
components:
  correlation-engine:
    env:
      AI_MODEL: "claude-sonnet-4-20250514"
    resources:
      requests:
        cpu: "1"
        memory: 2Gi

  aether-ide:
    ingress:
      enabled: true
      host: ide.a10y.example.com

openobserve:
  auth:
    ZO_ROOT_USER_EMAIL: "admin@example.com"
    ZO_ROOT_USER_PASSWORD: "your-secure-password"
  persistence:
    size: 500Gi

qdrant:
  persistence:
    size: 50Gi

# Install with custom values
# helm install a10y a10y/autonomously -n a10y -f values-prod.yaml

コンポーネントの無効化

# Minimal install (engine + data layer only, no UI)
helm install a10y a10y/autonomously -n a10y \
  --set components.aether-ide.enabled=false \
  --set components.aether-term.enabled=false

Docker Compose

前提条件

セットアップ

# Clone
git clone https://github.com/autonomously-io/autonomously-io.github.io.git a10y
cd a10y

# Configure
cp .env.example .env
# Edit .env and set ANTHROPIC_API_KEY

# Start all services
docker compose up -d

# Check status
docker compose ps

# View logs
docker compose logs -f correlation-engine

docker-compose.yml

services:
  # -- Core
  correlation-engine:
    image: ghcr.io/autonomously-io/correlation-engine:latest
    ports: ["8000:8000"]
    environment:
      AI_MODEL: claude-sonnet-4-20250514
      OPENOBSERVE_URL: http://openobserve:5080
      OPENOBSERVE_USER: admin@a10y.local
      KEEP_API_URL: http://keep-backend:8080
      NATS_URL: nats://nats:4222
      QDRANT_URL: http://qdrant:6333
      QDRANT_COLLECTION: incidents
      INVENTORY_URL: http://active-inventory:8080
      ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
    depends_on: [openobserve, keep-backend, nats, qdrant]

  active-inventory:
    image: ghcr.io/autonomously-io/active-inventory:latest
    ports: ["8081:8080"]

  # -- UI
  aether-ide:
    image: ghcr.io/autonomously-io/aether-ide:latest
    ports: ["8080:8080"]
    environment:
      CORRELATION_ENGINE_URL: http://correlation-engine:8000

  aether-term:
    image: ghcr.io/autonomously-io/aether-term:latest
    ports: ["3000:3000"]
    environment:
      CORRELATION_ENGINE_URL: http://correlation-engine:8000

  # -- Data layer
  openobserve:
    image: public.ecr.aws/zinclabs/openobserve:latest
    ports: ["5080:5080"]
    environment:
      ZO_ROOT_USER_EMAIL: admin@a10y.local
      ZO_ROOT_USER_PASSWORD: changeme
      ZO_LOCAL_MODE: "true"
    volumes: ["openobserve-data:/data"]

  keep-backend:
    image: us-central1-docker.pkg.dev/keephq/keep/keep-api:latest
    ports: ["8082:8080"]

  keep-frontend:
    image: us-central1-docker.pkg.dev/keephq/keep/keep-ui:latest
    ports: ["3001:3000"]
    environment:
      API_URL: http://keep-backend:8080

  nats:
    image: nats:2-alpine
    ports: ["4222:4222", "8222:8222"]
    command: ["--js", "--sd", "/data", "-m", "8222"]
    volumes: ["nats-data:/data"]

  qdrant:
    image: qdrant/qdrant:latest
    ports: ["6333:6333"]
    volumes: ["qdrant-data:/qdrant/storage"]

  vector:
    image: timberio/vector:0.41.1-alpine
    ports: ["9000:9000", "6514:6514"]
    volumes: ["./vector.yaml:/etc/vector/vector.yaml:ro"]
    depends_on: [openobserve]

volumes:
  openobserve-data:
  nats-data:
  qdrant-data:

.env.example

ANTHROPIC_API_KEY=sk-ant-your-key-here

ログ転送

a10y は Vector 経由でログを取り込みます。2 つの入力プロトコルに対応しています:

Syslog (TCP :9000)

ネットワークデバイス、perfSONAR などから syslog を送信。

# rsyslog
*.* @@vector-host:9000

# syslog-ng
destination d_a10y {
  tcp("vector-host" port(9000));
};

Vector Protocol (:6514)

ホストに Vector エージェントをデプロイして構造化ログを転送。

# vector.yaml (agent)
sinks:
  a10y:
    type: vector
    address: "vector-host:6514"
    version: "2"

対応ソース

ソースプロトコル変換
free5GCVector agentparse_free5gc (auto-tagged)
perfSONARSyslog TCPparse_perfsonar (auto-tagged)
ネットワークデバイスSyslog TCPCustom VRL transforms
KubernetesVector agentPod metadata enrichment