はじめに:AIOpsとは何か、なぜ今注目されるのか?
システムの複雑性が増大し、データ量が爆発的に増加する中で、従来の人手によるIT運用は限界を迎えつつあります。AIOps (AI for IT Operations) は、AIと機械学習(ML)を活用してIT運用のプロセスを自動化し、高度化するアプローチです。
AIOpsは、単なる自動化ツールではありません。膨大なログ、メトリクス、トレースデータをリアルタイムで分析し、人間では見逃してしまうような複雑なパターンの相関関係を明らかにします。これにより、以下の実現を目指します。
- プロアクティブな問題解決: 障害が発生する前に、その予兆を検知し、事前に対策を講じます。
- 根本原因の迅速な特定: 複数の監視データを横断的に分析し、問題の根本原因を素早く特定します。
- 運用タスクの自動化: 反復的な運用タスクを自動化し、エンジニアがより創造的な業務に集中できる環境を作ります。
本記事では、オープンソースのデファクトスタンダードであるPrometheusとGrafanaをベースに、AIOpsの世界への第一歩を踏み出すための実践的なガイドを提供します。
最短で課題解決する一冊
この記事の内容と高い親和性が確認できたベストマッチです。早めにチェックしておきましょう。
AIOpsモニタリングシステムの全体像
今回構築するシステムのアーキテクチャは以下の通りです。
- 収集 (Collect): Prometheusが、監視対象のアプリケーションやインフラからメトリクス(CPU使用率、メモリ使用量、リクエスト数など)を定期的に収集(プル型)します。
- 蓄積 (Store): 収集したメトリクスは、Prometheus内の時系列データベース(TSDB)に蓄積されます。
- 分析・可視化 (Analyze & Visualize): GrafanaがPrometheusをデータソースとして接続し、メトリクスをダッシュボード上で可視化します。さらに、Grafanaのプラグインや外部のMLエンジンを使って異常検知などの高度な分析を行います。
- 通知 (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:
- prometheusdocker-compose up -dを再度実行してGrafanaを起動します。http://localhost:3000にアクセスし、デフォルトのユーザー名・パスワード(admin/admin)でログインします。
データソースとダッシュボードの設定
- データソースの追加: Grafanaのメニューから「Connections」>「Data sources」>「Add new data source」を選択し、「Prometheus」を選びます。URLには
http://prometheus:9090を指定し、保存します。 - ダッシュボードのインポート: 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使用率が通常とは異なるパターンを示したときにアラートを出すルールを作成してみましょう。
- Grafanaのメニューから「Alerting」>「Alert rules」>「New alert rule」を選択します。
- クエリの作成:
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データポイントの移動平均から、標準偏差の何倍離れているかを計算します。
- アラート条件の設定:
WHENlast()OFCIS ABOVE3- これにより、計算されたスコアが3(つまり3σ)を超えた場合にアラートが発火します。
この方法は、単純な静的閾値(例:CPU使用率が90%を超えたらアラート)と異なり、時間帯や負荷状況によって変動するベースラインを考慮した、よりスマートなアラートを実現します。
さらに理解を深める参考書
関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。
まとめ:AIOpsによるプロアクティブな運用へ
本記事では、PrometheusとGrafanaという強力なオープンソースツールを組み合わせ、AIOpsの基本的な考え方を実践する方法を紹介しました。
- Prometheusで信頼性の高いメトリクス収集基盤を構築する。
- Grafanaでデータを可視化し、状況を直感的に把握する。
- Grafana Alertingの表現機能を使い、静的な閾値を超えた動的な異常検知を実装する。
今回紹介したのはAIOpsの入り口にすぎません。より高度な分析(相関分析、予測など)には、専用のMLプラットフォームやSaaS製品が必要になる場合もあります。しかし、まずは身近なツールで「データに基づいた異常検知」を始めることが、運用の質を劇的に変える第一歩となるはずです。
さらに理解を深める参考書
関連記事と相性の良い実践ガイドです。手元に置いて反復しながら進めてみてください。


![LangChainとLangGraphによるRAG・AIエージェント[実践]入門 エンジニア選書](https://m.media-amazon.com/images/I/51hcvyPcUnL._SL500_.jpg)


