Dockerコンテナ監視システム

目次

簡単な説明

アドバイザー +InfluxDB+Grafana

監視コンポーネントのアーキテクチャ図

展開する

docker-ceをインストールする

Alibaba Cloud イメージ アクセラレータ

コンポーネントイメージをダウンロードする

カスタムネットワークを作成する

influxdbコンテナを作成する

グラナファコンテナの作成


簡単な説明


Docker は優れたコンテナ管理テクノロジとして多くの企業に支持されており、Docker コンテナのデプロイ サービスやアプリケーションを本番環境で使用するシナリオが増えています。したがって、ますます大規模化する Docker サービス グループ アプリケーションに直面して、ターゲットを絞った効果的な監視をどのように実行するかが、企業の運用および保守担当者の業務要件となっています。

コンテナ情報の収集と監視には、docker 独自の docker stats コマンド、Scout、Data Dog、Prometheus などを含む多くのソリューションがあります。今回は、2 つの古典的なオープンソース コンテナ監視の組み合わせソリューション、Cadvisor + InfluxDB + Grafana と Cadvisor を共有します。 +プロメテウス +グラファナ

アドバイザー +InfluxDB+ Grafan


Cadvisor、InfluxDB、Grafana は、コンテナーの監視と視覚化によく使用される 3 つの人気のあるオープン ソース ソフトウェア ツールです。

Cadvisor は、コンテナーのリソース使用状況を監視するツールであり、CPU、メモリ、ディスク、ネットワークに関するパフォーマンス指標を提供できます。

特徴:

  • ホスト レベルとコンテナ レベルの両方で監視データを表示できます。
  • 変更履歴データを表示できます。
  • Google のオープンソース製品。
  • 完全な監視インジケーター。
  • デプロイは簡単で、公式の Docker イメージがあります。
  • デフォルトでは、1 分間のデータのみがローカルに保存され、InfluxDB などのサードパーティのストレージと統合できます。

InfluxDB は、大量の時系列データを保存および管理するために使用される時系列データベースです。リアルタイム監視、運用および保守監視、モノのインターネットなどで広く使用されています。

主な機能

  • 時系列に基づいて、時間関連の相関関数 (最大値、最小値、合計など) をサポートします。
  • 測定可能性: 大量のデータの計算をリアルタイムで実行できます。
  • イベントベース: 任意のイベント データをサポートします。

特徴

  • 非構造化 (スキーマレス): 任意の数の列を指定できます。
  • サポートの拡張。
  • 統計を容易にするために、最小、最大、合計、カウント、平均、中央値などの一連の関数をサポートします。
  • ネイティブ HTTP サポート、組み込み HTTP API。
  • 強力な SQL のような構文。
  • 使いやすい独自の管理インターフェイスが付属しています。

Grafana は、さまざまなデータ ソースからデータを抽出して視覚化できるリアルタイム データ監視ダッシュボードを作成および共有するためのツールです。InfluxDB データベースに接続し、コンテナーの実行時にさまざまなパフォーマンス指標や監視データを視覚的に表示できます。

したがって、コンテナ環境では、コンテナのパフォーマンス メトリクスと監視データを取得、保存、表示するために、Cadvisor、InfluxDB、Grafana の組み合わせがよく使用されます。

主な特徴

  • 柔軟で豊富なグラフィックオプション。
  • 複数のスタイルを組み合わせることができます。
  • 昼夜モードをサポートします。
  • 複数のデータソースをサポートします。

監視コンポーネントのアーキテクチャ図


モニタリング コンポーネント アーキテクチャの展開計画:

  • 後続のコンテナがこのネットワークに参加できるように、カスタム ネットワーク モニター (カスタム ネットワーク名) を作成します。
  • Influxdb コンテナを作成し、データ ユーザーとデータベースを作成します。
  • Cadvisor コンテナを作成します。
  • Grafana コンテナを作成し、grafana を構成します。

展開する


docker-ceをインストールする

環境:

ファイアウォールをオフにする

外部ネットワークへの接続を確認する

[root@localhost ~]# wget http://mirrors.aliyun.com/repo/Centos-7.repo

【画像ダウンロード】

[root@localhost ~]# yum -y install yum-utils device-mapper-persistent-data lvm2

[CentOS システムには、yum-utils、device-mapper-persistent-data、lvm2 の 3 つのソフトウェア パッケージがインストールされます。これらのパッケージは、yum コマンドの機能を強化し、デバイス マッパーの永続データと論理ボリューム管理をサポートする便利なツールとライブラリを提供します。

[root@localhost ~]# yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

[ウェアハウスソースを追加]

[root@localhost ~]# yum -y install docker-ce  【docker-ceのインストール】

[root@localhost ~]# systemctl start docker    [開始]

[root@localhost ~]# systemctl enable docker  [起動時に自動起動を設定する]

[root@localhost ~]# docker version [バージョン情報の表示]

Alibaba Cloud イメージ アクセラレータ

Alibaba Cloud ログイン - 安全で安定したクラウド コンピューティング サービス プラットフォームであるAlibaba Cloud へようこそ。世界をリードするクラウド コンピューティングおよび人工知能テクノロジー企業である Alibaba Cloud へようこそ。Alibaba Cloud は 200 か国以上の企業、開発者、政府機関にサービスを提供しています。クラウド コンピューティングの基本的なサービスとソリューション。Alibaba Cloud クラウド コンピューティング、セキュリティ、ビッグ データ、人工知能、エンタープライズ アプリケーション、モノのインターネット、その他のクラウド コンピューティング サービス。https://cr.console.aliyun.com/

[root@localhost ~]# cat << END > /etc/docker/daemon.json

{

        "レジストリミラー":[ "https://nyakyfun.mirror.aliyuncs.com" ]

}

終わり

[指定したイメージ アクセラレータ (Alibaba Cloud Image Accelerator) のアドレスが Docker 設定/etc/docker/daemon.jsonファイルに追加されます]

[root@localhost ~]# systemctl daemon-reload

[systemdデーモン設定ファイルをリロード]

[root@localhost ~]# systemctl restart docker

【再起動】

コンポーネントイメージをダウンロードする

 [root@localhost ~]# docker pull tutum/influxdb

[root@localhost ~]# docker pull google/cadvisor

[root@localhost ~]# docker pull grafana/grafana

[root@localhost ~]# 個の docker イメージ

[ダウンロードしたDockerイメージのリストと関連情報を表示する]

 

カスタムネットワークを作成する

後ほど作成した Cadvisor+InfluxDB+Grafana の 3 つのコンテナを自己定義のネットワークに追加し、わかりやすく管理しやすくするために、新しいカスタム ネットワークを作成しました。

[root@localhost ~]# docker network create モニター

[root@localhost ~]# docker network ls

influxdbコンテナを作成する

コンテナを開始します。tutum/influxdb イメージの指定されたバージョンはありません。デフォルトで、influxdb の最新バージョンがプルされます。

[root@localhost ~]# docker run -d --name influxdb --net Monitor -p 8083:8083 -p 8086:8086 tutum/influxdb

パラメータの説明:

  • -d: このコンテナをバックグラウンドで実行します。
  • --name: コンテナを起動し、influxdb という名前を割り当てます。
  • --net: コンテナを新しいネットワーク モニターに追加します。
  • -p: マッピング ポート。ポート 8083 は infuxdb バックグラウンド制御ポート、ポート 8086 は infuxdb のデータ ポートです。
  • tutum/influxdb: このコンテナを通じて実行され、デフォルトで Docker 公式ウェアハウスから取得されます。

influxdbコンテナが起動しているか確認する

[root@localhost ~]# docker ps -l

influxdb コンソールhttp://192.168.200.111:8083にアクセスしてください

上の図からわかるように、クエリ テンプレート オプションにはよく使用される操作テンプレートが提供されており、これらのテンプレートに従って Influxdb を管理できます。次に、データベースとデータベース ユーザーを作成します。

すべての特権を持つユーザー「root」をパスワード「123456」で作成します

Cadvisor データベース cadvisor とユーザー root を作成します。ユーザーとデータベースは、後の Grafana 設定のために自由に定義できます。

データベース「アドバイザー」を作成する

 アドバイザーコンテナーの作成

[root@localhost ~]# docker run -d --volume=/:/rootfs:ro --volume=/var/run:/var/run:rw --volume=/sys:/sys:ro --volume =/var/lib/docker/:/var/lib/docker:ro --net モニター --publish=8080:8080 --name=cadvisor google/cadvisor -storage_driver=influxdb -storage_driver_db=cadvisor -storage_driver_host=influxdb:8086

パラメータの説明:

  • -d: このコンテナをバックグラウンドで実行します。
  • --name: 起動コンテナーに割り当てられた名前 Cadvisor。
  • --net: コンテナを新しいネットワーク モニターに追加します。
  • -p: ポート 8080 をマップします。
  • --mout: ホストの写真ディレクトリをコンテナにバインドします。これらのディレクトリは、Cadvisor が収集する必要があるディレクトリ ファイルおよび監視コンテンツです。
  • -storage_driver: Cadvisor のストレージ ドライバー、データベース ホスト、およびデータベース名を指定する必要があります。
  • google/Cadvisor: Cadvisor イメージを介してコンテナーを実行します。デフォルトでは、イメージは Docker 公式ウェアハウスからプルされます。

Cadvisor コンテナを表示します。

[root@localhost ~]# docker ps -l

ポートhttp://192.168.200.111:808 0にアクセスしてテストします。このページに初めてアクセスする場合は少し時間がかかります。

上の写真からもわかるように、実は Cadvisor には基本的なグラフィック表示機能も備わっており、ここでは主にデータ収集に使用しています。

テスト画像を用意する

[root@localhost ~]# docker run -itd --name nginx -p 8000:80 nginx

[root@localhost ~]# docker イメージ nginx

[root@localhost ~]# docker ps -l

グラナファコンテナの作成

[root@localhost ~]# docker run -d --name grafana --net Monitor -p 3000:3000 grafana/grafana

  • docker run: コンテナーを実行するために使用される Docker コマンド。
  • -d: コンテナーがバックグラウンド モード (デタッチ モード) で実行されていることを示します。
  • --name grafana: コンテナ名に「grafana」を指定します。
  • --net monitor: コンテナを「monitor」という名前のネットワークに接続します。
  • -p 3000:3000: ホストのポート 3000 をコンテナのポート 3000 にマップし、ホストがポート 3000 を介してコンテナ内の Grafana サービスにアクセスできるようにします。
  • grafana/grafana: 「grafana/grafana」イメージを使用してコンテナを作成します。

実行結果を表示します。

[root@localhost ~]# docker ps -l

http://192.168.200.111:3000ポート経由で granfana にアクセスします。デフォルトのアカウントパスワードは (admin/admin) です。初回ログイン時にパスワードを更新する必要があります

 

 

 

下へスクロール

以下に示すように、新しいダッシュボードを作成します。

おすすめ

転載: blog.csdn.net/2302_77750172/article/details/132165187