(非推奨) Log Analytics による Azure Container Service クラスターの監視

ヒント

Azure Kubernetes Service の使用に関するこの記事の更新版については、コンテナーに対する Azure Monitor に関する記事を参照してください。

警告

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

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

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

前提条件

このチュートリアルでは、Azure Container Service を使用して Kubernetes クラスターを作成したことを想定します。

また、az Azure CLI と kubectl ツールをインストールしていることも想定します。

az ツールがインストールされていることを確認するには、次を実行します。

az --version

az ツールをインストールしていないない場合、ここに手順が記載されています。 または、Azure Cloud Shell を使うこともできます。これには、az Azure CLI と kubectl ツールが既にインストールされています。

kubectl ツールがインストールされていることを確認するには、次を実行します。

kubectl version

kubectl をインストールしていない場合、次を実行できます。

az acs kubernetes install-cli

kubernetes キーが kubectl ツールにインストールされているかどうかをテストするには、次のコマンドを実行します。

kubectl get nodes

上のコマンドでエラーが発生する場合は、kubernetes クラスター キーを kubectl ツールにインストールする必要があります。 これを行うには、次のコマンドを使います。

RESOURCE_GROUP=my-resource-group
CLUSTER_NAME=my-acs-name
az acs kubernetes get-credentials --resource-group=$RESOURCE_GROUP --name=$CLUSTER_NAME

Log Analytics でコンテナーを監視する

Log Analytics は、オンプレミスのインフラストラクチャやクラウド インフラストラクチャの管理および保護に役立つ、Microsoft のクラウド ベースの IT 管理ソリューションです。 コンテナー ソリューションは Log Analytics の 1 つのソリューションであり、コンテナー インベントリ、パフォーマンス、およびログを 1 つの場所で表示するのに役立ちます。 一元的な場所でログを表示して監査やコンテナーのトラブルシューティングを行い、ホスト上のノイズと消費の多いコンテナーを検索することができます。

コンテナー ソリューションの詳細については、Log Analytics のコンテナー ソリューションに関するページを参照してください。

Kubernetes に Log Analytics をインストールする

ワークスペース ID とキーを取得する

Log Analytics エージェントがサービスと通信するには、エージェントがワークスペース ID とワークスペース キーで構成されている必要があります。 ワークスペース ID とキーを取得するには、https://mms.microsoft.com でアカウントを作成する必要があります。 手順に従ってアカウントを作成してください。 アカウントの作成が完了した後、[Log Analytics] ブレードをクリックすると、ID とキーおよびワークスペースの名前を取得できます。 続いて [詳細設定][接続先ソース][Linux サーバー] で、次に示す必要な情報を確認します。

DaemonSet を使用して Log Analytics エージェントをインストールする

DaemonSet は Kubernetes によって使用され、クラスターのホストごとに 1 つのコンテナーの 1 つのインスタンスを実行します。 この DaemonSet は、監視エージェントの実行に最適です。

DaemonSet YAML ファイルを次に示します。 これを oms-daemonset.yaml という名前のファイルに保存し、WSIDKEY のプレースホルダーの値を、このファイル内のワークスペース ID とキーに置き換えます。

DaemonSet 構成にワークスペース ID とキーを追加したら、kubectl コマンド ライン ツールを使用してクラスターに Log Analytics エージェントをインストールできます。

kubectl create -f oms-daemonset.yaml

Kubernetes シークレットを使用した Log Analytics エージェントのインストール

Log Analytics ワークスペースの ID とキーを保護するには、DaemonSet YAML ファイルの一部とし Kubernetes シークレットを使うことができます。

  • スクリプト、シークレット テンプレート ファイル、DaemonSet YAML ファイルを (リポジトリから) コピーし、それらが同じディレクトリにあることを確認します。

    • シークレット生成スクリプト: secret-gen.sh
    • シークレット テンプレート: secret-template.yaml
      • DaemonSet YAML ファイル: omsagent-ds-secrets.yaml
  • スクリプトを実行します。 スクリプトでは、Log Analytics ワークスペースの ID と主キーの指定を求められます。 それを挿入すると、スクリプトによってシークレット YAML ファイルが作成されるので、それを実行します。

    sudo bash ./secret-gen.sh
    
    • 次のコマンドを実行して、シークレット ポッドを作成します。

      kubectl create -f omsagentsecret.yaml
      
    • 確認するには、次のコマンドを実行します。

    kubectl get secrets
    
    NAME                  TYPE                                  DATA      AGE
    default-token-gvl91   kubernetes.io/service-account-token   3         50d
    omsagent-secret       Opaque                                2         1d
    root@ubuntu16-13db:~# kubectl describe secrets omsagent-secret
    Name:           omsagent-secret
    Namespace:      default
    Labels:         <none>
    Annotations:    <none>
    
    Type:   Opaque
    
    Data
    ====
    WSID:   36 bytes
    KEY:    88 bytes
    
    • 次のコマンドを実行して、omsagent デーモン セットを作成します。
    kubectl create -f omsagent-ds-secrets.yaml
    

まとめ

これで完了です。 しばらくすると、Log Analytics ダッシュボードへのデータ フローを確認できます。