Prometheusコンテナのデプロイメントのための実用的なソリューション

Prometheusコンテナのデプロイメントのための実用的なソリューション

環境

ホスト名IPアドレス仕える
プロメテウス192.168.237.137プロメテウス、グラファナ
ノードエクスポーター192.168.237.131ノードエクスポーター

Prometheusコンテナ化されたデプロイメント

1. Dockerをインストールする

[root@prometheus ~]# docker バージョン
クライアント: Docker Engine - コミュニティ
 バージョン: 20.10.11
 APIバージョン: 1.41
 Goバージョン: go1.16.9
 Gitコミット: dea9396
 作成日: 2021年11月18日 00:36:58
 OS/アーキテクチャ: linux/amd64
 コンテキスト: デフォルト
 実験的: 真

サーバー: Docker Engine - コミュニティ
 エンジン:
  バージョン: 20.10.11
  API バージョン: 1.41 (最小バージョン 1.12)
  Goバージョン: go1.16.9
  Gitコミット: 847da18
  作成日: 2021年11月18日 00:35:20
  OS/アーキテクチャ: linux/amd64
  実験的: 偽
 コンテナ:
  バージョン: 1.4.12
  Gitコミット: 7b11cfaabd73bb80907dd23182b9347b4245eb5d
 ランク:
  バージョン: 1.0.2
  Gitコミット: v1.0.2-0-g52b36a2
 docker-init:
  バージョン: 0.19.0
  Gitコミット: de40ad0

2. Prometheusコンテナを実行する

//イメージをプルする [root@prometheus ~]# docker pull prom/prometheus
デフォルトタグの使用: 最新
最新: prom/prometheus からプル
3cb635b06aa2: プル完了 
34f699df6fe0: プル完了 
33d6c9635e0f: プル完了 
f2af7323bed8: プル完了 
c16675a6a294: プル完了 
827843f6afe6: プル完了 
3d272942eeaf: プル完了 
7e785cfa34da: プル完了 
05e324559e3b: プル完了 
170620261a59: プル完了 
ec35f5996032: プル完了 
5509173eb708: プル完了 
ダイジェスト: sha256:cb9817249c346d6cfadebe383ed3b3cd4c540f623db40c4ca00da2ada45259bb
ステータス: prom/prometheus:latest の新しいイメージをダウンロードしました
docker.io/prom/prometheus:最新

///opt ディレクトリに prometheus のデフォルト設定ファイルを用意します [root@prometheus ~]# ls /opt/
プロメテウス

//コンテナを実行##--restart always 常に再起動し、自動的に起動します## ローカルに提供された構成ファイルをコンテナにマッピングし、roコンテナ内で読み取り専用にします [root@prometheus ~]# docker run --name prometheus -d --restart always -p 9090:9090 -v /opt/prometheus.yml:/etc/prometheus/prometheus.yml:ro prom/prometheus:latest 
a0ba5535f0ea3b0f44574fd237802f2ef19f4624c3752c3bf8122a4d79a26428
[root@prometheus ~]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
a0ba5535f0ea prom/prometheus:latest "/bin/prometheus --c…" 11 秒前 11 秒前にアップ 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp prometheus

//ポートを表示 [root@prometheus ~]# ss -anltu
Netid 状態 Recv-Q Send-Q ローカル アドレス:ポート ピア アドレス:ポート プロセス     
TCP LISTEN 0 128 0.0.0.0:22 0.0.0.0:*                    
TCP LISTEN 0 128 0.0.0.0:9090 0.0.0.0:*                    
tcp LISTEN 0 128 [::]:22 [::]:*                    
tcp LISTEN 0 128 [::]:9090 [::]:*                    

ip+9090/targetsを使用してPrometheusのデフォルトWebページにアクセスします。

ここに画像の説明を挿入

node_exporterをデプロイする

//インストールパッケージをダウンロードします [root@node-exporter ~]# wget https://github.com/prometheus/node_exporter/releases/download/v1.3.0/node_exporter-1.3.0.linux-amd64.tar.gz
[root@node-exporter ~]# ls
anaconda-ks.cfg node_exporter-1.3.0.linux-amd64.tar.gz

//[root@node-exporter ~]を解凍# tar xf node_exporter-1.3.0.linux-amd64.tar.gz -C /usr/local/
[root@node-exporter ~]# mv /usr/local/node_exporter-1.3.0.linux-amd64/ /usr/local/node_exporter
[root@node-exporter ~]# ls /usr/local/
bin などのゲームには、lib lib64 libexec node_exporter sbin share src が含まれます

//サービスファイルを書き込んで起動し、自動的に起動します[root@node-exporter ~]# cat /usr/lib/systemd/system/node_exporter.service
[ユニット]
説明=node_exporter サーバー
後=ネットワーク.ターゲット

[サービス]
ExecStart=/usr/local/node_exporter/node_exporter
再起動=失敗時
再起動秒数=15秒
Syslog識別子=ノードエクスポータ

[インストール]
WantedBy=マルチユーザー.ターゲット
[root@node-exporter ~]# systemctl daemon-reload 
[root@node-exporter ~]# systemctl enable --now node_exporter.service 
/etc/systemd/system/multi-user.target.wants/node_exporter.service から /usr/lib/systemd/system/node_exporter.service へのシンボリックリンクを作成しました。
[root@node-exporter ~]# systemctl ステータス node_exporter.service 
● node_exporter.サービス
   ロード済み: ロード済み (/usr/lib/systemd/system/node_exporter.service; 有効; ベンダープリセット: 無効)
   アクティブ: 2021-12-30 木曜日 19:26:59 CST からアクティブ (実行中)、8 秒前
 メイン PID: 27878 (node_exporter)
   Cグループ: /system.slice/node_exporter.service
           └─27878 /usr/local/node_exporter/node_exporter

//ポートを表示 [root@node-exporter ~]# ss -anltu
Netid 状態 Recv-Q Send-Q ローカルアドレス:ポート ピアアドレス:ポート              
tcp LISTEN 0 128 *:22 *:*                  
tcp LISTEN 0 128 [::]:22 [::]:*                  
tcp LISTEN 0 128 [::]:9100 [::]:*                  

## ノードエクスポーターが正常にデプロイされた場合、監視のためにPrometheusホストにノードを追加できます。

プロメテウスにノードを追加する

ローカルのprometheus.ymlファイルを変更する

//設定ファイルを変更する [root@prometheus ~]# tail -8 /opt/prometheus.yml 
scrape_configs:
  # ジョブ名は、この設定から取得されたすべての時系列にラベル `job=<job_name>` として追加されます。
  - ジョブ名: "プロメテウス"
    静的設定:
      - ターゲット: ["localhost:9090"]
  - job_name: "centos" //ジョブ名を指定します static_configs:
      - ターゲット: ["192.168.237.131:9100"] //ノードエクスポータノードのIPとポート番号を指定します## 複数のノードがある場合 - ジョブ名: "centos"	
    静的設定:
      - ターゲット: 
        - 「192.168.237.131:9100」
        - 「192.168.237.132:9100」
        - 「192.168.237.133:9100」


//コンテナを再起動し、設定ファイルを再度読み込みます [root@prometheus ~]# docker restart prometheus
プロメテウス
[root@prometheus ~]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
a0ba5535f0ea prom/prometheus:latest "/bin/prometheus --c…" 26 分前 3 秒前にアップ 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp prometheus

プロメテウスのデフォルトウェブページにアクセスしてください
ノードが正常に追加されました

ここに画像の説明を挿入

Grafana描画ツールをデプロイする

//grafan/grafan の公式イメージをプルします [root@prometheus ~]# docker pull grafana/grafana
デフォルトタグの使用: 最新
最新: grafana/grafana からプル
97518928ae5f: プル完了 
5b58818b7f48: プル完了 
d9a64d9fd162: プル完了 
4e368e1b924c: プル完了 
867f7fdd92d9: プル完了 
387c55415012: プル完了 
07f94c8f51cd: プル完了 
ce8cf00ff6aa: プル完了 
e44858b5f948: プルが完了しました 
4000fdbdd2a3: プル完了 
ダイジェスト: sha256:18d94ae734accd66bccf22daed7bdb20c6b99aa0f2c687eea3ce4275fe275062
ステータス: grafana/grafana:latest の新しいイメージをダウンロードしました
docker.io/grafana/grafana:最新

[root@prometheus ~]# docker イメージ
リポジトリ タグ イメージ ID 作成 サイズ
prom/prometheus 最新 a3d385fc29f9 12日前 201MB
grafana/grafana 最新 9b957e098315 2 週間前 275MB

//公式の Grafana イメージを使用してコンテナを実行します [root@prometheus ~]# docker run -d --name grafana -p 3000:3000 --restart always grafana/grafana
0b5986fc63442538a6fae845e5d1b8afc78caec4f4bdd81ca3623eb1329ad562

[root@prometheus ~]# docker ps
コンテナID イメージ コマンド 作成ステータス ポート名
0b5986fc6344 grafana/grafana "/run.sh" 4 秒前 2 秒前にアップ 0.0.0.0:3000->3000/tcp、:::3000->3000/tcp grafana
a0ba5535f0ea prom/prometheus:latest "/bin/prometheus --c…" 33 分前 6 分前にアップ 0.0.0.0:9090->9090/tcp, :::9090->9090/tcp prometheus

//ポートを表示 [root@prometheus ~]# ss -anltu
Netid 状態 Recv-Q Send-Q ローカル アドレス:ポート ピア アドレス:ポート プロセス             
TCP LISTEN 0 128 0.0.0.0:22 0.0.0.0:*                    
TCP LISTEN 0 128 0.0.0.0:3000 0.0.0.0:*                    
TCP LISTEN 0 128 0.0.0.0:9090 0.0.0.0:*                             
tcp LISTEN 0 128 [::]:22 [::]:*                    
tcp LISTEN 0 128 [::]:3000 [::]:*                    
tcp LISTEN 0 128 [::]:9090 [::]:*                    

ブラウザでアクセスするには、プロメテウスホストのIPアドレス192.168.129.205 + ポート番号3000を使用します。
デフォルトアカウント: admin パスワード: admin

ここに画像の説明を挿入

パスワードを変更する

ここに画像の説明を挿入

表紙

ここに画像の説明を挿入

データソースを追加する

ここに画像の説明を挿入

データソースとしてPrometheusを選択する

ここに画像の説明を挿入
ここに画像の説明を挿入
ここに画像の説明を挿入

インポートダッシュボード

テンプレートアドレス

ここに画像の説明を挿入

テンプレートIDは9276です

ここに画像の説明を挿入
ここに画像の説明を挿入

レンダリング

ここに画像の説明を挿入

Prometheus コンテナ化デプロイメントに関するこの記事はこれで終わりです。Prometheus コンテナ化デプロイメントに関するその他の関連コンテンツについては、123WORDPRESS.COM で過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • dockerを使用してGrafana+Prometheus構成をデプロイする
  • DockerでPrometheusをインストールする詳細なチュートリアル

<<:  HTML ページ適応幅テーブル

>>:  フロントエンド開発に必要な共通ツール機能のまとめ

推薦する

Linuxはデータディスクがアンインストールされ、新しいカスタムイメージを作成できることを確認します。

カスタムイメージに関するよくある質問データディスクを表示するにはどうすればいいですか? df コマン...

動的テーブルを実装するための要素サンプルコード

目次【コード背景】 【コード実装】 #1# -> コード再利用の基本は、再利用可能なコンポーネ...

MySQLにおけるMTRの概念

MTR は Mini-Transaction の略です。名前が示すように、これは「最小のトランザクシ...

Linuxファイアウォールiptablesの詳細な紹介、設定方法と事例

1.1 iptablesファイアウォールの概要Netfilter/Iptables (以下、Ipta...

MySQL 8.0 のタイムゾーン問題を解決する手順

ソフトウェアバージョンウィンドウズ: ウィンドウズ10 MySQL: mysql-8.0.16-wi...

CSS3 で背景の透明化と不透明テキストを実装するサンプルコード

最近、画像上に半透明の背景でテキストを表示する必要があるという要件に遭遇しました。その効果は次のよう...

Vue2.0+ElementUI+PageHelperで実装されたテーブルページング機能

序文最近、いくつかのフロントエンド プロジェクトに取り組んでおり、ページにいくつかのテーブルを表示す...

Dockerコンテナの自動終了を停止する方法の詳細な説明

この記事では、Docker コンテナとフロントエンド プロセスの関係と、コンテナを永続的に実行できる...

VMware vSphere 6.7 (ESXI 6.7) のグラフィック インストール手順

環境: VMware VCSA 6.7 (VMware-VCSA-all-6.7.0-8169922...

CSS スタイルの優先順位はどれくらい複雑ですか?

昨晩、面接の質問を見ていたら、CSS スタイルの優先順位について特に明確に説明していない人が何人かい...

Centos7でglibcをアップグレードするとシステム異常(起動できない)になる場合の解決方法

目次問題の原因:解決:解決:私は Centos7 を使用しています (理論的にはこの方法は Cent...

Vue.js のミックスインの詳細な説明

ミックスインは、コンポーネントに分散された再利用可能な機能を柔軟な方法で提供します。 Mixin オ...

MySQL パーティションテーブルの制限と制約の詳細な説明

ビルドを無効にするパーティション式では、次の構成はサポートされません。ストアドプロシージャ、ストアド...

LinuxでPythonの組み込みバージョンを削除する手順の詳細な説明

大きな落とし穴、Linuxシステムに付属するPythonのバージョンを簡単に削除しないでください1....

MySQL データ分析ストレージエンジンの例の説明

目次1. 事例紹介2. システムのデフォルトのストレージエンジンとデフォルトの文字セットを表示する3...