ログを Azure Monitor にアップロードする

定期的に、ログをエクスポートしてから、Azure にアップロードできます。 ログをエクスポートおよびアップロードすると、データ コントローラー、SQL マネージド インスタンス、PostgreSQL サーバーのリソースも Azure 内で作成および更新されます。

開始する前に

ログをアップロードする前に、次を実行する必要があります。

  1. Log Analytics ワークスペースを作成する
  2. 環境変数に ID と共有キーを割り当てる

この記事の例では、山かっこ < ... > を使用して、スクリプトを実行する前に置き換える必要がある値を識別します。 山かっこと山かっこ内の値を置き換えます。

ログ分析ワークスペースを作成する

Log Analytics ワークスペースを作成するには、こちらのコマンドを実行して Log Analytics ワークスペースを作成し、アクセス情報を環境変数内に設定します。

Note

既にワークスペースがある場合は、この手順をスキップしてください。

az monitor log-analytics workspace create --resource-group <resource group name> --workspace-name <some name you choose>

出力例:

{
  "customerId": "d6abb435-2626-4df1-b887-445fe44a4123",
  "eTag": null,
  "id": "/subscriptions/<Subscription ID>/resourcegroups/user-arc-demo/providers/microsoft.operationalinsights/workspaces/user-logworkspace",
  "location": "eastus",
  "name": "user-logworkspace",
  "portalUrl": null,
  "provisioningState": "Succeeded",
  "resourceGroup": "user-arc-demo",
  "retentionInDays": 30,
  "sku": {
    "lastSkuUpdate": "Thu, 30 Jul 2020 22:37:53 GMT",
    "maxCapacityReservationLevel": 3000,
    "name": "pergb2018"
  },
  "source": "Azure",
  "tags": null,
  "type": "Microsoft.OperationalInsights/workspaces"
}

環境変数に ID と共有キーを割り当てる

後で使用するために、Log Analytics ワークスペースの customerId を環境変数として保存します。

SET WORKSPACE_ID=<customerId>

このコマンドを実行すると、Log Analytics ワークスペースに接続するために必要なアクセス キーが返されます。

az monitor log-analytics workspace get-shared-keys --resource-group MyResourceGroup --workspace-name MyLogsWorkpace

出力例:

{
  "primarySharedKey": "JXzQp1RcGgjXFCDS3v0sXoxPvbgCoGaIv35lf11Km2WbdGFvLXqaydpaj1ByWGvKoCghL8hL4BRoypXxkLr123==",
  "secondarySharedKey": "p2XHSxLJ4o9IAqm2zINcEmx0UWU5Z5EZz8PQC0OHpFjdpuVaI0zsPbTv5VyPFgaCUlCZb2yEbkiR4eTuTSF123=="
}

後で使用するため、プライマリ キーを環境変数に保存します。

SET WORKSPACE_SHARED_KEY=<primarySharedKey>

環境変数を確認する

必要に応じて、必要なすべての環境変数が設定されていることを調べて確認します。

echo %WORKSPACE_ID%
echo %WORKSPACE_SHARED_KEY%

環境変数を設定したら、ログをログ ワークスペースにアップロードできます。

az CLI を使用して直接モードでの Azure Log Analytics ワークスペースへのログの自動アップロードを構成する

直接接続モードでは、ログのアップロードは自動モードでのみ設定できます。 メトリックのこの自動アップロードは、Azure Arc データ コントローラーのデプロイ中またはデプロイ後に設定できます。

Azure Log Analytics ワークスペースへのログの自動アップロードを有効にする

Azure Arc データ コントローラーのデプロイ中にログの自動アップロードが無効になっている場合は、次のコマンドを実行してログの自動アップロードを有効にします。

az arcdata dc update --name <name of datacontroller> --resource-group <resource group> --auto-upload-logs true
#Example
az arcdata dc update --name arcdc --resource-group <myresourcegroup> --auto-upload-logs true

Azure Log Analytics ワークスペースへのログの自動アップロードを有効にする

Azure Arc データ コントローラーのデプロイ中にログの自動アップロードが有効になっている場合は、次のコマンドを実行してログの自動アップロードを無効にします。

az arcdata dc update --name <name of datacontroller> --resource-group <resource group> --auto-upload-logs false
#Example
az arcdata dc update --name arcdc --resource-group <myresourcegroup> --auto-upload-logs false

kubectl CLI を使用して直接モードでの Azure Log Analytics ワークスペースへのログの自動アップロードを構成する

Azure Log Analytics ワークスペースへのログの自動アップロードを有効にする

kubectl を使用してログの自動アップロードを構成するには:

  • 前のセクションで説明したように Log Analytics ワークスペースが作成されていることを確認します
  • 次のように WorkspaceID および SharedAccessKey を使用して Log Analytics ワークスペースの Kubernetes シークレットを作成します。
apiVersion: v1
data:
  primaryKey: <base64 encoding of Azure Log Analytics workspace primary key>
  workspaceId: <base64 encoding of Azure Log Analytics workspace Id>
kind: Secret
metadata:
  name: log-workspace-secret
  namespace: <your datacontroller namespace>
type: Opaque
  • シークレットを作成するには、以下を実行します。

    kubectl apply -f <myLogAnalyticssecret.yaml> --namespace <mynamespace>
    
  • 既定のエディターで設定を yaml ファイルとして開くには、以下を実行します。

    kubectl edit datacontroller <DC name> --name <namespace>
    
  • autoUploadLogs プロパティを "true" に更新し、ファイルを保存します

Azure Log Analytics ワークスペースへのログの自動アップロードを有効にする

ログの自動アップロードを無効にするには、以下を実行します。

kubectl edit datacontroller <DC name> --name <namespace>
  • autoUploadLogs プロパティを "false" に更新し、ファイルを保存します

間接モードで Azure Monitor にログをアップロードする

Azure Arc 対応 SQL Managed Instance と Azure Arc 対応 PostgreSQL サーバーのログをアップロードするには、次の CLI コマンドを実行します

  1. 指定したファイルにすべてのログをエクスポートします。

    Note

    コマンド az arcdata dc export を使用して使用状況および課金情報、メトリック、ログをエクスポートするには、今のところ SSL 検証をバイパスする必要があります。 SSL 検証をバイパスするように求めるメッセージが表示されます。または、プロンプトを表示しないように環境変数 AZDATA_VERIFY_SSL=no を設定できます。 現在、データ コントローラー エクスポート API に対して SSL 証明書を構成する方法はありません。

    az arcdata dc export --type logs --path logs.json  --k8s-namespace arc
    
  2. Azure Monitor のログ分析ワークスペースにログをアップロードします。

    az arcdata dc upload --path logs.json
    

Azure portal でログを表示する

ログがアップロードされたら、ログ クエリ エクスプローラーを使用して次のようにクエリを実行できるようになります。

  1. Azure portal を開いてから、上部の検索バーで名前を指定してご使用のワークスペースを検索し、それを選択します。
  2. 左側のパネルで [ログ] を選択します。
  3. [作業の開始] を選択します (または、Log Analytics を初めて使用する場合は、[作業の開始] ページのリンクを選択して詳細を確認します)。
  4. Log Analytics を初めて使用する場合は、チュートリアルに従って Log Analytics の詳細を確認します。
  5. テーブルの一覧の下部にある [カスタム ログ] を展開すると、"sql_instance_logs_CL" または "postgresInstances_postgresql_logs_CL" という名前のテーブルが表示されます。
  6. テーブル名の横にある目のアイコンを選択します。
  7. [クエリ エディターで表示] ボタンを選択します。
  8. これでクエリ エディター内にクエリが表示されるようになり、ログ内で最も新しい 10 個のイベントが表示されます
  9. ここからは、クエリ エディターやアラートの設定を使用して、ログのクエリを試してみることができます。

アップロードの自動化 (省略可能)

メトリックとログをスケジュールに基づいてアップロードする場合は、スクリプトを作成して、タイマーで数分ごとに実行できます。 次に、Linux シェル スクリプトを使用してアップロードを自動化する例を示します。

お好きなテキスト エディターまたはコード エディターで、ファイルに次のスクリプトを追加し、.sh (Linux/Mac)、.cmd.bat.ps1 (Windows) などのスクリプト実行可能ファイルとして保存します。

az arcdata dc export --type logs --path logs.json --force --k8s-namespace arc
az arcdata dc upload --path logs.json

スクリプト ファイルを実行可能にする

chmod +x myuploadscript.sh

20 分ごとにスクリプトを実行します。

watch -n 1200 ./myuploadscript.sh

Cron や Windows タスク スケジューラのようなジョブ スケジューラを使用することも、Ansible、Puppet、Chef のようなオーケストレーターを使用することもできます。

メトリックとログを Azure Monitor にアップロードする

使用状況データ、メトリック、およびログを Azure Monitor にアップロードする

課金データを Azure にアップロードして Azure portal に表示する

Azure portal で Azure Arc データ コントローラー リソースを表示する