このトピックでは、Kubernetes クラスターに Prometheus をデプロイする方法について説明します。
背景情報
Kubernetes は、コンテナ化されたアプリケーションのデプロイプロセスを自動化するオープンソースシステムです。 Kubernetes は、コンテナ化されたアプリケーションの拡張と管理にも役立ちます。 Kubernetes の詳細については、「Kubernetes ドキュメント」をご参照ください。このトピックでは、コンテナサービス Kubernetes 版 (ACK) クラスターに Prometheus をデプロイし、Prometheus によって収集された監視データを時系列データベース (TSDB) データベースに保存する方法について説明します。
Prometheus は、クラウドネイティブアプリケーション向けのオープンソースの監視ツールです。 Prometheus は、サービスディスカバリーまたは静的構成に基づいて監視対象のサーバーを識別します。 Prometheus は、Kubernetes 内の以下のオブジェクトを監視します。
kube-apiserver、kube-controller-manager、etcd など、Kubernetes クラスターに組み込まれているシステムコンポーネント。
ノードのリソースステータスやカーネルイベントなどの静的リソースエンティティ。
デプロイメント、DaemonSet、ポッドなど、Kubernetes の抽象ワークロードのエンティティである動的リソースエンティティ。
アプリケーションのカスタムデータやメトリクスなど、アプリケーション内のカスタムオブジェクト。
システムコンポーネントと静的リソースエンティティを監視するには、構成ファイルで監視方法を指定します。 Kubernetes クラスターの動的リソースエンティティを監視するには、Kubernetes クラスターに Prometheus をデプロイできます。
手順
データを監視するために、Kubernetes クラスターに Prometheus をデプロイします。
Prometheus Operator を使用して、Kubernetes クラスターに Prometheus をデプロイできます。 詳細については、「オープンソースツール Prometheus を使用して Kubernetes クラスターを監視する」をご参照ください。
Prometheus の構成を変更します。
prometheus-prometheus.yaml ファイルを変更します。
specオブジェクトで、Prometheus の構成項目 remoteWrite と remoteRead を作成します。 Prometheus Operator は、camelCase の命名規則を使用して Prometheus のリモート設定を構成します。この例では、TSDB インスタンスのインスタンスタイプは 3xlarge です。次のコードに基づいて設定を構成できます。 ビジネス要件に基づいて構成項目 queueConfig を変更できます。
spec: remoteWrite: - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_write" queueConfig: capacity: 10000 // 容量 maxShards: 6 // 最大シャード数 maxSamplesPerSend: 500 // 送信ごとの最大サンプル数 remoteRead: - url: "http://ts-xxxxxxxxxxxx.hitsdb.rds.aliyuncs.com:3242/api/prom_read" readRecent: trueprometheus-prometheus.yaml のその他の構成項目を取得するには、prometheus-operator の GitHub リポジトリにアクセスしてください。 詳細については、「GitHub リポジトリ」をご参照ください。
構成を更新します。
次のコマンドを実行して、変更された構成を更新します。
kubectl apply -f manifests/prometheus-prometheus.yaml