Log Analytics のコンテナー監視ソリューションContainer Monitoring solution in Log Analytics

コンテナーのシンボル

この記事では、Docker と Windows のコンテナー ホストを 1 か所で表示して管理できる、Log Analytics のコンテナー監視ソリューションを設定して使用する方法について説明します。This article describes how to set up and use the Container Monitoring solution in Log Analytics, which helps you view and manage your Docker and Windows container hosts in a single location. Docker は、IT インフラストラクチャへのソフトウェアのデプロイを自動化するコンテナーを作成するために使用されるソフトウェア仮想化システムです。Docker is a software virtualization system used to create containers that automate software deployment to their IT infrastructure.

このソリューションは、どのコンテナーが実行中か、何のコンテナー イメージが実行中か、コンテナーがどこで実行中かを表示します。The solution shows which containers are running, what container image they’re running, and where containers are running. コンテナーで使用されるコマンドを示す詳細な監査情報を確認できます。You can view detailed audit information showing commands used with containers. また、Docker または Windows ホストをリモートで確認しなくても、一元化されたログを表示および検索して、コンテナーのトラブルシューティングを行うことができます。And, you can troubleshoot containers by viewing and searching centralized logs without having to remotely view Docker or Windows hosts. ホストで余分なリソースを使用しているコンテナーや、ノイズが大きいコンテナーを特定できます。You can find containers that may be noisy and consuming excess resources on a host. また、コンテナーについて、CPU、メモリ、ストレージ、ネットワークの使用量とパフォーマンスに関する情報を一元的に確認できます。And, you can view centralized CPU, memory, storage, and network usage and performance information for containers. Windows を実行しているコンピューターでは、Windows Server、Hyper-V、Docker の各コンテナーのログを一元化して比較できます。On computers running Windows, you can centralize and compare logs from Windows Server, Hyper-V, and Docker containers. このソリューションは、次のコンテナー オーケストレーターをサポートしています。The solution supports the following container orchestrators:

  • Docker SwarmDocker Swarm
  • DC/OSDC/OS
  • KubernetesKubernetes
  • Service FabricService Fabric
  • Red Hat OpenShiftRed Hat OpenShift

次のダイアグラムは、OMS を使用するさまざまなコンテナー ホストとエージェント間の関係を示しています。The following diagram shows the relationships between various container hosts and agents with OMS.

コンテナー ダイアグラム

システム要件とサポートされているプラットフォームSystem requirements and supported platforms

始める前に、次の詳細を確認し、前提条件が満たされていることを確認してください。Before starting, review the following details to verify you meet the prerequisites.

Docker Orchestrator と OS プラットフォームのコンテナー監視ソリューションのサポートContainer monitoring solution support for Docker Orchestrator and OS platform

次の表は、Log Analytics によるコンテナー インベントリ、パフォーマンス、およびログの Docker オーケストレーションとオペレーティング システムの監視サポートの概要を示しています。The following table outlines the Docker orchestration and operating system monitoring support of container inventory, performance, and logs with Log Analytics.

ACSACS LinuxLinux WindowsWindows コンテナーContainer
インベントリInventory
イメージImage
インベントリInventory
ノードNode
インベントリInventory
コンテナーContainer
パフォーマンスPerformance
コンテナーContainer
イベントEvent
イベントEvent
ログLog
コンテナーContainer
ログLog
KubernetesKubernetes
MesosphereMesosphere
DC/OSDC/OS
DockerDocker
SwarmSwarm
サービスService
FabricFabric
Red Hat OpenRed Hat Open
ShiftShift
Windows ServerWindows Server
(スタンドアロン)(standalone)
Linux サーバーLinux Server
(スタンドアロン)(standalone)

Linux でサポートされている Docker のバージョンDocker versions supported on Linux

  • Docker 1.11 ~ 1.13Docker 1.11 to 1.13
  • Docker CE と EE v17.06Docker CE and EE v17.06

コンテナー ホストとしてサポートされている x64 Linux ディストリビューションx64 Linux distributions supported as container hosts

  • Ubuntu 14.04 LTS と 16.04 LTSUbuntu 14.04 LTS and 16.04 LTS
  • CoreOS (Stable)CoreOS(stable)
  • Amazon Linux 2016.09.0Amazon Linux 2016.09.0
  • openSUSE 13.2openSUSE 13.2
  • openSUSE LEAP 42.2openSUSE LEAP 42.2
  • CentOS 7.2 と 7.3CentOS 7.2 and 7.3
  • SLES 12SLES 12
  • RHEL 7.2 と 7.3RHEL 7.2 and 7.3
  • Red Hat OpenShift Container Platform (OCP) 3.4 と 3.5Red Hat OpenShift Container Platform (OCP) 3.4 and 3.5
  • ACS Mesosphere DC/OS 1.7.3 ~ 1.8.8ACS Mesosphere DC/OS 1.7.3 to 1.8.8
  • ACS Kubernetes 1.4.5 ~ 1.6ACS Kubernetes 1.4.5 to 1.6
    • Kubernetes イベント、Kubernetes インベントリ、およびコンテナー プロセスは、バージョン 1.4.1-45 以降の OMS エージェント for Linux のみでサポートされています。Kubernetes events, Kubernetes inventory, and container processes are only supported with version 1.4.1-45 and later of the OMS Agent for Linux
  • ACS Docker SwarmACS Docker Swarm

サポートされている Windows オペレーティング システムSupported Windows operating system

  • Windows Server 2016Windows Server 2016
  • Windows 10 Anniversary Edition (Professional または Enterprise)Windows 10 Anniversary Edition (Professional or Enterprise)

Windows でサポートされている Docker のバージョンDocker versions supported on Windows

  • Docker 1.12 と 1.13Docker 1.12 and 1.13
  • Docker 17.03.0 以降Docker 17.03.0 and later

ソリューションのインストールと構成Installing and configuring the solution

次の情報を使用して、ソリューションをインストールおよび構成します。Use the following information to install and configure the solution.

  1. コンテナー監視ソリューションを OMS ワークスペースに追加します。Azure Marketplace から追加するか、ソリューション ギャラリーからの Log Analytics ソリューションの追加に関するページで説明されている手順に従って追加してください。Add the Container Monitoring solution to your OMS workspace from Azure marketplace or by using the process described in Add Log Analytics solutions from the Solutions Gallery.

  2. OMS エージェントで Docker をインストールして使用します。Install and use Docker with an OMS agent. ご使用のオペレーティング システムと Docker Orchestrator に基づいて、次のメソッドを使用してエージェントを構成できます。Based on your operating system and Docker orchestrator, you can use the following methods to configure your agent.

Windows を実行しているコンピューターに Docker エンジンをインストールして構成する方法の詳細については、「Windows 上の Docker エンジン」をご覧ください。Review the Docker Engine on Windows article for additional information about how to install and configure your Docker Engines on computers running Windows.

重要

Docker は、OMS Agent for Linux をコンテナー ホストにインストールするに実行しておく必要があります。Docker must be running before you install the OMS Agent for Linux on your container hosts. Docker をインストールするより先にエージェントをインストールしてある場合は、OMS Agent for Linux を再インストールする必要があります。If you've already installed the agent before installing Docker, you need to reinstall the OMS Agent for Linux. Docker の詳細については、Docker の Web サイトを参照してください。For more information about Docker, see the Docker website.

Linux コンテナー ホストをインストールして構成するInstall and configure Linux container hosts

Docker をインストールした後で、コンテナー ホストの次の設定を使用して、Docker で使用するためにエージェントを構成します。After you've installed Docker, use the following settings for your container host to configure the agent for use with Docker. まず、OMS のワークスペース ID とキーが必要です。これらは Azure Portal で見つけることができます。First you need your OMS workspace ID and key, which you can find in the Azure portal. ワークスペースで [クイック スタート] > [コンピューター] をクリックして、ワークスペース ID主キーを表示します。In your workspace, click Quick Start > Computers to view your Workspace ID and Primary Key. 両方をコピーしてお使いのエディターに貼り付けます。Copy and paste both into your favorite editor.

CoreOS を除くすべての Linux コンテナー ホストFor all Linux container hosts except CoreOS:

CoreOS を含むすべての Linux コンテナー ホストFor all Linux container hosts including CoreOS:

監視する OMS コンテナーを起動します。Start the OMS container that you want to monitor. 次の例に変更を加えて使用してください。Modify and use the following example:

sudo docker run --privileged -d -v /var/run/docker.sock:/var/run/docker.sock -e WSID="your workspace id" -e KEY="your key" -h=`hostname` -p 127.0.0.1:25225:25225 --name="omsagent" --restart=always microsoft/oms

CoreOS を含むすべての Azure Government Linux コンテナー ホストFor all Azure Government Linux container hosts including CoreOS:

監視する OMS コンテナーを起動します。Start the OMS container that you want to monitor. 次の例に変更を加えて使用してください。Modify and use the following example:

sudo docker run --privileged -d -v /var/run/docker.sock:/var/run/docker.sock -v /var/log:/var/log -e WSID="your workspace id" -e KEY="your key" -e DOMAIN="opinsights.azure.us" -p 127.0.0.1:25225:25225 -p 127.0.0.1:25224:25224/udp --name="omsagent" -h=`hostname` --restart=always microsoft/oms

インストール済みの Linux エージェントからコンテナー内のエージェントの使用への切り替えSwitching from using an installed Linux agent to one in a container

これまで直接インストールされたエージェントを使用しており、今後はコンテナーで実行されているエージェントを使用したい場合は、まず OMS Agent for Linux を削除する必要があります。If you previously used the directly-installed agent and want to instead use an agent running in a container, you must first remove the OMS Agent for Linux. エージェントを正しくアンインストール方法について詳しくは、「OMS Agent for Linux のアンインストール」をご覧ください。See Uninstalling the OMS Agent for Linux to understand how to successfully uninstall the agent.

Docker Swarm 用の OMS エージェントを構成するConfigure an OMS agent for Docker Swarm

Docker Swarm で、OMS エージェントをグローバル サービスとして実行できます。You can run the OMS Agent as a global service on Docker Swarm. 次の情報を使用して、OMS Agent サービスを作成します。Use the following information to create an OMS Agent service. OMS のワークスペース ID と主キーを挿入する必要があります。You need to insert your OMS Workspace ID and Primary Key.

  • マスター ノードで、次を実行します。Run the following on the master node.

    sudo docker service create  --name omsagent --mode global  --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock  -e WSID="<WORKSPACE ID>" -e KEY="<PRIMARY KEY>" -p 25225:25225 -p 25224:25224/udp  --restart-condition=on-failure microsoft/oms
    
Docker Swarm 用のシークレットを保護するSecure secrets for Docker Swarm

Docker Swarm の場合、ワークスペース ID と主キーのシークレットが作成されたら、次の情報を使用してシークレット情報を作成します。For Docker Swarm, once the secret for Workspace ID and Primary Key is created, use the following information to create your secret information.

  1. マスター ノードで、次を実行します。Run the following on the master node.

    echo "WSID" | docker secret create WSID -
    echo "KEY" | docker secret create KEY -
    
  2. シークレットが正しく作成されたことを確認します。Verify that secrets were created properly.

    keiko@swarmm-master-13957614-0:/run# sudo docker secret ls
    
    ID                          NAME                CREATED             UPDATED
    j2fj153zxy91j8zbcitnjxjiv   WSID                43 minutes ago      43 minutes ago
    l9rh3n987g9c45zffuxdxetd9   KEY                 38 minutes ago      38 minutes ago
    
  3. 次のコマンドを実行して、シークレットをコンテナー化された OMS エージェントにマウントします。Run the following command to mount the secrets to the containerized OMS Agent.

    sudo docker service create  --name omsagent --mode global  --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --secret source=WSID,target=WSID --secret source=KEY,target=KEY  -p 25225:25225 -p 25224:25224/udp --restart-condition=on-failure microsoft/oms
    

Red Hat OpenShift 用の OMS エージェントを構成するConfigure an OMS Agent for Red Hat OpenShift

Red Hat OpenShift に OMS エージェントを追加してコンテナーの監視データの収集を開始するには、次の 3 つの方法が用意されています。There are three ways to add the OMS Agent to Red Hat OpenShift to start collecting container monitoring data.

このセクションでは、OMS エージェントを OpenShift デーモン セットとしてインストールするために必要な手順を説明します。In this section we cover the steps required to install the OMS Agent as an OpenShift daemon-set.

  1. OpenShift のマスター ノードにサインオンし、yaml ファイル ocp-omsagent.yaml を GitHub からマスター ノードにコピーして、値を OMS のワークスペース ID と 主キーに変更します。Sign on to the OpenShift master node and copy the yaml file ocp-omsagent.yaml from GitHub to your master node and modify the value with your OMS Workspace ID and with your Primary Key.
  2. 次のコマンドを実行して OMS のプロジェクトを作成し、ユーザー アカウントを設定します。Run the following commands to create a project for OMS and set the user account.

    oadm new-project omslogging --node-selector='zone=default'
    oc project omslogging  
    oc create serviceaccount omsagent  
    oadm policy add-cluster-role-to-user cluster-reader   system:serviceaccount:omslogging:omsagent  
    oadm policy add-scc-to-user privileged system:serviceaccount:omslogging:omsagent  
    
  3. デーモン セットをデプロイするには、次の手順を実行します。To deploy the daemon-set, run the following:

    oc create -f ocp-omsagent.yaml

  4. 構成と動作が正しいことを確認するには、次を入力します。To verify it is configured and working correctly, type the following:

    oc describe daemonset omsagent

    出力は次のようになります。and the output should resemble:

    [ocpadmin@khm-0 ~]$ oc describe ds oms  
    Name:           oms  
    Image(s):       microsoft/oms  
    Selector:       name=omsagent  
    Node-Selector:  zone=default  
    Labels:         agentVersion=1.4.0-12  
                    dockerProviderVersion=10.0.0-25  
                    name=omsagent  
    Desired Number of Nodes Scheduled: 3  
    Current Number of Nodes Scheduled: 3  
    Number of Nodes Misscheduled: 0  
    Pods Status:    3 Running / 0 Waiting / 0 Succeeded / 0 Failed  
    No events.  
    

OMS Agent デーモン セットの yaml ファイルを使用するときにシークレットを使用して OMS のワークスペース ID と主キーをセキュリティで保護するには、次の手順を実行します。If you want to use secrets to secure your OMS Workspace ID and Primary Key when using the OMS Agent daemon-set yaml file, perform the following steps.

  1. OpenShift のマスター ノードにサインオンして、yaml ファイル ocp-ds-omsagent.yaml とシークレットを生成するスクリプト ocp-secretgen.sh を GitHub からコピーします。Sign on to the OpenShift master node and copy the yaml file ocp-ds-omsagent.yaml and secret generating script ocp-secretgen.sh from GitHub. このスクリプトにより OMS のワークスペース ID と主キーのシークレット yaml ファイルが生成され、秘密情報がセキュリティで保護されます。This script will generate the secrets yaml file for OMS Workspace ID and Primary Key to secure your secrete information.
  2. 次のコマンドを実行して OMS のプロジェクトを作成し、ユーザー アカウントを設定します。Run the following commands to create a project for OMS and set the user account. シークレットを生成するスクリプトは OMS のワークスペース ID と主キー を要求し、完了すると ocp-secret.yaml ファイルが作成されます。The secret generating script asks for your OMS Workspace ID and Primary Key and upon completion, it creates the ocp-secret.yaml file.

    oadm new-project omslogging --node-selector='zone=default'  
    oc project omslogging  
    oc create serviceaccount omsagent  
    oadm policy add-cluster-role-to-user cluster-reader   system:serviceaccount:omslogging:omsagent  
    oadm policy add-scc-to-user privileged system:serviceaccount:omslogging:omsagent  
    
  3. 次のコマンドを実行して、シークレット ファイルをデプロイします。Deploy the secret file by running the following:

    oc create -f ocp-secret.yaml

  4. 次を実行して、デプロイを確認します。Verify deployment by running the following:

    oc describe secret omsagent-secret

    出力は次のようになります。and the output should resemble:

    [ocpadmin@khocp-master-0 ~]$ oc describe ds oms  
    Name:           oms  
    Image(s):       microsoft/oms  
    Selector:       name=omsagent  
    Node-Selector:  zone=default  
    Labels:         agentVersion=1.4.0-12  
                    dockerProviderVersion=10.0.0-25  
                    name=omsagent  
    Desired Number of Nodes Scheduled: 3  
    Current Number of Nodes Scheduled: 3  
    Number of Nodes Misscheduled: 0  
    Pods Status:    3 Running / 0 Waiting / 0 Succeeded / 0 Failed  
    No events.  
    
  5. 次を実行して、OMS エージェントのデーモン セット yaml ファイルをデプロイします。Deploy the OMS Agent daemon-set yaml file by running the following:

    oc create -f ocp-ds-omsagent.yaml

  6. 次を実行して、デプロイを確認します。Verify deployment by running the following:

    oc describe ds oms

    出力は次のようになります。and the output should resemble:

    [ocpadmin@khocp-master-0 ~]$ oc describe secret omsagent-secret  
    Name:           omsagent-secret  
    Namespace:      omslogging  
    Labels:         <none>  
    Annotations:    <none>  
    
    Type:   Opaque  
    
     Data  
     ====  
     KEY:    89 bytes  
     WSID:   37 bytes  
    

Kubernetes 用の OMS Linux エージェントを構成するConfigure an OMS Linux agent for Kubernetes

Kubernetes では、スクリプトを使用して、ワークスペース ID と主キーのシークレット yaml ファイルを生成して OMS エージェント for Linux をインストールします。For Kubernetes, you use a script to generate the secrets yaml file for your Workspace ID and Primary Key to install the OMS Agent for Linux. OMS Docker Kubernetes GitHub ページに、シークレット情報を使用して、または使用せずに使うことができるファイルがあります。At the OMS Docker Kubernetes GitHub page, there are files that you can use with or without your secret information.

  • 既定の OMS エージェント for Linux DaemonSet には、シークレット情報 (omsagent.yaml) がありません。The Default OMS Agent for Linux DaemonSet does not have secret information (omsagent.yaml)
  • OMS エージェント for Linux DaemonSet yaml ファイルは、シークレット情報 (omsagent-ds-secrets.yaml) とシークレット生成スクリプトを使用してシークレット yaml (omsagentsecret.yaml) ファイルを生成します。The OMS Agent for Linux DaemonSet yaml file uses secret information (omsagent-ds-secrets.yaml) with secret generation scripts to generate the secrets yaml (omsagentsecret.yaml) file.

omsagent DaemonSet は、シークレットを使用して作成するか使用せずに作成するかを選択できます。You can choose to create omsagent DaemonSets with or without secrets.

シークレットを使用しない既定の OMSagent DaemonSet yaml ファイルDefault OMSagent DaemonSet yaml file without secrets

  • 既定の OMS Agent DaemonSet yaml ファイルでは、<WSID><KEY> を自分の WSID と KEY に置き換えます。For the default OMS Agent DaemonSet yaml file, replace the <WSID> and <KEY> to your WSID and KEY. ファイルをマスター ノードにコピーし、次を実行します。Copy the file to your master node and run the following:

    sudo kubectl create -f omsagent.yaml
    

シークレットを使用する既定の OMSagent DaemonSet yaml ファイルDefault OMSagent DaemonSet yaml file with secrets

  1. シークレット情報を使用して OMS Agent DaemonSet を使用するには、まずシークレットを作成します。To use OMS Agent DaemonSet using secret information, create the secrets first.

    1. スクリプトとシークレット テンプレート ファイルをコピーし、それらが同じディレクトリにあることを確認します。Copy the script and secret template file and make sure they are on the same directory.
      • シークレット生成スクリプト: secret-gen.shSecret generating script - secret-gen.sh
      • シークレット テンプレート: secret-template.yamlsecret template - secret-template.yaml
    2. 次の例のように、スクリプトを実行します。Run the script, like the following example. このスクリプトでは、OMS のワークスペース ID と主キーの入力を求められます。それらを入力すると、シークレット yaml ファイルが作成され、実行できるようになります。The script asks for the OMS Workspace ID and Primary Key and after you enter them, the script creates a secret yaml file so you can run it.

      #> sudo bash ./secret-gen.sh
      
    3. 次のコマンドを実行して、シークレット ポッドを作成します。Create the secrets pod by running the following:

      sudo kubectl create -f omsagentsecret.yaml
      
    4. 検証するには、次のコマンドを実行します。To verify, run the following:

      keiko@ubuntu16-13db:~# sudo kubectl get secrets
      

      出力は、次のようになるはずです。Output should resemble:

      NAME                  TYPE                                  DATA      AGE
      default-token-gvl91   kubernetes.io/service-account-token   3         50d
      omsagent-secret       Opaque                                2         1d
      
      keiko@ubuntu16-13db:~# sudo kubectl describe secrets omsagent-secret
      

      出力は、次のようになるはずです。Output should resemble:

      Name:           omsagent-secret
      Namespace:      default
      Labels:         <none>
      Annotations:    <none>
      
      Type:   Opaque
      
      Data
      ====
      WSID:   36 bytes
      KEY:    88 bytes
      
    5. sudo kubectl create -f omsagent-ds-secrets.yaml を実行して、omsagent daemon-set を作成します。Create your omsagent daemon-set by running sudo kubectl create -f omsagent-ds-secrets.yaml

  2. 次のように、OMS Agent DaemonSet が実行されていることを確認します。Verify that the OMS Agent DaemonSet is running, similar to the following:

    keiko@ubuntu16-13db:~# sudo kubectl get ds omsagent
    
    NAME       DESIRED   CURRENT   NODE-SELECTOR   AGE
    omsagent   3         3         <none>          1h
    

Kubernetes では、スクリプトを使用して、OMS エージェント for Linux 用のワークスペース ID と 主キー用のシークレット yaml ファイルを生成します。For Kubernetes, use a script to generate the secrets yaml file for Workspace ID and Primary Key for the OMS Agent for Linux. omsagent yaml ファイルで次の例の情報を使用して、シークレット情報を保護します。Use the following example information with the omsagent yaml file to secure your secret information.

keiko@ubuntu16-13db:~# sudo kubectl describe secrets omsagent-secret
Name:           omsagent-secret
Namespace:      default
Labels:         <none>
Annotations:    <none>

Type:   Opaque

Data
====
WSID:   36 bytes
KEY:    88 bytes

Windows Kubernetes 用の OMS エージェントを構成するConfigure an OMS agent for Windows Kubernetes

Windows Kubernetes では、スクリプトを使用して、ワークスペース ID と主キーのシークレット yaml ファイルを生成して OMS エージェントをインストールします。For Windows Kubernetes, you use a script to generate the secrets yaml file for your Workspace ID and Primary Key to install the OMS Agent. OMS Docker Kubernetes GitHub ページに、シークレット情報を利用して使用できるファイルがあります。At the OMS Docker Kubernetes GitHub page, there are files that you can use with your secret information. マスター ノードとエージェント ノードに個別に OMS エージェントをインストールする必要があります。You need to install the OMS Agent separately for the master and agent nodes.

  1. マスター ノードでシークレット情報を使用して OMS エージェント DaemonSet を使用するには、サインインして、まずシークレットを作成します。To use OMS Agent DaemonSet using secret information on the Master node, sign in and create the secrets first.

    1. スクリプトとシークレット テンプレート ファイルをコピーし、それらが同じディレクトリにあることを確認します。Copy the script and secret template file and make sure they are on the same directory.

      • シークレット生成スクリプト: secret-gen.shSecret generating script - secret-gen.sh
      • シークレット テンプレート: secret-template.yamlsecret template - secret-template.yaml
    2. 次の例のように、スクリプトを実行します。Run the script, like the following example. このスクリプトでは、OMS のワークスペース ID と主キーの入力を求められます。それらを入力すると、シークレット yaml ファイルが作成され、実行できるようになります。The script asks for the OMS Workspace ID and Primary Key and after you enter them, the script creates a secret yaml file so you can run it.

      #> sudo bash ./secret-gen.sh
      
    3. kubectl create -f omsagentsecret.yaml を実行して、omsagent daemon-set を作成します。Create your omsagent daemon-set by running kubectl create -f omsagentsecret.yaml
    4. 確認するには、次のコマンドを実行します。To check, run the following:

      root@ubuntu16-13db:~# kubectl get secrets
      

      出力は、次のようになるはずです。Output should resemble:

      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 
      
    5. kubectl create -f ws-omsagent-de-secrets.yaml を実行して、omsagent daemon-set を作成します。Create your omsagent daemon-set by running kubectl create -f ws-omsagent-de-secrets.yaml

  2. 次のように、OMS Agent DaemonSet が実行されていることを確認します。Verify that the OMS Agent DaemonSet is running, similar to the following:

    root@ubuntu16-13db:~# kubectl get deployment omsagent
    NAME       DESIRED   CURRENT   NODE-SELECTOR   AGE
    omsagent   1         1         <none>          1h
    
  3. Windows を実行している worker ノードにエージェントをインストールするには、セクション「Windows コンテナー ホストをインストールして構成する」の手順に従います。To install the agent on the Worker Node, which are running Windows, follow the steps in the section install and configure Windows container hosts.

Helm を使用して Linux Kubernetes に OMS エージェントをデプロイするUse Helm to deploy OMS Agent on Linux Kubernetes

Helm を使用して Linux Kubernetes 環境内に OMS エージェントをデプロイするには、次の手順を実行します。To use helm to deploy OMS Agent on your Linux Kubernetes environment, perform the following steps.

  1. helm install --name omsagent --set omsagent.secret.wsid=<WSID>,omsagent.secret.key=<KEY> stable/msoms を実行して、omsagent daemon-set を作成します。Create your omsagent daemon-set by running helm install --name omsagent --set omsagent.secret.wsid=<WSID>,omsagent.secret.key=<KEY> stable/msoms
  2. 結果は次のようになります。The results will look similar to the following:

    NAME:   omsagent
    LAST DEPLOYED: Tue Sep 19 20:37:46 2017
    NAMESPACE: default
    STATUS: DEPLOYED
    
    RESOURCES:
    ==> v1/Secret
    NAME            TYPE    DATA  AGE
    omsagent-msoms  Opaque  3     3s
    
    ==> v1beta1/DaemonSet
    NAME            DESIRED  CURRENT  READY  UP-TO-DATE  AVAILABLE  NODE-SELECTOR  AGE
    omsagent-msoms  3        3        3      3           3          <none>         3s
    
  3. helm status "omsagent" を実行して omsagent の状態を確認できます。出力は次のようになります。You can check the status of the omsagent by running: helm status "omsagent" and the output will look similar to the following:

    keiko@k8s-master-3814F33-0:~$ helm status omsagent
    LAST DEPLOYED: Tue Sep 19 20:37:46 2017
    NAMESPACE: default
    STATUS: DEPLOYED
    
    RESOURCES:
    ==> v1/Secret
    NAME            TYPE    DATA  AGE
    omsagent-msoms  Opaque  3     17m
    
    ==> v1beta1/DaemonSet
    NAME            DESIRED  CURRENT  READY  UP-TO-DATE  AVAILABLE  NODE-SELECTOR  AGE
    omsagent-msoms  3        3        3      3           3          <none>         17m
    

    詳細については、コンテナー ソリューション Helm チャートに関するページを参照してください。For further information, please visit Container Solution Helm Chart.

Windows コンテナー ホストをインストールして構成するInstall and configure Windows container hosts

セクション内の情報を使用して、Windows コンテナー ホストをインストールして構成します。Use the information in section to install and configure Windows container hosts.

Windows エージェントをインストールする前の準備Preparation before installing Windows agents

Windows を実行しているコンピューターにエージェントをインストールする前に、Docker サービスを構成する必要があります。Before you install agents on computers running Windows, you need to configure the Docker service. 構成により、Windows エージェントまたは Log Analytics 仮想マシン拡張機能は、エージェントが Docker デーモンにリモートでアクセスできるように Docker TCP ソケットを使用できるようになり、監視用のデータをキャプチャすることが可能になります。The configuration allows the Windows agent or the Log Analytics virtual machine extension to use the Docker TCP socket so that the agents can access the Docker daemon remotely and to capture data for monitoring.

Docker を起動して構成を確認するにはTo start Docker and verify its configuration

Windows Server の TCP 名前付きパイプのセットアップに必要な手順があります。There are steps needed to set up TCP named pipe for Windows Server:

  1. Windows PowerShell で、TCP パイプと名前付きパイプを有効にします。In Windows PowerShell, enable TCP pipe and named pipe.

    Stop-Service docker
    dockerd --unregister-service
    dockerd --register-service -H npipe:// -H 0.0.0.0:2375  
    Start-Service docker
    
  2. TCP パイプと名前付きパイプ用の構成ファイルを使用して、Docker を構成します。Configure Docker with the configuration file for TCP pipe and named pipe. 構成ファイルは C:\ProgramData\docker\config\daemon.json にあります。The configuration file is located at C:\ProgramData\docker\config\daemon.json.

    daemon.json ファイルで、以下を実行する必要があります。In the daemon.json file, you will need the following:

    {
    "hosts": ["tcp://0.0.0.0:2375", "npipe://"]
    }
    

Windows コンテナーで使用する Docker デーモン構成の詳細については、「Windows 上の Docker エンジン」をご覧ください。For more information about the Docker daemon configuration used with Windows Containers, see Docker Engine on Windows.

Windows エージェントのインストールInstall Windows agents

Windows および Hyper-V コンテナーの監視を有効にするには、コンテナー ホストである Windows コンピューターに Microsoft Monitoring Agent (MMA) をインストールします。To enable Windows and Hyper-V container monitoring, install the Microsoft Monitoring Agent (MMA) on Windows computers that are container hosts. Windows を実行しているオンプレミス環境のコンピューターの場合、Log Analytics への Windows コンピューターの接続に関する記事をご覧ください。For computers running Windows in your on-premises environment, see Connect Windows computers to Log Analytics. Azure で実行されている仮想マシンの場合、仮想マシン拡張機能を使用して Log Analytics に接続します。For virtual machines running in Azure, connect them to Log Analytics using the virtual machine extension.

Service Fabric で実行されている Windows コンテナーを監視できます。You can monitor Windows containers running on Service Fabric. ただし、現在 Service Fabric でサポートされているのは、Azure で実行される仮想マシンオンプレミス環境で Windows を実行するコンピューターのみです。However, only virtual machines running in Azure and computers running Windows in your on-premises environment are currently supported for Service Fabric.

Windows でコンテナー監視ソリューションが正しく設定されていることを確認できます。You can verify that the Container Monitoring solution is set correctly for Windows. 管理パックが正常にダウンロードされているかどうかを確認するには、ContainerManagement.xxx を探します。To check whether the management pack was download properly, look for ContainerManagement.xxx. ファイルは C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs フォルダーにあります。The files should be in the C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs folder.

ソリューションのコンポーネントSolution components

Windows エージェントを使用している場合、このソリューションを追加するときに、各コンピューターにエージェントと共に次の管理パックがインストールされます。If you are using Windows agents, then the following management pack is installed on each computer with an agent when you add this solution. この管理パックは構成や保守が不要です。No configuration or maintenance is required for the management pack.

  • ContainerManagement.xxx は、C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs にインストールされます。ContainerManagement.xxx installed in C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs

コンテナーのデータ収集の詳細Container data collection details

コンテナー監視ソリューションでは、有効化されたエージェントを使用して、コンテナー ホストとコンテナーからさまざまなパフォーマンス メトリックとログ データを収集します。The Container Monitoring solution collects various performance metrics and log data from container hosts and containers using agents that you enable.

データは、次のエージェントの種類によって 3 分ごとに収集されます。Data is collected every three minutes by the following agent types.

コンテナー レコードContainer records

次の表に、コンテナー監視ソリューションによって収集されるレコードと、ログ検索結果に表示されるデータ型の例を示します。The following table shows examples of records collected by the Container Monitoring solution and the data types that appear in log search results.

データ型Data type ログ検索のデータ型Data type in Log Search フィールドFields
ホストとコンテナーのパフォーマンスPerformance for hosts and containers Type=Perf Computer、ObjectName、CounterName (%Processor Time、Disk Reads MB、Disk Writes MB、Memory Usage MB、Network Receive Bytes、Network Send Bytes、Processor Usage sec、Network)、CounterValue、TimeGenerated、CounterPath、SourceSystemComputer, ObjectName, CounterName (%Processor Time, Disk Reads MB, Disk Writes MB, Memory Usage MB, Network Receive Bytes, Network Send Bytes, Processor Usage sec, Network), CounterValue,TimeGenerated, CounterPath, SourceSystem
コンテナー インベントリContainer inventory Type=ContainerInventory TimeGenerated、Computer、container name、ContainerHostname、Image、ImageTag、ContainerState、ExitCode、EnvironmentVar、Command、CreatedTime、StartedTime、FinishedTime、SourceSystem、ContainerID、ImageIDTimeGenerated, Computer, container name, ContainerHostname, Image, ImageTag, ContainerState, ExitCode, EnvironmentVar, Command, CreatedTime, StartedTime, FinishedTime, SourceSystem, ContainerID, ImageID
コンテナー イメージ インベントリContainer image inventory Type=ContainerImageInventory TimeGenerated、Computer、Image、ImageTag、ImageSize、VirtualSize、Running、Paused、Stopped、Failed、SourceSystem、ImageID、TotalContainerTimeGenerated, Computer, Image, ImageTag, ImageSize, VirtualSize, Running, Paused, Stopped, Failed, SourceSystem, ImageID, TotalContainer
コンテナー ログContainer log Type=ContainerLog TimeGenerated、Computer、image ID、container name、LogEntrySource、LogEntry、SourceSystem、ContainerIDTimeGenerated, Computer, image ID, container name, LogEntrySource, LogEntry, SourceSystem, ContainerID
コンテナー サービス ログContainer service log Type=ContainerServiceLog TimeGenerated、Computer、TimeOfCommand、Image、Command、SourceSystem、ContainerIDTimeGenerated, Computer, TimeOfCommand, Image, Command, SourceSystem, ContainerID
コンテナー ノード インベントリContainer node inventory Type=ContainerNodeInventory_CL TimeGenerated、Computer、ClassName_s、DockerVersion_s、OperatingSystem_s、Volume_s、Network_s、NodeRole_s、OrchestratorType_s、InstanceID_g、SourceSystemTimeGenerated, Computer, ClassName_s, DockerVersion_s, OperatingSystem_s, Volume_s, Network_s, NodeRole_s, OrchestratorType_s, InstanceID_g, SourceSystem
Kubernetes インベントリKubernetes inventory Type=KubePodInventory_CL TimeGenerated、Computer、PodLabel_deployment_s、PodLabel_deploymentconfig_s、PodLabel_docker_registry_s、Name_s、Namespace_s、PodStatus_s、PodIp_s、PodUid_g、PodCreationTimeStamp_t、SourceSystemTimeGenerated, Computer, PodLabel_deployment_s, PodLabel_deploymentconfig_s, PodLabel_docker_registry_s, Name_s, Namespace_s, PodStatus_s, PodIp_s, PodUid_g, PodCreationTimeStamp_t, SourceSystem
コンテナー プロセスContainer process Type=ContainerProcess_CL TimeGenerated、Computer、Pod_s、Namespace_s、ClassName_s、InstanceID_s、Uid_s、PID_s、PPID_s、C_s、STIME_s、Tty_s、TIME_s、Cmd_s、Id_s、Name_s、SourceSystemTimeGenerated, Computer, Pod_s, Namespace_s, ClassName_s, InstanceID_s, Uid_s, PID_s, PPID_s, C_s, STIME_s, Tty_s, TIME_s, Cmd_s, Id_s, Name_s, SourceSystem
Kubernetes イベントKubernetes events Type=KubeEvents_CL TimeGenerated、Computer、Name_s、ObjectKind_s、Namespace_s、Reason_s、Type_s、SourceComponent_s、SourceSystem、MessageTimeGenerated, Computer, Name_s, ObjectKind_s, Namespace_s, Reason_s, Type_s, SourceComponent_s, SourceSystem, Message

PodLabel データ型に付加されるラベルは、独自のカスタム ラベルです。Labels appended to PodLabel data types are your own custom labels. 表に示されている、付加された PodLabel ラベルは一例です。The appended PodLabel labels shown in the table are examples. そのため、PodLabel_deployment_sPodLabel_deploymentconfig_sPodLabel_docker_registry_s はご利用の環境のデータ セットによって異なり、一般的には PodLabel_yourlabel_s に似ています。So, PodLabel_deployment_s, PodLabel_deploymentconfig_s, PodLabel_docker_registry_s will differ in your environment's data set and generically resemble PodLabel_yourlabel_s.

コンテナーの監視Monitor containers

OMS ポータルでソリューションを有効にすると、コンテナー ホストと、ホストで実行されているコンテナーに関する概要情報が [コンテナー] タイルに表示されます。After you have the solution enabled in the OMS portal, the Containers tile shows summary information about your container hosts and the containers running in hosts.

[コンテナー] タイル

このタイルには、環境内に存在するコンテナーの数と、それらのコンテナーの状態 (失敗、実行中、停止) の概要が示されます。The tile shows an overview of how many containers you have in the environment and whether they're failed, running, or stopped.

コンテナー ダッシュボードの使用Using the Containers dashboard

[コンテナー] タイルをクリックします。Click the Containers tile. ここに表示される情報は、次の項目で整理されます。From there you'll see views organized by:

  • コンテナー イベント - コンテナーの状態と、失敗したコンテナーがあるコンピューターを示します。Container Events - Shows container status and computers with failed containers.
  • コンテナー ログ - 生成されたコンテナー ログ ファイルの一定期間のグラフと、ログ ファイル数が最も多いコンピューターの一覧を示します。Container Logs - Shows a chart of container log files generated over time and a list of computers with the highest number of log files.
  • Kubernetes イベント - 生成された Kubernetes イベントの一定期間のグラフと、ポッドがイベントを生成した理由の一覧を示します。Kubernetes Events - Shows a chart of Kubernetes events generated over time and a list of the reasons why pods generated the events. このデータ セットは、Linux 環境でのみ使用します。This data set is used only in Linux environments.
  • Kubernetes 名前空間のインベントリ - 名前空間とポッドの数、およびそれらの階層を示します。Kubernetes Namespace Inventory - Shows the number of namespaces and pods and shows their hierarchy. このデータ セットは、Linux 環境でのみ使用します。This data set is used only in Linux environments.
  • コンテナー ノードのインベントリ - コンテナー ノード/ホストで使用されるオーケストレーションの種類の数を示します。Container Node Inventory - Shows the number of orchestration types used on container nodes/hosts. コンピューター ノード/ホストも、コンテナーの数として一覧表示されます。The computer nodes/hosts are also listed by the number of containers. このデータ セットは、Linux 環境でのみ使用します。This data set is used only in Linux environments.
  • コンテナー イメージのインベントリ - 使用されるコンテナー イメージの総数と、イメージの種類の数を示します。Container Images Inventory - Shows the total number of container images used and number of image types. イメージの数も、イメージ タグで一覧表示されます。The number of images are also listed by the image tag.
  • コンテナーの状態 - 実行中のコンテナーがあるコンテナー ノード/ホスト コンピューターの総数を示します。Containers Status - Shows the total number of container nodes/host computers that have running containers. コンピューターも、実行中のホストの数として一覧表示されます。Computers are also listed by the number of running hosts.
  • コンテナー プロセス - 実行されているコンテナー プロセスの一定期間の折れ線グラフを示します。Container Process - Shows a line chart of container processes running over time. コンテナーも、コンテナー内で実行中のコマンド/プロセスとして一覧表示されます。Containers are also listed by running command/process within containers. このデータ セットは、Linux 環境でのみ使用します。This data set is used only in Linux environments.
  • コンテナー CPU のパフォーマンス - コンピューター ノード/ホストの平均 CPU 使用率の一定期間の折れ線グラフを示します。Container CPU Performance - Shows a line chart of the average CPU utilization over time for computer nodes/hosts. 平均 CPU 使用率に基づいてコンピューター ノード/ホストも一覧表示されます。Also lists the computer nodes/hosts based on average CPU utilization.
  • コンテナー メモリのパフォーマンス - メモリ使用量の一定期間の折れ線グラフを示します。Container Memory Performance - Shows a line chart of memory usage over time. インスタンス名に基づいてコンピューターのメモリ使用率も一覧表示されます。Also lists computer memory utilization based on instance name.
  • コンピューターのパフォーマンス - CPU パフォーマンスの一定期間のパーセント、メモリ使用量の一定期間のパーセント、一定期間の空きディスク領域のメガバイトについての折れ線グラフを示します。Computer Performance - Shows line charts of the percent of CPU performance over time, percent of memory usage over time, and megabytes of free disk space over time. グラフの線にマウス オーバーすると詳細を表示できます。You can hover over any line in a chart to view more details.

ダッシュボードの各エリアは、収集されたデータに対して実行された検索の結果を視覚的に表したものです。Each area of the dashboard is a visual representation of a search that is run on collected data.

コンテナー ダッシュボード

コンテナー ダッシュボード

[コンテナーの状態] エリアで、上部のエリアをクリックすると次のように表示されます。In the Container Status area, click the top area, as shown below.

コンテナーの状態

[ログ検索] が開き、コンテナーの状態に関する情報が表示されます。Log Search opens, displaying information about the state of your containers.

コンテナーの [ログ検索]

ここで検索クエリを編集して、関心のある情報のみが見つかるように変更できます。From here, you can edit the search query to modify it to find the specific information you're interested in. ログ検索の詳細については、「Log Analytics におけるログの検索」を参照してください。For more information about Log Searches, see Log searches in Log Analytics.

失敗したコンテナーを特定してトラブルシューティングを行うTroubleshoot by finding a failed container

ゼロ以外の終了コードで終了したコンテナーは、Log Analytics によって [失敗] とマークされます。Log Analytics marks a container as Failed if it has exited with a non-zero exit code. [失敗したコンテナー] エリアで、環境におけるエラーと失敗の概要を確認できます。You can see an overview of the errors and failures in the environment in the Failed Containers area.

失敗したコンテナーを特定するにはTo find failed containers

  1. [コンテナーの状態] エリアをクリックします。Click the Container Status area.
    コンテナーの状態containers status
  2. [ログ検索] が開き、次のようにコンテナーの状態が表示されます。Log Search opens and displays the state of your containers, similar to the following.
    コンテナーの状態
  3. 次に、失敗したコンテナーの集計値をクリックして、追加情報を表示します。Next, click the aggregated value of failed containers to view additional information. [表示数を増やす] を展開してイメージ ID を表示します。Expand show more to view the image ID.
    失敗したコンテナーfailed containers
  4. 次に、検索クエリに以下を入力します。Next, type the following in the search query. Type=ContainerInventory <ImageID> により、停止したイメージと失敗したイメージのサイズと数など、イメージに関する詳細が表示されます。Type=ContainerInventory <ImageID> to see details about the image such as image size and number of stopped and failed images.
    失敗したコンテナーfailed containers

コンテナー データのログの検索Search logs for container data

特定のエラーのトラブルシューティングを実行する際には、環境のどこでそのエラーが発生しているのかを確認すると役立つ場合があります。When you're troubleshooting a specific error, it can help to see where it is occurring in your environment. 次のログの種類は、目的の情報を返すクエリを作成するうえで役立ちます。The following log types will help you create queries to return the information you want.

  • ContainerImageInventory – この種類は、イメージ別に整理された情報を見つける場合や、イメージの ID やサイズなどのイメージ情報を確認する場合に使用します。ContainerImageInventory – Use this type when you're trying to find information organized by image and to view image information such as image IDs or sizes.
  • ContainerInventory – この種類は、コンテナーの場所、コンテナーの名前、実行中のイメージに関する情報が必要な場合に使用します。ContainerInventory – Use this type when you want information about container location, what their names are, and what images they're running.
  • ContainerLog – この種類は、特定のエラー ログの情報やエントリを見つける場合に使用します。ContainerLog – Use this type when you want to find specific error log information and entries.
  • ContainerNodeInventory_CL – コンテナーが置かれているホスト/ノードに関する情報が必要な場合に使用します。ContainerNodeInventory_CL Use this type when you want the information about host/node where containers are residing. これにより、Docker のバージョン、オーケストレーションの種類、ストレージ、ネットワーク情報を取得できます。It provides you Docker version, orchestration type, storage, and network information.
  • ContainerProcess_CL – コンテナー内で実行中のプロセスをすぐに確認したいときに使用します。ContainerProcess_CL Use this type to quickly see the process running within the container.
  • ContainerServiceLog – この種類は、開始、停止、削除、プルのコマンドなど、Docker デーモンの監査証跡情報を見つける場合に使用します。ContainerServiceLog – Use this type when you're trying to find audit trail information for the Docker daemon, such as start, stop, delete, or pull commands.
  • KubeEvents_CL – Kubernetes イベントを確認するときに使用します。KubeEvents_CL Use this type to see the Kubernetes events.
  • KubePodInventory_CL – クラスター階層に関する情報を把握したいときに使用します。KubePodInventory_CL Use this type when you want to understand the cluster hierarchy information.

コンテナー データのログを検索するにはTo search logs for container data

  • 最近失敗したことがわかっているイメージを選択し、そのエラー ログを見つけます。Choose an image that you know has failed recently and find the error logs for it. まず、ContainerInventory 検索で、そのイメージを実行しているコンテナー名を特定します。Start by finding a container name that is running that image with a ContainerInventory search. たとえば、Type=ContainerInventory ubuntu Failed を検索します。For example, search for Type=ContainerInventory ubuntu Failed
    Ubuntu コンテナーの検索Search for Ubuntu containers

    [名前] の横にあるコンテナーの名前と、それらのログを検索します。The name of the container next to Name, and search for those logs. この例では Type=ContainerLog cranky_stonebreaker です。In this example, it is Type=ContainerLog cranky_stonebreaker.

パフォーマンス情報の表示View performance information

クエリの作成を始めたばかりの段階では、何が可能かを先に確認しておくと効率的です。When you're beginning to construct queries, it can help to see what's possible first. たとえば、すべてのパフォーマンス データを確認するには、次の検索クエリを入力して広範なクエリを試してみてください。For example, to see all performance data, try a broad query by typing the following search query.

Type=Perf

コンテナーのパフォーマンス

表示されているパフォーマンス データのスコープを特定のコンテナーに制限するには、その名前をクエリの右側に入力します。You can scope the performance data you're seeing to a specific container by typing the name of it to the right of your query.

Type=Perf <containerName>

そうすると、個々のコンテナーについて収集されたパフォーマンス メトリックの一覧が表示されます。That shows the list of performance metrics that are collected for an individual container.

コンテナーのパフォーマンス

検索クエリの例Example log search queries

クエリの作成の際には、多くの場合、1 ~ 2 個の例で始め、その後環境に合わせて変更するとうまくいきます。It's often useful to build queries starting with an example or two and then modifying them to fit your environment. まず、[サンプル クエリ] エリアで試すと、より高度なクエリを作成しやすくなります。As a starting point, you can experiment with the Sample Queries area to help you build more advanced queries.

注意

ワークスペースが新しい Log Analytics クエリ言語にアップグレードされている場合は、以下のクエリを変換する必要があります。If your workspace has been upgraded to the new Log Analytics query language, then the following queries need to be converted. この変換を行うには、言語コンバーターを使用することができます。You can use the language converter to perform this translation.

コンテナーのクエリ

ログ検索クエリの保存Saving log search queries

クエリの保存は、Log Analytics の標準的な機能です。Saving queries is a standard feature in Log Analytics. クエリを保存しておけば、後で使えるように、便利なクエリを取っておくことができます。By saving them, you'll have those that you've found useful handy for future use.

作成したクエリが便利であることがわかったら、[ログ検索] ページの上部にある [お気に入り] をクリックして保存してください。After you create a query that you find useful, save it by clicking Favorites at the top of the Log Search page. 後で [マイ ダッシュボード] ページで簡単にアクセスできます。Then you can easily access it later from the My Dashboard page.

次のステップNext steps

  • ログを検索 して、詳細なコンテナー データ レコードを確認します。Search logs to view detailed container data records.