(非推奨) 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
という名前のファイルに保存し、WSID
と KEY
のプレースホルダーの値を、このファイル内のワークスペース 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 ダッシュボードへのデータ フローを確認できます。