IBM CloudのVPCの仮想インスタンス(Ubuntu)をInstanaを使って可視化する

# 1. はじめに
この投稿では、IBM CloudのVirtual Private Cloud(VPC)の仮想インスタンス(Ubuntu)の状態、インフラ視点での可視化＆モニタリングする手順を確認します。アプリケーション視点では、次の投稿にて、Djangoの「簡単な投票 (poll) アプリケーション」を使って確認しようと思います。

今回、可視化・モニタリングするツールとして、IBM Cloudのカタログでは、[IBM Cloud Monitoring with Sysdig](https://www.ibm.com/jp-ja/cloud/sysdig)　を選ぶことができますが、今回は、[IBM Instana Observability](https://www.ibm.com/jp-ja/cloud/instana)のSaaS版を使って可視化・モニタリングしてみます。

なお、今回、利用する環境は、Qiitaの[下記投稿](https://qiita.com/daihiraoka/items/bb0ea1d15f342493d850)で構築したものを利用します。

https://qiita.com/daihiraoka/items/bb0ea1d15f342493d850

# 2. 今回の構成イメージ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209170/4b43e115-67d2-c14e-c5c9-e31e5c1c3c61.png)
IBM Cloudの東京リージョンにVPCを作成し、ゾーン東京１に２つの仮想インスタンスを作成しています。

- 仮想インスタンス1(外部アクセスからのアクセス可能)
    - 役割: Webサーバ
        - OS: Ubuntu 20.04 
        - Webサーバ : Djangoのrunserver
        - Python : 3.8.5
        - Django : 4.0.7

- 仮想インスタンス2(外部アクセスからのアクセス不可)
    - 役割: DBサーバ 
        - OS: Ubuntu 20.04 
        - PostgreSQL : 12

今回、２つの仮想インスタンス(OS: Ubuntu)に、 Instana Agentをインストールします。そして、Instana　Agentが収集した仮想インスタンス(OS:Ubuntu)の性能情報を InstanaのSaaS版に送信して、Instanaでどのようにインフラとアプリが可視化されるかを確認します。
なお、InstanaのSaaS版は、事前に[14日間のFreeTrial](https://www.instana.com/trial/)を申し込んで使える状態にしてあります。

# 3. 手順

## Instana Agentのインストールスクリプトの入手
Instana SaaS版のFree Trialが開始し、最初にブラウザの画面にInstana Agentを導入する画面が表示されます。その画面の中から`Linux`用の ワンライナーのインストールスクリプトを入手します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209170/9379ee0c-8ade-a4e4-30fe-f4161c6d931a.png)

## 仮想インスタンスに Instana Agentをインストール

仮想インスタンスのWebサーバとDBサーバにログインして、Instana　Agentをインストールします。

- Webサーバ・DBサーバ共通作業
1. リモートサーバへのログイン
まずはリモートサーバにログインします。

    ```console
    ※クライアントでの作業
    ssh -i [秘密鍵のファイル名] root@[DBサーバのIPアドレス]
    ```

    (注)今回の構成ではDBサーバーは、フローティングIPを設定していないため、外部からSSHでログインすることができません。
    Webサーバーに経由でDBサーバーに接続します。

    ```console
    ※Webサーバでの作業
    $ ssh -i [秘密鍵のファイル名] root@[DBサーバのIPアドレス]
    ```

1. Instana Agentのインストールスクリプトを実行
    Linux環境へのInstana Agentのインストールはワンライナーのスクリプトを実行します、
    ```console
    $ curl -o setup_agent.sh https://setup.instana.io/agent && chmod 700 ./setup_agent.sh && sudo ./setup_agent.sh -a [認証キー] -d [認証キー] -t dynamic -e ingress-xxx-saas.instana.io:443   
    ```
    
    Instana Agentのインストールが開始し、下記の様に`Instana agent service started up`と表示されたらインストールが完了し、Instana Agentの起動が開始しています。　初回起動時は、監視するためのセンサー等ダウンロードするため数分程度、起動時間が必要です。
    ```console
    Warning: apt-key output should not be parsed (stdout is not a terminal)
    Updating apt metadata
    Installing Instana agent
    Instana agent enabled on boot
    Starting instana-agent
    Instana agent service started up
    ```

それでは、これからは、Instanaのダッシュボードで、どのようにモニタリングされているのか確認します。

## インフラ視点での可視化・モニタリング
下記の画像はInstanaのダッシュボード画面です、「インフラストラクチャー」のメニューをクリックして、インフラストラクチャーの画面を表示するとInstana Agentを導入した仮想インスタンスが、白い筒状のイメージで表現されています。　下記画像の赤枠ではpoll-dbというホストで、InstanaエージェントとPostgreSQLが、動作していることがわかります。　
![Instanaのダッシュボード画面](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209170/7dc6448b-e78f-ff46-40e4-16acb6d383d4.png)

次に、上記赤枠の「ダッシュボードを開く」をクリックすると、下記画像の様に詳細なホストの性能情報を見ることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/209170/5a2cedbf-a422-8b67-4223-73b3878421cc.png)

# 4. 最後に
Instana Agentを導入すると、IBM CloudのVirtual Private Cloud(VPC)の仮想インスタンス(Ubuntu)をインフラ視点で可視化＆モニタリングできるようになりました。

次の投稿「[Python(Django)アプリをInstanaで可視化・モニタリングする(1)【設定編】](https://qiita.com/daihiraoka/items/2e3f66a61e61afa60324)」では、アプリ視点で、Djangoの「簡単な投票 (poll) アプリケーション」を可視化＆モニタリングします。

この投稿は、下記、１〜４の流れで、IBM Cloudの Virtual Private Cloud(VPC)の仮想インスタンス作成、Python(Django)とPostgreSQLを使ったサンプルアプリの作成、インフラ、アプリの可視化・モニタリングの順番に構築設定を行った時の記録になります。　ぜひ、１〜４まで参考になれば幸いです。

1. Python(Django)アプリの環境構築
    - [IBM Cloud VPCの仮想インスタンスでPython(Django)アプリ作成](https://qiita.com/daihiraoka/items/bb0ea1d15f342493d850)

1. インフラの可視化・モニタリング設定・確認
    - [IBM CloudのVPCの仮想インスタンス(Ubuntu)をInstanaを使って可視化する](https://qiita.com/daihiraoka/items/c6fd7cfa9e4a59b3038a)

1. **(本投稿)Python(Django)アプリの可視化・モニタリング設定**
    - [Python(Django)アプリをInstanaで可視化・モニタリングする(1)【設定編】](https://qiita.com/daihiraoka/items/2e3f66a61e61afa60324)

1. 　Python(Django)アプリの可視化・モニタリング設定
    - 「[Python(Django)アプリをInstanaで可視化・モニタリングする(2)【確認編】](https://qiita.com/daihiraoka/items/a49b7492a2da68c78a92)」