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にソフトウェアをインストールするいくつかの方法の詳細な説明

1. RPM パッケージのインストール手順: 1. soft.version.rpm などの対応する...

MySQL 面接の質問: ハッシュ インデックスの設定方法

B-Tree インデックスに加えて、MySQL は次のインデックスも提供します。ハッシュインデックス...

JavaScript Domはカルーセルの原理と例を実装します

カルーセルを作りたい場合、まずその原理を理解する必要があります。画像を右から左にスライドさせるにはど...

MySQL 8.0 の新機能 - 管理ポートの使用の概要

目次序文接続管理追加の接続管理ポート要約する序文皆さんの多くは、次のようなエラー メッセージに遭遇し...

Linuxドライバのプラットフォームバスの詳細説明

目次1. プラットフォームバスの紹介1.1. Linuxドライバの分離と階層化1.1.1. Linu...

nginx 503 サービスが一時的に利用できない問題を解決する方法

最近、ウェブサイトを更新すると、503 Service Temporarily Unavailabl...

MySQL トランザクション分離レベルの表示と変更の例

トランザクション分離レベルを確認するMySQL では、'%tx_isolation%'...

Windows 10 で MySQL を完全に削除してアンインストールする方法

序文この記事では、Windows 10 システムで MySQL を完全に削除してアンインストールする...

VMware15/16 VMwareのロックを解除してMacOSをインストールする詳細な手順

VMware バージョン: VMware-workstation-full-16 VMware バー...

CentOS7 構成 Alibaba Cloud yum ソースメソッドコード

Centos yumフォルダを開くコマンドcd /etc/yum.repos.d/を入力します。 w...

MySQL explain クエリ命令情報の取得原理と例

explain はクエリ実行プラン情報を取得するために使用されます。 1. 文法次のように、sele...

React は antd のアップロード コンポーネントを使用してファイル フォーム送信機能を実装します (完全なコード)

私はプロジェクトを実行するために react を使い始めたばかりで、非常に未熟で完全な初心者です。私...

MySQLシリーズ マルチテーブル結合クエリ92および99構文例詳細チュートリアル

目次1. デカルト積現象2. 接続クエリの知識ポイントのまとめ1) 結合クエリとは何ですか? 2) ...

React で遅延読み込みを使用して最初の画面の読み込み時間を短縮する方法

目次使用インストールルーティングでどのように使用しますか?読み込み速度の比較最近、中間およびバックエ...