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 ページ適応幅テーブル

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

推薦する

MYSQLストアドプロシージャコメントの詳細な説明

目次1. 使用方法2. 準備3. 文法3.1 変数と代入3.2 入力および出力パラメータ3.3 プロ...

Linuxカーネルスケジューラソースコード初期化の分析

目次1. はじめに2. スケジューラの基本概念2.1. 実行キュー (rq) 2.2 スケジューリン...

MySQL データベースのインデックスとトランザクション

目次1. 索引1.1 コンセプト1.2 機能1.3 索引作成の原則1.3.1 ディスクアクセス回数を...

docker ベースで Prometheus+Grafana を構築する手順の詳細説明

1. プロメテウスの紹介Prometheus は、もともと SoundCloud によって開発された...

SQL インジェクションの詳細

1. SQL インジェクションとは何ですか? SQL インジェクションは、入力パラメータに SQL ...

MySQL データベース クエリ パフォーマンス最適化戦略

クエリを最適化するExplain ステートメントを使用してクエリ ステートメントを分析するExpla...

ノードスクリプトで自動サインインと抽選機能を実現

目次1. はじめに2. 準備3. スクリプトプロジェクトの構築4. コードの作成と実行5. まとめと...

Vue+Openlayer で select を使用して要素を選択する実装コード

効果画像: 実装コード: <テンプレート> <div id="map&q...

Vue+WebSocket ページでの長時間接続のリアルタイム更新

最近、Vue プロジェクトではデータをリアルタイムで更新する必要があります。折れ線グラフは 1 秒ご...

jQueryはマウスドラッグ画像機能を実装します

この例では、jQuery を使用してマウス ドラッグ イメージ機能を実装します。まず、ラッパーを設定...

Vueはボトムクエリ関数を実装します

この記事では、ボトムクエリ機能を実装するためのVueの具体的なコードを例として紹介します。具体的な内...

Spring Boot + jar パッケージングのデプロイメント Tomcat 404 エラーの問題を解決する

1. Spring Boot は jsp jar パッケージをサポートしていません。jsp は wa...

VueはEchartsを使用して3次元棒グラフを実装します

この記事では、Echartsを使用して3次元棒グラフを実装するVueの具体的なコードを参考までに共有...

スクロールバーを非表示にする HTML の簡単な実装

1. 属性付きHTMLタグXML/HTML コードコンテンツをクリップボードにコピー< htm...

CSS を使用して画像の下の空白を数ピクセル消去する方法の詳細な説明

最近、友人が私に質問をしました。ページをレイアウトすると、画像の下に 1 ~ 2 ピクセルの空白があ...