次の方法で共有


(非推奨)Log Analytics を使用して Kubernetes クラスターを監視する

ヒント

Azure Kubernetes Service を使用するこのチュートリアルの更新バージョンについては、 Azure Monitor for containers (プレビュー) の概要に関するページを参照してください。

警告

Azure Container Service (ACS) は非推奨です。 ACS に新しい機能が追加されることはありません。 すべての API、ポータル エクスペリエンス、CLI コマンド、およびドキュメントは非推奨としてマークされます。

2017 年には、Kubernetes の管理、デプロイ、および操作を簡略化するための Azure Kubernetes Service (AKS) が導入されました。 Kubernetes オーケストレーターを使用する場合は、2020 年 1 月 31 日までに AKS に移行してください。 まずは、Azure Kubernetes Service への移行に関するページを参照してください。

詳細については、Azure.com で Azure Container Service の非推奨化に関するお知らせを参照してください。

Kubernetes クラスターとコンテナーの監視は、特に複数のアプリで大規模に運用クラスターを管理する場合に重要です。

Microsoft または他のプロバイダーから、いくつかの Kubernetes 監視ソリューションを利用できます。 このチュートリアルでは、Microsoft のクラウドベースの IT 管理ソリューションである Log Analytics のコンテナー ソリューションを使用して、Kubernetes クラスターを監視します。 (コンテナー ソリューションはプレビュー段階です)。)

このチュートリアル (パート 7/7) では、次のタスクについて説明します。

  • Log Analytics ワークスペースの設定を取得する
  • Kubernetes ノードで Log Analytics エージェントを設定する
  • Log Analytics ポータルまたは Azure portal で監視情報にアクセスする

開始する前に

前のチュートリアルでは、アプリケーションがコンテナー イメージにパッケージ化され、これらのイメージが Azure Container Registry にアップロードされ、Kubernetes クラスターが作成されました。

これらの手順を実行していないのであれば、続けて進めたい場合は、チュートリアル 1 - コンテナー イメージを作成するに戻ってください。

ワークスペースの設定を取得する

Log Analytics ポータルにアクセスできる場合は、設定>接続されたソース>Linux サーバーに移動します。 ここで、 ワークスペース ID とプライマリまたはセカンダリ ワークスペース キーを見つけることができます。 これらの値をメモしておきます。クラスターで Log Analytics エージェントを設定する必要があります。

Kubernetes シークレットを作成する

[kubectl create secret][kubectl-create-secret] コマンドを使用して、 omsagent-secret という名前の Kubernetes シークレットに Log Analytics ワークスペース設定を格納します。 ログ解析ワークスペース ID で WORKSPACE_ID を更新し、ワークスペースキーで WORKSPACE_KEY を置き換えます。

kubectl create secret generic omsagent-secret --from-literal=WSID=WORKSPACE_ID --from-literal=KEY=WORKSPACE_KEY

Log Analytics エージェントを設定する

次の Kubernetes マニフェスト ファイルを使用して、Kubernetes クラスター上のコンテナー監視エージェントを構成できます。 Kubernetes DaemonSet が作成され、各クラスター ノードで同一のポッドが 1 つ実行されます。

次のテキストを oms-daemonset.yaml という名前のファイルに保存します。

apiVersion: extensions/v1beta1
kind: DaemonSet
metadata:
 name: omsagent
spec:
 template:
  metadata:
   labels:
    app: omsagent
    agentVersion: 1.4.3-174
    dockerProviderVersion: 1.0.0-30
  spec:
   containers:
     - name: omsagent
       image: "microsoft/oms"
       imagePullPolicy: Always
       securityContext:
         privileged: true
       ports:
       - containerPort: 25225
         protocol: TCP
       - containerPort: 25224
         protocol: UDP
       volumeMounts:
        - mountPath: /var/run/docker.sock
          name: docker-sock
        - mountPath: /var/log
          name: host-log
        - mountPath: /etc/omsagent-secret
          name: omsagent-secret
          readOnly: true
        - mountPath: /var/lib/docker/containers
          name: containerlog-path
       livenessProbe:
        exec:
         command:
         - /bin/bash
         - -c
         - ps -ef | grep omsagent | grep -v "grep"
        initialDelaySeconds: 60
        periodSeconds: 60
   nodeSelector:
    beta.kubernetes.io/os: linux
   # Tolerate a NoSchedule taint on master that ACS Engine sets.
   tolerations:
    - key: "node-role.kubernetes.io/master"
      operator: "Equal"
      value: "true"
      effect: "NoSchedule"
   volumes:
    - name: docker-sock
      hostPath:
       path: /var/run/docker.sock
    - name: host-log
      hostPath:
       path: /var/log
    - name: omsagent-secret
      secret:
       secretName: omsagent-secret
    - name: containerlog-path
      hostPath:
       path: /var/lib/docker/containers

次のコマンドを使用して DaemonSet を作成します。

kubectl create -f oms-daemonset.yaml

DaemonSet が作成されたことを確認するには、次を実行します。

kubectl get daemonset

出力は次のようになります。

NAME       DESIRED   CURRENT   READY     UP-TO-DATE   AVAILABLE   NODE-SELECTOR   AGE
omsagent   3         3         3         0            3           <none>          5m

エージェントの実行後、Log Analytics がデータを取り込んで処理するまでに数分かかります。

監視データへのアクセス

Log Analytics ポータルまたは Azure portal で 、コンテナー ソリューション を使用してコンテナー監視データを表示および分析します。

Log Analytics ポータルを使用してコンテナー ソリューションをインストールするには、ソリューション ギャラリーに移動します。 次 に、コンテナー ソリューションを追加します。 または、 Azure Marketplace からコンテナー ソリューションを追加します。

Log Analytics ポータルで、ダッシュボードで コンテナー の概要タイルを探します。 コンテナー イベント、エラー、状態、イメージ インベントリ、CPU とメモリの使用量などの詳細については、タイルをクリックします。 詳細な情報については、任意のタイルで行をクリックするか、 ログ検索を実行します。

Azure portal のコンテナー ダッシュボード

同様に、Azure portal で Log Analytics に移動し、ワークスペース名を選択します。 [コンテナーの概要] タイルを表示するには、[ソリューション>Containers] をクリックします。 詳細を表示するには、タイルをクリックします。

監視データのクエリと分析に関する詳細なガイダンスについては、 Azure Log Analytics のドキュメント を参照してください。

次のステップ

このチュートリアルでは、Log Analytics を使用して Kubernetes クラスターを監視しました。 対象となるタスクは次のとおりです。

  • Log Analytics ワークスペースの設定を取得する
  • Kubernetes ノードで Log Analytics エージェントを設定する
  • Log Analytics ポータルまたは Azure portal で監視情報にアクセスする

このリンクに従って、Container Service の事前構築済みスクリプト サンプルを確認してください。