Instanaで実現するSREのベストプラクティス 第2章 Instanaの基本機能と設定

執筆者：小畑　啓、監修：山﨑政憲
# 2.1 Instanaの概要とアーキテクチャ
### Instanaとは？
Instanaは、リアルタイムのアプリケーション・パフォーマンス・モニタリング（APM）および可観測性プラットフォームです。

Instanaを使用すると、アプリケーションとサービスの正常性とパフォーマンスを完全に可視化できます。Instanaの主な特徴は、下記の通りです。

Instanaの主な特徴
・リアルタイム可観測性：1秒間隔でデータを収集し、遅延なくシステムの状態を可視化
・AIによる異常検知：過去のデータを学習し、異常な動作を検知してアラートを発報
・分散トレーシング：マイクロサービス間のリクエストを可視化し、パフォーマンスのボトルネックを特定
・セットアップが容易：エージェントをインストールするだけでメトリクスやトレースを自動収集

### Instanaのアーキテクチャ
Instanaは複数のコンポーネントで構成されており、エージェントを通じて各システムからデータを収集し、バックエンドで分析と可視化を行います。
エージェントは、検出されたすべてのテクノロジーにテクノロジー固有のセンサーを自動的に展開し、適切なメトリックをInstanaバックエンドに即座に送信し始めます。
Instanaの主要コンポーネントは、下記の通りです。

#### 1.エージェント
・各サーバーやコンテナにインストールされ、システムのメトリクスやトレースデータを収集
・インフラの状態やアプリケーションのパフォーマンスを監視
・対象環境は仮想マシン（VM）、Kubernetes、Docker、物理サーバーなど

#### 2.センサー
・エージェント内部で動作し、各アプリケーションやミドルウェアの情報を自動収集
・Node.js、Java、Python などの言語やRedis、Kafka、MySQL などのデータストアが対象

#### 3.トレース
・アプリケーション間のリクエストフローを可視化するための分散トレーシングを提供
・各リクエストがどのサービスでどの程度の時間を要したかを詳細に分析

#### 4.バックエンド
・収集したメトリクスやトレースデータを解析し、リアルタイムで可視化
・AIによる異常検知や自動アラートを実行

#### 5.ダッシュボード
・監視データをWeb UIで提供し、システム全体のパフォーマンスをリアルタイムで確認可能
・フィルタリング機能を使って、特定のサービスやコンポーネントにフォーカスできる

#### Instanaのデータフロー
1. Instanaエージェントがサーバーやコンテナ上で稼働し、システムのメトリクス・ログ・トレースを収集
2. センサーが各アプリケーションやミドルウェアの詳細な情報を取得
3. 収集したデータをバックエンドに送信し、リアルタイムで処理・分析
4. AIが異常を検知し、必要に応じてアラートを発報
5. ユーザーはInstana UIを通じてデータを可視化し、問題の原因を特定

### Instanaの導入環境
Instanaはクラウド、オンプレミス、ハイブリッド環境のいずれでも利用可能です。
サポート対象は下記の通りです。

#### クラウド環境
・AWS（EC2、EKS、Lambda など）
・Azure（VM、AKS、Functions など）
・Google Cloud（GCE、GKE、Cloud Run など）

#### コンテナ＆オーケストレーション
・Kubernetes（Helmチャートによる簡単デプロイ）
・Docker（コンテナごとにエージェントを配置）

#### オンプレミス環境
・物理サーバー、仮想マシン（VMware、OpenStack など）
・ローカルデータセンターでの導入も可能

# 2.2 インストールと初期設定
Instanaを導入するには、エージェントのインストール、監視対象の設定などのステップが必要です。本章では、Instanaのインストール手順と基本的な初期設定について解説します。

### Instanaの導入フロー
Instanaのインストールと初期設定は、以下の流れで進めます。

・アカウントの作成
・エージェントのインストール（サーバー、コンテナ、Kubernetes など）
・監視対象の自動検出
・カスタム設定（アラート、通知、ダッシュボード構成など）

あまり知識がない初心者の方でも簡単に導入可能です。スムーズに進めば、5分程度で終わります。

### IBMidアカウントの作成
Instanaの無料トライアル版を利用する場合、[Instanaの公式サイト](https://www.instana.com)でIBMidアカウントを作成する必要があります。
無料トライアル版の特徴は下記の通りです。

・14日間の無料トライアルが利用可能
・ログイン後、エージェントのインストール手順が表示される

### Instanaエージェントのインストール
Instanaはエージェントベースの監視を行うため、まず各環境にエージェントをインストールする必要があります。

詳細は[Instana エージェントのインストール](https://www.ibm.com/docs/ja/instana-observability/current?topic=installing-instana-agents)を参考にしていただければと思いますが、監視したいサービスに応じて4種類のエージェントを提供しています。

エージェントが正常に動作すると、監視対象のサービスが自動検出されます。
エージェントの一覧画面でバージョンや更新モード等を把握できます。（下図参照）
Instanaエージェントの動作モードは下記の通りです。

・APMモード（デフォルト）：サポートしている全技術に対する監視とトレースを行います
・Infrastructureモード：サポートしている全技術に対してセンサーを活性化しますが、アプリケーションのトレースは行いません
・OFFモード：ホストエージェントは監視を行わずにInstanaバックエンドに定期的にアイドル状態を通知する

![76da2858-aa21-4d40-b74e-77ed78c8ee55.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2698772/db1218b5-c3e9-43b2-a5a4-1dfed9556281.png)

### アラートと通知の設定
監視を有効にしたら、障害発生時に適切な通知を受け取れるようにアラートを設定します。
設定の詳細は、[アラートの構成と管理](https://www.ibm.com/docs/ja/instana-observability/current?topic=alerts-configuring-managing)を参考にしてください。

# 2.3 ダッシュボードの使い方
Instanaのダッシュボードは、システム全体の可観測性を高め、アプリケーションやインフラのパフォーマンスをリアルタイムで監視するための強力なツールです。
本章では、ダッシュボードの基本機能、カスタマイズ方法、活用のポイントについて解説します。

### Instana ダッシュボードの概要
Instanaのダッシュボードは、システムの状態を一目で把握できるように設計されています。
リアルタイムメトリクスやトレースデータ、異常検知の結果を可視化し、問題の迅速な特定と対応をサポートします。必要に応じてダッシュボードのカスタマイズも可能です。

### ビルトインダッシュボードの基本機能
Instanaのビルトインダッシュボードは複数のパネルで構成されており、それぞれが異なる監視情報を表示します。
バージョンアップとともに機能追加や画面の変更なども頻繁に行われます。
そのため、定期的に更新を確認するようにしましょう。

主要な項目は下記の通りです。（下図参照）

・Websites & Mobile Appsエリア
　エンドユーザー・モニタリングの機能
・Applicationsエリア
　ゴールデン・シグナル（呼び出し数、エラーのある呼び出し率、待ち時間）の確認
・Infrastructureエリア
　エージェントが導入されている各ホスト・ノードの把握
・Custom dashboardsエリア
　ユーザーが独自のビューを作成・共有できる機能
・Analyticsエリア
　システムリクエストごとの挙動
・Eventsエリア
　イベント種別ごとの単位時間当たりのイベント発生件数

 ![3bfcd163-2cd3-4444-a6a4-3848b1280ef3.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2698772/7bf3d8b2-0af2-4c20-a8c3-cdf3092dad1e.png)


ゴールデン・シグナルというのは、サービスレベルを改善・維持するための指標のことです。（下図参照）
Instanaではゴールデン・シグナルに対して、機械学習を適用していますので、呼び出し数の急減やエラー率の急増といった様々なインシデントを検知します。
トラブルシューティングが迅速化され、運用工数の削減とシステム稼働率の向上が可能です。


![ebacbd04-0a29-419b-8bd4-ec026009d298.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2698772/8d3592a2-ae43-4b52-86e4-ec14b326bb13.png)

### カスタムダッシュボードの作成
カスタムダッシュボードは、Instanaのダッシュボードをカスタマイズして、自分好みのダッシュボードを作成できる機能です。
特定のKPIや関心のあるメトリクスを整理して、効率的に監視できます。
以下の3つのカスタムダッシュボードのオプションが用意されています。

・Instanaで取得したデータをベースにカスタムダッシュボードを作成
・Grafanaプラグインを活用して、より高度なダッシュボードを作成
・REST APIを用いてダッシュボードを作成

作成手順の詳細は、[カスタム・ダッシュボードの作成](https://www.ibm.com/docs/ja/instana-observability/current?topic=instana-building-custom-dashboards)を参考にしてください。

# 2.4 アプリケーション、サービス、インフラストラクチャのモニタリング
本章では、モニタリングの概要や仕組みについて詳しく解説します。

### モニタリングの概要

Instanaは、フルスタックでのモニタリングを提供し、アプリケーションからインフラストラクチャまでリアルタイムに可視化します。
・アプリケーションモニタリング：コードレベルのパフォーマンス監視
・サービスモニタリング：マイクロサービスの依存関係とトラフィック分析
・インフラストラクチャモニタリング：CPU・メモリ・ネットワークなどのリソース使用状況

Istanaはアプリケーション・スタック全体にわたり、サンプリングなしの完全な分散トレースを提供します。エンドユーザーに影響が出る前に、パフォーマンスの問題を自動的に検知・対処します。継続的な検出により、依存関係の変化を追跡し、時間的・空間的な分析が可能です。

また、変更やインシデントを自動で検出し、アプリ全体への影響と根本原因を迅速に特定します。これにより調査時間を大幅に短縮できます。

### アプリケーションモニタリング

アプリケーションモニタリングは、トランザクションを自動で追跡し、リアルタイムでボトルネックやエラーを特定します。エージェントがサービス間の依存関係やパフォーマンスをマッピングし、分散トレーシングも自動で対応します。監視できる主なメトリクスは下記の通りです。

・レスポンスタイム：各リクエストにかかる時間
・スループット：1秒あたりのリクエスト数
・エラー率：例外発生率やHTTP 5xxエラーなど
・外部サービス呼び出しの時間や回数：他システムとの連携状況
・分散トレーシングデータ：リクエストの流れをサービス間で追跡・可視化

### サービスモニタリング

サービスモニタリングは、マイクロサービスや分散アーキテクチャ上の各サービスの応答時間・エラーレート・スループットなどをリアルタイムに可視化します。依存関係を自動で検出し、トレースデータと統合してサービス間のやり取りを詳細に分析できます。また、問題発生時には即座に影響範囲を特定し、迅速なトラブルシュートが可能です。監視できる主なメトリクスは下記の通りです。

・サービスの依存関係：マイクロサービスとAPIのやり取りを可視化
・エンドポイントのパフォーマンス：各APIリクエストの処理時間、エラー率
・トラフィックの流れ：サービス間の通信量

### インフラストラクチャモニタリング

インフラストラクチャモニタリングは、ホスト、コンテナ、仮想マシン、Kubernetesクラスタなどのインフラリソースの状態をリアルタイムに可視化する機能です。CPU、メモリ、ディスク、ネットワークなどの主要メトリクスを自動収集し、アプリやサービスとの関連性を把握できます。監視できる主なメトリクスは下記の通りです。

・CPU使用率：サーバーやコンテナの負荷を監視
・メモリ使用量：アプリケーションのメモリ消費状況を分析
・ディスクI/O：読み書きの速度とストレージボトルネックの特定
・ネットワークトラフィック：データ転送量をリアルタイムで表示