OCI Health Check Vantage PointのIPアドレスを取得する方法

本ブログは、[オラクル・クラウドの個人ブログ](https://qiita.com/letian/items/10152a4fec813c1b7d98)の1つです。

# 初めに
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/e41a6025-e799-a734-ac3a-a77566fb7333.png)

OCIヘルス・チェックは、インターネットに公開しているOCIサービスの可用性を外部からアクティブに監視する機能を提供しています。世界中にある他社クラウド・サービスの拠点（Vantage Point）から指定された間隔で監視できます。今現在（2022年5月）、Vantage Pointの場所は、全てOCI外部にありますので、インバウンド・トラフィックを許可する必要があります。これから、ステップ・バイ・ステップで、Vantage PointのIPアドレスを取得する方法を紹介したいと思います。

__検証環境__

|項目|内容|コメント|
|--|--|--|
|監視対象インスタンス|Oracle Linux 8|On OCI Tokyo Region|
|Vantage Point|AWS Asia Pacific (Tokyo)|利用中のOCIリージョンに近い拠点を推奨|
|リクエスト・タイプ|PING|HTTP(S)のリクエストも対応|
|プロトコル|ICMP||

# Vantage PointのIPアドレスを取得する方法

[1. 利用可能のVantage Pointの一覧を取得](#1-利用可能のvantage-pointの一覧を取得)
[2. ヘルス・チェックの作成](#2-ヘルスチェックの作成)
[3. VCNフロー・ログよりソースIPを取得](#3-vcnフローログよりソースipを取得)

### 1. 利用可能のVantage Pointの一覧を取得
OCI-CLIを使用して、Vantage Pointの一覧表を取得できますが、今現在（2022年5月）、IPアドレスが含まれていません。なお、利用可能のVantage Pointは固定ではなく、動的に変わりますので、ご注意ください。
`oci health-checks vantage-point list`

特定のVantage Pointのみを表示する場合は、パラメータ「--display-name」または「--name」を追加します。
```bash
liu_wei@cloudshell:~ (ap-tokyo-1)$ oci health-checks vantage-point list --display-name "AWS Asia Pacific (Tokyo)"
{
  "data": [
    {
      "display-name": "AWS Asia Pacific (Tokyo)",
      "geo": {
        "admin-div-code": "1111",
        "city-name": "Tokyo",
        "country-code": "JP",
        "country-name": "Japan",
        "geo-key": "123456",
        "latitude": 0.0,
        "longitude": 0.0
      },
      "name": "aws-tyo",
      "provider-name": "Amazon",
      "routing": []
    }
  ]
}
liu_wei@cloudshell:~ (ap-tokyo-1)$ 
```

ご覧の通り、上記の出力結果にIPが表示されません。それで、VCNフロー・ログを利用しIPを取得してみます。

### 2. ヘルス・チェックの作成
Observability & Management → Monitoring → Health Checks → Create Health Check
以下のように必要な情報を入力し、ヘルスチェックを作成してください。 
目的："AWS vantage point(Tokyo)"から、OCI ComputeインスタンスのPINGチェックを監視します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/36695588-fcb5-40e0-8c92-5d8a418fa52e.png)

新規したヘルス・チェックはまもなくアクティブになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/24aca7ae-325c-9ce5-c1ef-67941d4cf282.png)

今まで、まだ外部のVantage Pointからのインバウンド・トラフィックを許可していません。「ヘルス・チェック履歴」をチェックしますと、ターゲット・ホストの状態は「利用不可」となっています。これは想定通りの結果です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/f5f0d4b1-066c-ebd9-d8bf-46f352b4a7ef.png)

### 3. VCNフロー・ログよりソースIPを取得
まだサービス・ログを有効にしていない場合は、有効にする必要があります。

__ログ・グループを用意する__
Observability & Management → Logging → Log Groups → Create Log Group
ログ・グループ名を入力し、「作成」ボタンをクリックしてグループを作ります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/0c454133-bfbb-cdcc-9c23-174d9eed01de.png)

__サービス・ログを有効に__
Observability & Management → Logging → Logs → Enable Service Log
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/04f82db3-de7d-f2f7-f504-c5c691a42798.png)

サービス： "<font color=blue>Virtual Cloud Netowrk - subnets</font>"を選択
ログ・カテゴリ： "<font color=blue>Flow Logs - All records</font>"を選択

"<font color=blue>Show</font> Advanced Options"をクリックし、展開します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/9ddfa5a3-397d-4f58-f4b0-ebbaf1e10f26.png)

ログ・グループ： 作成したログ・グループを指定
「Enable Log」ボタンをクリックして完了します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/7daec16e-9b12-1176-7870-13d3c265a298.png)

__VCNフロー・ログを調べる__
「Explore with Log Search」をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/efebd66d-20a3-716a-64df-9a25bc43e2a1.png)

「Custom filters」に「ICMP」を入力し（リターン・キーを忘れず）、フィルターをかけた後、「Search」ボタンを押し検索します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/a0e64bb1-b1bf-808f-9bd9-a2f2e6a0608b.png)

以下のように、"REJECT ICMP"の行が表示されます。受信側のIPは、ターゲット・ホストのプライベートIPです。念のため、時刻の列をチェックし、ヘルス・チェック履歴の時刻とあっているかどうかを確認してください！（ここでは省略）
行の右側の「↓」ボタンで、ログの詳細を確認できます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/1c3729a2-a034-0ff5-22cb-2a5d8ee0e833.png)

__IPをセキュリティ・リストに追加__
ソース・タイプ： CIDR
ソース CIDR： VCNフロー・ログから調べたIPアドレス
IPプロトコル： <font color=blue>ICMP</font>
タイプ： デフォルト (All)

追加後：
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/18e0ae69-802f-fb6b-381c-a230cef4fe92.png)

ヘルス・チェック履歴を再確認：
想定通り、利用可能の状態になりました。
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1121622/70866294-9f56-3210-f585-1615cb1ad803.png", width="600">

<strong>注意</strong>：複数IPアドレスがある場合、不要なソースIPを間違って追加するのを防止するため、「１個めを追加 → 履歴から確認 → ２個めを追加 → 履歴から確認」のような流れを推奨します。


以上です。

----
__関連記事__
[オラクル・クラウドの個人ブログ一覧](https://qiita.com/liu-wei/items/10152a4fec813c1b7d98)

__公式ドキュメントとブログ__
[Health Check よくある質問](https://www.oracle.com/jp/cloud/networking/health-checks/faq/)
[External Health Checks on Oracle Cloud Infrastructure](https://blogs.oracle.com/cloud-infrastructure/post/external-health-checks-on-oracle-cloud-infrastructure) (英語)