detect-anomalies-aiops
정보
이 스킬은 시계열 분석(Isolation Forest, Prophet, LSTM), 알림 상관관계 분석 및 근본 원인 분석을 활용하여 운영 메트릭에 대한 AI 기반 이상 감지를 구현합니다. 시스템 메트릭, 로그 및 트레이스에서 진정한 이상 현상을 지능적으로 식별하여 알림 피로를 줄입니다. 정적 임계값이 실패할 때, 복잡한 다중 메트릭 이상을 탐지해야 할 때, 또는 사용자 영향 발생 전에 사전적으로 문제를 예측해야 할 때 사용하십시오.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/detect-anomalies-aiopsClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
AIOpsのための異常検知
完全な設定ファイルとテンプレートについては拡張例を参照。
機械学習を適用して運用メトリクスの異常を検知し、アラートを相関させ、誤検知を削減する。
使用タイミング
- 運用チームがアラート量に圧倒されている時(1日100件以上のアラート)
- 複雑なマルチメトリクス異常の検知が必要な時(単なる閾値超過ではない)
- 季節パターンが静的閾値を無効にする時
- ユーザー影響前にプロアクティブに問題を予測したい時
- 関連アラートを相関させて根本原因を特定する必要がある時
- モニタリングシステムが偽陽性を多く生成する時
- 微妙なパフォーマンス劣化トレンドを検知したい時
入力
- 必須: モニタリングシステムからの時系列メトリクス(CPU、メモリ、レイテンシ、エラー率)
- 必須: 過去データ(最低30〜90日)
- 任意: ラベル付きアラート履歴(真陽性/偽陽性)
- 任意: システムトポロジー(サービス依存関係)
- 任意: 相関用のログデータ
- 任意: コンテキスト用のデプロイメント/変更イベント
手順
ステップ1: 環境セットアップとデータロード
依存関係をインストールし、分析用の時系列データを準備する。
# Create virtual environment
python -m venv venv
source venv/bin/activate
# Install anomaly detection libraries
pip install prophet scikit-learn pandas numpy
pip install tensorflow keras # for LSTM models
pip install pyod # Python Outlier Detection library
pip install statsmodels # for statistical methods
pip install prometheus-api-client # if using Prometheus
# Visualization
pip install plotly matplotlib seaborn
データのロードと準備:
# aiops/data_loader.py
import pandas as pd
import numpy as np
from datetime import datetime, timedelta
from typing import List, Dict
import logging
logging.basicConfig(level=logging.INFO)
# ... (see EXAMPLES.md for complete implementation)
期待結果: 時系列データが正規の間隔でロードされ、欠損値が処理され、MLモデル用の特徴量が設計されている。
失敗時: Prometheus接続が失敗する場合はURLとネットワークアクセスを確認、データギャップがある場合は前方フィルまたは補間を使用、タイムスタンプ列がdatetime型であることを確認、大きな日付範囲でのメモリ問題を確認(チャンクで処理)。
ステップ2: 多変量異常検知のためのIsolation Forestの実装
教師なしIsolation Forestアルゴリズムを使用して異常を検知する。
# aiops/isolation_forest_detector.py
from sklearn.ensemble import IsolationForest
from sklearn.preprocessing import StandardScaler
import pandas as pd
import numpy as np
from typing import Dict, List
import joblib
# ... (see EXAMPLES.md for complete implementation)
期待結果: 過去データで学習されたモデル、スコア付きで検知された異常、通常データポイントの0.5〜2%がフラグされる。
失敗時: 異常が多すぎる場合(>5%)、contaminationパラメータを下げるかクリーンなベースライン期間で再学習、少なすぎる場合(<0.1%)、contaminationを上げるか特徴量スケーリングを確認、特徴量に十分な分散があることを確認。
ステップ3: 時系列予測と異常検知のためのProphetの実装
Facebook Prophetを使用して季節性をモデル化し偏差を検知する。
# aiops/prophet_detector.py
from prophet import Prophet
import pandas as pd
import numpy as np
from typing import Dict, Tuple
import logging
logger = logging.getLogger(__name__)
# ... (see EXAMPLES.md for complete implementation)
期待結果: Prophetモデルが日次/週次の季節性を捕捉し、実際の値が99%信頼区間外に落ちた時に異常が検知され、キャパシティプランニング用の予測が生成される。
失敗時: Prophetに時間がかかりすぎる場合(メトリクスごとに5分以上)、過去データを30日に減らすかweekly_seasonalityを無効にする、偽陽性が多すぎる場合はinterval_widthを0.995に増加、季節パターンが欠如する場合はカスタム季節性を追加、タイムスタンプのタイムゾーン一貫性を確認。
ステップ4: アラート相関と根本原因の特定
関連する異常をグループ化し、潜在的な根本原因を特定する。
# aiops/alert_correlation.py
import pandas as pd
import numpy as np
from sklearn.cluster import DBSCAN
from typing import List, Dict
from datetime import timedelta
import networkx as nx
# ... (see EXAMPLES.md for complete implementation)
期待結果: 関連する異常がインシデントにグループ化され、依存関係グラフに基づいて根本原因が特定され、調査用のインシデントサマリーが生成される。
失敗時: すべての異常が別々のインシデントになる場合、time_window_minutesを増加する、根本原因の検知が不明確な場合、アーキテクチャに基づいてmetric_relationshipsを明示的に定義する、タイムスタンプのソートが正しいことを確認。
ステップ5: アラートシステムとの統合
コンテキスト付きのインテリジェントアラートとノイズ抑制を送信する。
# aiops/intelligent_alerting.py
import requests
import logging
from typing import Dict, List
from datetime import datetime, timedelta
import json
logger = logging.getLogger(__name__)
# ... (see EXAMPLES.md for complete implementation)
期待結果: 高重大度インシデントがPagerDutyページをトリガーし、中重大度はSlackに送信され、低重大度はログのみ、15分ウィンドウ内で重複アラートが抑制される。
失敗時: まずcurlでWebhook URLをテスト、重大度計算が妥当な値を生成するか確認(0.5〜0.9の範囲)、レート制限がすべてのアラートを抑制していないか確認、last_alerts追跡のタイムゾーン処理が正しいことを確認。
ステップ6: 継続的モニタリングサービスとしてのデプロイ
定期的に実行される自動化パイプラインをセットアップする。
# aiops/monitoring_service.py
import schedule
import time
import logging
from datetime import datetime, timedelta
from data_loader import MetricsDataLoader
from isolation_forest_detector import IsolationForestDetector
from prophet_detector import ProphetAnomalyDetector
# ... (see EXAMPLES.md for complete implementation)
期待結果: サービスが継続的に実行され、5分ごとに異常を検知し、インシデントに対してアラートが送信され、すべてのアクティビティがログされる。
失敗時: スケジューラプロセスが生き続けることを確認(本番ではsystemd/supervisorを使用)、Prometheus接続性を確認、モデルが正常にロードされることを確認、サービスが停止した場合のデッドマンスイッチアラートを実装、メモリ使用量を監視(メモリが増加する場合はモデルを定期的にリロード)。
バリデーション
- 過去データがタイムスタンプの欠落なく正しくロードされている
- Isolation Forestがテストセットの既知の異常を検知する
- Prophetモデルが可視化で日次/週次の季節性を捕捉する
- アラート相関が時間的に関連する異常をグループ化する
- 根本原因検知が上流の問題を正しく特定する
- インテリジェントアラートが重複アラートを抑制する
- 重大度計算が妥当なスコアを生成する(0.5〜0.9)
- モニタリングサービスが7日以上クラッシュなく継続的に実行される
- 偽陽性率が10%未満(ラベル付きデータで検証)
- 重大インシデントの真陽性率が80%以上
よくある落とし穴
- 異常データでの学習: 学習に使用するベースライン期間がクリーン(インシデントなし)であることを確認する。手動でレビューするかラベル付きデータを使用する
- 季節性の無視: 静的モデルは日次/週次パターンで失敗する。Prophetを使用するか時間特徴量を追加する
- 閾値が敏感すぎる: 99%信頼区間が通常のピークをフラグする可能性がある。99.5%から始めて偽陽性に基づいて調整する
- 欠損データの未処理: メトリクスのギャップがモデルエラーを引き起こす。補間を含む堅牢な前処理を実装する
- 低重大度のアラート疲労: 重大度閾値以下のアラートをフィルタリングする。高信頼度の異常に焦点を当てる
- システムトポロジーの無視: すべてのメトリクスを独立に扱うとカスケード障害を見逃す。依存関係を定義する
- モデルドリフト: 古いデータで学習されたモデルは陳腐化する。月次またはシステム変更時に再学習する
- リソース競合: すべてのメトリクスで検知を実行するのは高コスト。重要なサービスを優先するかメトリクスをサンプリングする
関連スキル
monitor-model-drift-- 異常検知モデルの劣化を検知するmonitor-data-integrity-- 異常検知前のデータ品質チェックsetup-prometheus-monitoring-- 運用メトリクスを収集するforecast-operational-metrics-- Prophet予測によるキャパシティプランニング
GitHub 저장소
연관 스킬
llamaguard
기타LlamaGuard는 폭력 및 혐오 발언 등 6가지 안전 범주에서 LLM 입력과 출력을 조정하기 위한 Meta의 70-80억 파라미터 모델입니다. 94-95% 정확도를 제공하며 vLLM, Hugging Face 또는 Amazon SageMaker를 사용해 배포할 수 있습니다. 이 기술을 사용하여 AI 애플리케이션에 콘텐츠 필터링 및 안전 가드레일을 손쉽게 통합하세요.
cost-optimization
기타이 Claude Skill은 리소스 적정화, 태깅 전략, 지출 분석을 통해 개발자들이 클라우드 비용을 최적화할 수 있도록 지원합니다. AWS, Azure, GCP에서 클라우드 비용을 절감하고 비용 거버넌스를 구현하기 위한 프레임워크를 제공합니다. 인프라 비용을 분석하거나, 리소스를 적정화하거나, 예산 제약을 충족해야 할 때 사용하세요.
quantizing-models-bitsandbytes
기타이 스킬은 bitsandbytes를 사용하여 LLM을 8비트 또는 4비트 정밀도로 양자화하며, 최소한의 정확도 손실로 50-75%의 메모리 감소를 달성합니다. 제한된 GPU 메모리에서 더 큰 모델을 실행하거나 추론을 가속화하는 데 이상적이며, INT8, NF4, FP4와 같은 형식을 지원합니다. 이 스킬은 HuggingFace Transformers와 통합되어 QLoRA 학습 및 8비트 옵티마이저를 가능하게 합니다.
dispatching-parallel-agents
기타이 Claude Skill은 3개 이상의 독립적인 문제를 동시에 조사하고 해결하기 위해 다중 에이전트를 배치합니다. 공유 상태나 의존성 없이 해결 가능한 무관련 장애 시나리오에 맞게 설계되었습니다. 핵심 기능은 병렬 문제 해결로, 각 독립 문제 영역마다 하나의 에이전트를 할당하여 효율성을 극대화합니다.
