Tasuke HubLearn · Solve · Grow
#AIOps

AIOps実践入門:PrometheusとGrafana連携によるAI駆動型モニタリング【2025年版】

AIOps(AI for IT Operations)の基本から、オープンソースのPrometheusとGrafanaを組み合わせたAI駆動型のモニタリングシステムを構築する具体的な手順までを解説します。

時計のアイコン19 September, 2025
TH

Tasuke Hub管理人

東証プライム市場上場企業エンジニア

情報系修士卒業後、大手IT企業にてフルスタックエンジニアとして活躍。 Webアプリケーション開発からクラウドインフラ構築まで幅広い技術に精通し、 複数のプロジェクトでリードエンジニアを担当。 技術ブログやオープンソースへの貢献を通じて、日本のIT技術コミュニティに積極的に関わっている。

🎓情報系修士🏢東証プライム上場企業💻フルスタックエンジニア📝技術ブログ執筆者

はじめに:AIOpsとは何か、なぜ今注目されるのか?

システムの複雑性が増大し、データ量が爆発的に増加する中で、従来の人手によるIT運用は限界を迎えつつあります。AIOps (AI for IT Operations) は、AIと機械学習(ML)を活用してIT運用のプロセスを自動化し、高度化するアプローチです。

AIOpsは、単なる自動化ツールではありません。膨大なログ、メトリクス、トレースデータをリアルタイムで分析し、人間では見逃してしまうような複雑なパターンの相関関係を明らかにします。これにより、以下の実現を目指します。

  • プロアクティブな問題解決: 障害が発生する前に、その予兆を検知し、事前に対策を講じます。
  • 根本原因の迅速な特定: 複数の監視データを横断的に分析し、問題の根本原因を素早く特定します。
  • 運用タスクの自動化: 反復的な運用タスクを自動化し、エンジニアがより創造的な業務に集中できる環境を作ります。

本記事では、オープンソースのデファクトスタンダードであるPrometheusGrafanaをベースに、AIOpsの世界への第一歩を踏み出すための実践的なガイドを提供します。

ベストマッチ

最短で課題解決する一冊

この記事の内容と高い親和性が確認できたベストマッチです。早めにチェックしておきましょう。

AIOpsモニタリングシステムの全体像

今回構築するシステムのアーキテクチャは以下の通りです。

AIOps Architecture

  1. 収集 (Collect): Prometheusが、監視対象のアプリケーションやインフラからメトリクス(CPU使用率、メモリ使用量、リクエスト数など)を定期的に収集(プル型)します。
  2. 蓄積 (Store): 収集したメトリクスは、Prometheus内の時系列データベース(TSDB)に蓄積されます。
  3. 分析・可視化 (Analyze & Visualize): GrafanaがPrometheusをデータソースとして接続し、メトリクスをダッシュボード上で可視化します。さらに、Grafanaのプラグインや外部のMLエンジンを使って異常検知などの高度な分析を行います。
  4. 通知 (Alert & Action): 異常が検知された場合、Alertmanager(Prometheusのコンポーネント)やGrafana Alertingを通じて、SlackやPagerDutyなどのチャットツールに通知します。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

ステップ1:Prometheusによるメトリクス収集

まずは、システムの心臓部であるPrometheusをセットアップします。ここでは、Dockerを使って簡単に起動する方法を紹介します。

prometheus.yml の設定

Prometheusがどのターゲットからメトリクスを収集するかを定義する設定ファイルを作成します。

# prometheus.yml
global:
  scrape_interval: 15s # 15秒ごとにメトリクスを収集

scrape_configs:
  - job_name: 'prometheus'
    # Prometheus自身のメトリクスを収集
    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'node-exporter'
    # ホストOSのメトリクスを収集するためのNode Exporter
    static_configs:
      - targets: ['node-exporter:9100']

Docker Composeによる起動

Prometheusと、ホストOSのメトリクスを公開するためのnode-exporterをDocker Composeで起動します。

# docker-compose.yml
version: '3.8'
services:
  prometheus:
    image: prom/prometheus:v2.51.0
    container_name: prometheus
    volumes:
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
    ports:
      - "9090:9090"

  node-exporter:
    image: prom/node-exporter:v1.8.1
    container_name: node-exporter
    volumes:
      - /proc:/host/proc:ro
      - /sys:/host/sys:ro
      - /:/rootfs:ro
    command: 
      - '--path.procfs=/host/proc'
      - '--path.sysfs=/host/sys'
      - '--path.rootfs=/rootfs'
      - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)'
    ports:
      - "9100:9100"

上記ファイルを作成し、docker-compose up -d を実行すると、PrometheusとNode Exporterが起動します。http://localhost:9090にアクセスし、PrometheusのUIが表示されれば成功です。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

ステップ2:Grafanaによる可視化

次に、収集したメトリクスを可視化するためにGrafanaをセットアップします。

Docker Composeへの追加

先ほどのdocker-compose.ymlにGrafanaを追加します。

# docker-compose.yml (追記)
  grafana:
    image: grafana/grafana:11.0.0
    container_name: grafana
    ports:
      - "3000:3000"
    depends_on:
      - prometheus

docker-compose up -dを再度実行してGrafanaを起動します。http://localhost:3000にアクセスし、デフォルトのユーザー名・パスワード(admin/admin)でログインします。

データソースとダッシュボードの設定

  1. データソースの追加: Grafanaのメニューから「Connections」>「Data sources」>「Add new data source」を選択し、「Prometheus」を選びます。URLには http://prometheus:9090 を指定し、保存します。
  2. ダッシュボードのインポート: Node Exporter用のダッシュボードはコミュニティで多数公開されています。ここでは人気の高い「Node Exporter Full」(ID: 1860)をインポートしてみましょう。「Dashboards」>「Import dashboard」からIDを入力し、データソースに先ほど設定したPrometheusを選択すれば、すぐにホストOSのメトリクスが可視化されます。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

ステップ3:AI/MLによる異常検知

ここからがAIOpsの真骨頂です。Grafanaの機能を使って、メトリクスの異常検知を実装します。

Grafana Machine Learning Toolkitの活用

Grafanaには、Cloud版やEnterprise版で利用できる高度なML機能がありますが、オープンソース版でもGrafana Machine Learningプラグイン(旧grafana-adaptive-dashboards)などを利用することで、基本的な異常検知が可能です。

ここでは、Grafana 10からコア機能として統合されつつあるGrafana Alertingの表現(Expression)機能を使った異常検知の例を紹介します。

異常検知アラートの作成

CPU使用率が通常とは異なるパターンを示したときにアラートを出すルールを作成してみましょう。

  1. Grafanaのメニューから「Alerting」>「Alert rules」>「New alert rule」を選択します。
  2. クエリの作成:
    • A: Prometheusデータソースを選択し、クエリに 100 - (avg by (instance) (rate(node_cpu_seconds_total{mode="idle"}[5m])) * 100) を入力します。これはCPU使用率を計算するPromQLです。
    • B: Expressionを追加し、Aのクエリ結果を元に異常スコアを計算します。ここでは簡略化のため、移動平均からの乖離度を計算する例を考えます。
      • $C = (A - movingAverage(A, 60)) / stddev(movingAverage(A, 60))
      • この式は、現在の値が直近60データポイントの移動平均から、標準偏差の何倍離れているかを計算します。
  3. アラート条件の設定:
    • WHEN last() OF C IS ABOVE 3
    • これにより、計算されたスコアが3(つまり3σ)を超えた場合にアラートが発火します。

この方法は、単純な静的閾値(例:CPU使用率が90%を超えたらアラート)と異なり、時間帯や負荷状況によって変動するベースラインを考慮した、よりスマートなアラートを実現します。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

まとめ:AIOpsによるプロアクティブな運用へ

本記事では、PrometheusとGrafanaという強力なオープンソースツールを組み合わせ、AIOpsの基本的な考え方を実践する方法を紹介しました。

  • Prometheusで信頼性の高いメトリクス収集基盤を構築する。
  • Grafanaでデータを可視化し、状況を直感的に把握する。
  • Grafana Alertingの表現機能を使い、静的な閾値を超えた動的な異常検知を実装する。

今回紹介したのはAIOpsの入り口にすぎません。より高度な分析(相関分析、予測など)には、専用のMLプラットフォームやSaaS製品が必要になる場合もあります。しかし、まずは身近なツールで「データに基づいた異常検知」を始めることが、運用の質を劇的に変える第一歩となるはずです。

さらに理解を深める参考書

関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。

この記事をシェア

続けて読みたい記事

編集部がピックアップした関連記事で学びを広げましょう。

#Go

GoによるgRPCマイクロサービス実践入門:Protocol Buffersから実装まで【2025年版】

2025/9/19
#AIOps

AIOps導入ガイド【2025年版】:AIを活用したシステム運用の自動化と効率化

2025/9/18
#JavaScript

JavaScript非同期超入門【2025年版】:Promiseとasync/awaitの基礎と落とし穴

2025/9/13
#Biome

脱・設定地獄!ESLint/Prettierから「Biome」へ移行する完全ガイド【2025年版】

2025/11/26
#DevSecOps

DevSecOps実践ガイド:CI/CDにセキュリティを組み込む手法【2025年版】

2025/9/19
#MLOps

MLOpsパイプライン構築実践ガイド:MLflowとGitHub Actionsで作る機械学習CI/CD【2025年版】

2025/9/19