Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Instanaのトラブルシューティング!見たいアプリが表示されない時はどうしたらいい?

Avatar for yskmt yskmt
March 17, 2025
76

 Instanaのトラブルシューティング!見たいアプリが表示されない時はどうしたらいい?

Instana Agentを無事導入できた!…と思ったらInstanaの画面に出てきたサービスが思ってたのと違う。どうしよう??
…から始まるトラブルシュート談を紹介します。

Avatar for yskmt

yskmt

March 17, 2025
Tweet

Transcript

  1. はじめに • 「せっかくInstanaを導入してみたけど、アプリケーションの依存関係がうまく可視化されない」、 なんてことはないでしょうか? • 監視対象サーバにAgentをインストールし、テクノロジーを監視するための設定もしたものの、 上手くいかないケースがあります • アプリの情報が取得できない… •

    期待する情報や依存関係が表示されない… • その場合、環境変数でサービス名を定義すると上手くいくことがあります • 本日は具体的な手順を本邦初公開します(多分) Instanaにサービスの名前を教えて、 特定しやすくするイメージです
  2. Instanaでは、ディスカバリーセンサー、メトリックトレーサー、トレースセンサーの3つのセンサーを駆使して、 あらゆるテクノロジーを自動検出し監視します。 そもそもInstanaはどのような仕組みでテクノロジーを検出しているのか? Instanaでのサービス認識の仕組み ディスカバリー処理の実行 センサーの有効化 データの収集 • ディスカバリーセンサーを リポジトリからダウンロード

    • ディスカバリーセンサーが ホスト/プロセス/テクノロジーを検出 • メトリックセンサーとトレースセンサーを リポジトリからダウンロード • 各種センサーを監視対象プロセスに計装し 監視がスタート 静的パッケージ導入の場合は、 既に各種センサーが付属しているため、 リポジトリへの接続は行わない 監視対象のテクノロジーに応じて、 設定ファイルのパラメータ入力など 変更が必要になる • メトリックセンサーとトレースセンサーが 収集したデータをエージェントに送信 • エージェントが取得データを まとめてバックエンドに送信 1 2 3 Instana Agent を起動すると・・・ トランザクションが発生すると、 リクエストにトレースIDを埋め込み、 処理を追跡する Instana Backend Instana Agent Repository Discovery Sensor Metric Sensor Trace Sensor Monitored Technology
  3. サービスは、論理コンポーネントの1つで、ホスト/コンテナ/プロセス上で実行される論理的な作業単位です。 Instanaにおける“サービス”とは何なのか? Instanaでのサービス認識の仕組み https://www.ibm.com/docs/en/instana-observability/current?topic=applications-services https://www.ibm.com/docs/en/instana-observability/current?topic=capabilities-automatic-discovery-monitoring#components-of-automatic-discovery-and-monitoring “Automatic discovery and monitoring cover

    physical components, logical components, and business components. (自動検出と監視は、物理コンポーネント、論理コンポーネント、ビジネス・コ ンポーネントを対象とする。)” “Services are a part of application monitoring and provide a logical view of your system. (サービスは、アプリケーション・モニターの一部であり、システムの論理 ビューを提供します。)”
  4. Apacheのマルチインスタンス構成において、一部インスタンスのアプリケーションがサービスとして 認識されないことがありました。 私が遭遇した “サービス”がうまく認識されないケース 構成図イメージ サービスが認識されないケース Apache HTTP Serverの情報 •

    ポートを変えて、Apacheインスタンスを3つ稼働 • Apache上のアプリケーションは全インスタンス共通 • 各Apacheのディレクトリ構造や設定は同じ • 差分はディレクトリ名/サービス名のみ • Instana対応バージョンを利用 Instana Agentの情報 • 導入方法はcurlコマンドでのワンライナーのインストール • エージェントタイプは動的(dynamic) • 当時の最新バージョンを利用 その他の詳細は以下のQiitaの記事をご参照ください https://qiita.com/ysk-mt/items/1e3323b916b6549cd7b3 Apacheの監視に必要な各種設定は もれなく実施済み RHEL 8
  5. しかし、アプリケーションの依存関係では、1インスタンス分しかサービスが表示されません。 Instanaダッシュボードでの見え方 2/2 サービスが認識されないケース アプリケーション > 依存関係ページ • 論理コンポーネントレベル(サービス)では、 1インスタンスしか取れていない…

    • Apacheインスタンス1のみ表示されている • “Unspecified”になっている → 別プロセスで動いているものの、 アプリケーションの中身が同じである場合、 サービスとして区別/認識されない場合があります “Unspecified”のほか、過去には“Localhost”と表 記されたこともありました ダッシュボードやAgent.logには、 エラーとして表示/出力されないので、 なぜ表示されないのか中々分かりませんでした… https://www.ibm.com/docs/en/instana-observability/288?topic=applications-services
  6. サービス名を生成するためにInstanaで事前定義されたルールがありますが、そのルールをカスタマイズできます。 (参考) サービス・マッピング・ルール サービスが認識されないケース https://www.ibm.com/docs/en/instana-observability/current?topic=applications-services#customize-service-mapping https://www.ibm.com/docs/en/instana-observability/current?topic=references-environment-variables#dynamic-language-sensors “Instana comes with an

    extensive set of predefined rules to generate the best possible service name for you automatically. To fine-tune the service mapping, you can create your own custom rules, (Instana には、可能な限り最良のサービス名を自動的に生成するための 事 前定義ルール の広範なセットが付属しています。 サービス・マッピングを 微調整するには、独自のカスタム・ルールを作成できます。)” Instanaで事前定義されたルール ルールのカスタマイズ
  7. Apacheにアクセスしてから、ダッシュボードを確認する Apacheへのアクセスが無いと、依存関係図にサービスとし て表示されません。そのため、CurlコマンドなどでApache にアクセスする必要があります。 環境変数設定に伴うApache再起動後、5分程度時間を置く 初回はMetric SensorやTrace Sensorのアタッチに少し時間 がかかります。そのため、Apacheがきちんと検知されてい ることをダッシュボードで確認します。

    うまく依存関係が可視化されない場合は、環境変数を設定しInstanaにサービス名を明示してあげると 上手く表示されるようになります。 Instanaに対してサービス名を明示する 環境変数でのサービス名定義 インスタンス起動時にApacheが読み込むサービスファイル上で 環境変数”INSTANA_SERVICE_NAME”を定義 [Service] Environment="INSTANA_SERVICE_NAME=Apache1” 設定方法 [Service] Environment="INSTANA_SERVICE_NAME=Apache2” [Service] Environment="INSTANA_SERVICE_NAME=Apache2” • Apacheインスタンス1のサービスファイル • Apacheインスタンス2のサービスファイル • Apacheインスタンス3のサービスファイル 作業時のポイント (気づき) 1 2 今回の環境では、Apacheをsystemdで管理していたため、 Unitファイル上で環境変数を設定しました