(非推奨) Log Analytics を使用した Kubernetes クラスターの監視
ヒント
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 の非推奨化に関するお知らせを参照してください。
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] コマンドを使用して、Log Analytics ワークスペースの設定を omsagent-secret
という名前の Kubernetes シークレットに格納します。 WORKSPACE_ID
を Log Analytics ワークスペース 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 が作成されます。
次のテキストを 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 では、[Log Analytics] に移動してワークスペースを選択します。 [コンテナー] 概要タイルを表示するには、[ソリューション]>[コンテナー] の順にクリックします。 詳細を表示するには、タイルをクリックします。
監視データの照会と分析の詳しいガイダンスについては、Azure Log Analytics のドキュメントをご覧ください。
次のステップ
このチュートリアルでは、Log Analytics を使用して Kubernetes クラスターを監視しました。 次のタスクを行いました。
- Log Analytics ワークスペースの設定を取得する
- Kubernetes ノード上に Log Analytics エージェントを設定する
- Log Analytics ポータルまたは Azure Portal で監視情報にアクセスする
Container Service のビルド済みスクリプト サンプルを見るには、次のリンクをクリックしてください。