このガイドでは、オンプレミス EKB 導入における問題のトラブルシューティングのためのレベル 1 (L1) 診断手順を説明します。これらの手順は、コンテナー、データベース、サービス、システム リソースに関する一般的な問題を特定するのに役立ちます。
Prerequisites: You need SSH access to the customer’s VM/server where EKB is deployed, and appropriate permissions to run Docker commands and access container logs.
コンテナのステータスチェック
すべてのコンテナのステータスを確認する
まず、実行中のコンテナとその健全性ステータスを確認します。
# Check all containers status
docker ps -a
# Check containers with health status
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Health}}"
# Check specific container status
docker ps -a | grep <container_name>
予想されるコンテナ:
web - フロントエンド アプリケーション
api または fastapi_backend - バックエンド API サーバー
worker または celery_worker - セロリワーカー
redis - Redis キャッシュ
rabbitmq - RabbitMQ メッセージ キュー
supabase-studio - Supabase スタジオ
supabase-kong - Kong API ゲートウェイ
supabase-auth - 認証サービス
supabase-db または postgres - PostgreSQL データベース
- その他の Supabase サービス (ストレージ、メタなど)
確認事項:
- すべてのコンテナが「稼働中」ステータスである必要があります
- コンテナは「再起動中」または「終了」状態であってはなりません
- ヘルスチェックでは、該当する場合は「正常」と表示される必要があります
失敗したコンテナを再起動する
コンテナが停止または再起動している場合:
# Restart a specific container
docker restart <container_name>
# Restart all containers
docker compose restart
# Restart specific service
docker compose restart <service_name>
バックエンドコンテナログ
API コンテナのログを確認する
バックエンド API コンテナーのログには、エラー、データベース接続、サービスの問題に関する重要な情報が含まれています。
# View recent logs (last 100 lines)
docker logs --tail 100 api
# Or for fastapi_backend
docker logs --tail 100 fastapi_backend
# Follow logs in real-time
docker logs -f api
# View logs with timestamps
docker logs -t api
# View logs from specific time
docker logs --since 30m api
# View logs between timestamps
docker logs --since "2024-01-01T00:00:00" --until "2024-01-01T23:59:59" api
注意すべき点:
- データベース接続エラー
- Redis 接続の失敗
- RabbitMQ 接続の問題
- 認証エラー
- API エンドポイント エラー (500、503 など)
- インポート/エクスポートのエラー
- ナレッジベースの処理エラー
- ワーカータスクの失敗
ワーカー コンテナのログを確認する
ワーカー コンテナはバックグラウンド タスク (KB 処理、埋め込みなど) を処理します。
# Check worker logs
docker logs --tail 100 worker
# Or for celery_worker
docker logs --tail 100 celery_worker
# Check all worker instances
docker ps | grep worker
docker logs <worker_container_name>
注意すべき点:
- タスク実行エラー
- メモリの問題
- タイムアウトエラー
- ワーカーでのデータベース接続エラー
- ナレッジベースの同期エラー
- 埋め込み生成エラー
Web コンテナのログを確認する
フロントエンド コンテナーのログにより、UI と API の接続の問題が明らかになる場合があります。
# Check web container logs
docker logs --tail 100 web
# Follow logs
docker logs -f web
注意すべき点:
- ビルドエラー
- API接続の失敗
- 環境変数の問題
- ポートバインディングエラー
データベースのステータス
PostgreSQL/Supabase データベースのステータスを確認する
# Check database container status
docker ps | grep -E "(db|postgres|supabase-db)"
# Check database container logs
docker logs --tail 100 supabase-db
# Or for postgres container
docker logs --tail 100 postgres
# Connect to database (if psql is available)
docker exec -it supabase-db psql -U postgres
# Check database connections
docker exec supabase-db psql -U postgres -c "SELECT count(*) FROM pg_stat_activity;"
# Check database size
docker exec supabase-db psql -U postgres -c "SELECT pg_size_pretty(pg_database_size('postgres'));"
確認事項:
- データベースコンテナが実行中である
- 接続エラーがログに記録されない
- データベースがいっぱいではありません (ディスク容量を確認してください)
- アクティブな接続は制限内です
- 操作をブロックする長時間実行クエリなし
API からデータベース接続を確認する
# Test database connection from API container
docker exec api python -c "
import os
from sqlalchemy import create_engine
try:
engine = create_engine(os.environ.get('DATABASE_URL'))
conn = engine.connect()
print('Database connection successful')
conn.close()
except Exception as e:
print(f'Database connection failed: {e}')
"
データベースの移行を確認する
# Check if migrations are up to date
docker exec api alembic current
# Check migration history
docker exec api alembic history
# View pending migrations
docker exec api alembic heads
Redis ステータス
Redis コンテナを確認する
# Check Redis container status
docker ps | grep redis
# Check Redis logs
docker logs --tail 100 redis
# Test Redis connection
docker exec redis redis-cli ping
# Should return: PONG
# Check Redis info
docker exec redis redis-cli info
# Check Redis memory usage
docker exec redis redis-cli info memory
# Check connected clients
docker exec redis redis-cli info clients
確認事項:
- Redis が ping に応答しています
- メモリ使用量が制限内にある
- 接続エラーなし
- エビクション エラーなし (メモリがいっぱい)
API コンテナから Redis をテストする
# Test Redis connection from API
docker exec api python -c "
import redis
import os
try:
r = redis.Redis(host='redis', port=6379, decode_responses=True)
r.ping()
print('Redis connection successful')
except Exception as e:
print(f'Redis connection failed: {e}')
"
RabbitMQ ステータス
RabbitMQ コンテナを確認する
# Check RabbitMQ container status
docker ps | grep rabbitmq
# Check RabbitMQ logs
docker logs --tail 100 rabbitmq
# Check RabbitMQ management (if accessible)
# Access: http://<server-ip>:15672
# Default credentials: user/password
確認事項:
- コンテナは実行中です
- 接続エラーなし
- キューがメッセージを処理中です
- メッセージのバックログがない
API から RabbitMQ を確認する
# Test RabbitMQ connection
docker exec api python -c "
import pika
try:
connection = pika.BlockingConnection(
pika.ConnectionParameters('rabbitmq', 5672, '/',
pika.PlainCredentials('user', 'password'))
)
print('RabbitMQ connection successful')
connection.close()
except Exception as e:
print(f'RabbitMQ connection failed: {e}')
"
システムリソース
ディスク容量を確認する
ディスク容量が少ないと、データベース、ストレージ、コンテナーの問題が発生する可能性があります。
# Check overall disk usage
df -h
# Check disk usage for Docker volumes
docker system df
# Check specific volume usage
docker volume inspect <volume_name>
# Check directory sizes
du -sh /var/lib/docker/volumes/*
du -sh ./supabase/docker/volumes/*
# Check in-container disk usage (for database)
docker exec supabase-db df -h
確認事項:
- ルート パーティションに十分なスペースがある (20% 以上の空きを推奨)
- Docker ボリュームがいっぱいではない
- データベース データ ディレクトリに空きがある
- Superbase ストレージにスペースがある
メモリ使用量を確認する
# Check system memory
free -h
# Check container memory usage
docker stats --no-stream
# Check specific container memory
docker stats <container_name> --no-stream
確認事項:
- システムに使用可能なメモリがある
- コンテナがメモリ制限に達していない
- ログに OOM (メモリ不足) による強制終了はありません
CPU 使用率を確認する
# Check CPU usage
top
# or
htop
# Check container CPU usage
docker stats --no-stream
ネットワーク接続
コンテナネットワークを確認する
# Check Docker network
docker network ls
# Inspect network configuration
docker network inspect <network_name>
# Check if containers can communicate
docker exec api ping -c 3 redis
docker exec api ping -c 3 rabbitmq
docker exec api ping -c 3 supabase-db
ポートの可用性を確認する
# Check if ports are in use
netstat -tulpn | grep -E "(3001|8001|6379|5672|5432|8000)"
# Or using ss
ss -tulpn | grep -E "(3001|8001|6379|5672|5432|8000)"
# Check port from container
docker exec api curl -I http://localhost:8001/health
環境変数
環境構成を確認する
# Check environment variables for a container
docker exec api env | grep -E "(DATABASE|REDIS|RABBITMQ|API)"
# Check .env files (if accessible)
cat ./env/.env.server | grep -v "PASSWORD\|SECRET\|KEY" # Exclude sensitive data
cat ./env/.env.web | grep -v "PASSWORD\|SECRET\|KEY"
# Check environment from docker-compose
docker compose config
確認事項:
- データベース接続文字列が正しい
- Redis および RabbitMQ のホスト名が正しい
- API URLが適切に構成されている
- 必要な環境変数が設定されている
- 変数名のタイプミスがないこと
ファイルのアクセス許可
ファイルとディレクトリのアクセス許可を確認する
# Check permissions on key directories
ls -la ./alignment-project-server
ls -la ./ai-content-creator
ls -la ./supabase/docker/volumes
# Check Docker socket permissions
ls -la /var/run/docker.sock
# Check certificate files (if using HTTPS)
ls -la ./certs/
確認事項:
- アプリケーションディレクトリは読み取り可能です
- Docker ソケットに正しい権限がある
- ボリュームマウントには適切な権限が必要です
- 証明書ファイルにアクセス可能
サービス固有のチェック
ナレッジベースの問題
ナレッジベースが更新または処理されていない場合:
# Check worker logs for KB processing
docker logs --tail 200 worker | grep -i "knowledge\|kb\|embedding"
# Check for embedding model issues
docker logs api | grep -i "embedding\|model"
# Check Supabase storage
docker logs supabase-storage
# Check file upload limits
docker exec supabase-db psql -U postgres -c "
SELECT name, file_size_limit
FROM storage.buckets;
"
チャット/エージェントの問題
# Check API logs for agent errors
docker logs --tail 200 api | grep -i "agent\|chat\|llm"
# Check worker logs for agent tasks
docker logs --tail 200 worker | grep -i "agent\|chat"
認証の問題
# Check auth service logs
docker logs --tail 100 supabase-auth
# Check database for auth issues
docker exec supabase-db psql -U postgres -c "
SELECT * FROM auth.users LIMIT 5;
"
一般的なエラー パターン
データベース接続エラー
症状:
- 「接続が拒否されました」エラー
- 「接続が多すぎます」エラー
- タイムアウトエラー
診断手順:
- データベース コンテナーが実行されていることを確認します:
docker ps | grep db
- データベース ログを確認します:
docker logs supabase-db
- 接続制限を確認します:
docker exec supabase-db psql -U postgres -c "SHOW max_connections;"
- アクティブな接続を確認します:
docker exec supabase-db psql -U postgres -c "SELECT count(*) FROM pg_stat_activity;"
- 環境変数の DATABASE_URL を確認します。
Redis 接続エラー
症状:
- Redis への「接続が拒否されました」
- キャッシュミス
- セッションの問題
診断手順:
- Redis コンテナーを確認します:
docker ps | grep redis
- Redis をテストします:
docker exec redis redis-cli ping
- Redis ログを確認します:
docker logs redis
- 環境変数で Redis ホスト名を確認する
ワーカータスクの失敗
症状:
- タスクが完了しない
- ナレッジベースが同期しない
- バックグラウンドジョブが失敗する
診断手順:
- ワーカーのログを確認します:
docker logs worker
- ワーカーコンテナのステータスを確認します:
docker ps | grep worker
- RabbitMQ キューを確認する: RabbitMQ 管理 UI にアクセスします。
- メモリの問題を確認します:
docker stats worker
ストレージ/ファイルのアップロードの問題
症状:
- ファイルのアップロードに失敗する
- 「ファイルが大きすぎます」エラー
- ストレージ割り当てを超過しました
診断手順:
- ディスク容量を確認します:
df -h
- Supabase ストレージ ログを確認します:
docker logs supabase-storage
- Supabase 設定でファイル サイズ制限を確認する
- ストレージバケット構成を確認する
クイック診断スクリプト
すべてのチェックを一度に実行する診断スクリプトを作成します。
#!/bin/bash
echo "=== EKB On-Premise Diagnostics ==="
echo ""
echo "1. Container Status:"
docker ps --format "table {{.Names}}\t{{.Status}}"
echo ""
echo "2. Disk Space:"
df -h | grep -E "(Filesystem|/dev/)"
echo ""
echo "3. Memory:"
free -h
echo ""
echo "4. Redis:"
docker exec redis redis-cli ping 2>/dev/null || echo "Redis not responding"
echo ""
echo "5. Database:"
docker exec supabase-db psql -U postgres -c "SELECT version();" 2>/dev/null || echo "Database not responding"
echo ""
echo "6. Recent API Errors (last 20 lines):"
docker logs --tail 20 api 2>/dev/null | grep -i error || echo "No recent errors"
echo ""
echo "=== Diagnostics Complete ==="
diagnostics.sh として保存し、実行可能ファイルを作成: chmod +x diagnostics.sh、実行: ./diagnostics.sh
エスカレーション情報
L2 サポートにエスカレーションする場合は、以下を提供します。
- コンテナステータス:
docker ps -a の出力
- 最近のログ: 関連するコンテナからの最後の 100 ~ 200 行
- システム リソース:
df -h および free -h の出力
- エラー メッセージ: ログからの特定のエラー メッセージ
- 設定: 設定される環境変数名 (値ではありません)
- タイムライン: 問題の開始時期
- 影響: どの機能が影響を受けますか
サポートへのお問い合わせ: support@automationanywhere.com
追加のリソース