AhFei

AhFei

简洁的写作需要勇气

探针 Grafana + Prometheus の方が Docker より簡単なデプロイプロセス

特に説明がない限り、記事のコードブロック内のコマンドの順序に従って、一つずつ実行することで目標を達成できます。
対応システム:Debian 系ディストリビューション、Ubuntu を含む。他のディストリビューションでは、プロセスに従ってコマンドを少し変更すれば一般的に可能です。

デプロイ完了の予想時間:15 分(しかし、一度見るだけでも 15 分かかるので、30 分?)

記事内のワンクリックスクリプトは amd64 システム専用です。


image.png

GrafanaPrometheus、および Node Exporter は、システムやアプリケーションのさまざまな使用率を収集、保存、クエリし、視覚的に表示するための人気のあるオープンソースの監視ツールのセットです。各ツールには特定の機能があります:

  1. Grafana:視覚化ツールで、オープンソース版とエンタープライズ版があります。Grafana はクライアントからデータを収集せず、保存もしません。その機能は、Prometheus や他のデータソース(SQL など)から収集したデータを直感的かつ美しい形式で表示することです。ユーザーはパネルをカスタマイズでき、アラート、注釈、ダッシュボード変数、プラグイン、認証をサポートしています。
  2. Prometheus:オープンソースのシステム監視および警告プログラムで、HTTP プロトコルを使用してクライアントをポーリングして必要なデータを取得します。結果を保持する時系列データベースを維持し、事前定義された時間間隔で各クライアントをポーリングすることで、クライアントの長期的なパフォーマンスの概要を構築できます。
  3. Node Exporter:クライアントノード上でさまざまなコレクターを使用できますが、Prometheus は独自の Node Exporter ツールの使用を推奨しています。CPU、ディスク I/O、メモリ、ネットワークなどの多数のハードウェアおよびカーネル指標を収集し、収集可能な指標の完全なリストは https://github.com/prometheus/node_exporter ページで確認できます。

長文のため、より良い読書体験のためにブログをご覧ください: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/

リソース使用率#

Grafana と Prometheus をデプロイした後、メモリ使用量は 200MB 以上増加しました;監視対象のクライアントが 3 つの場合、1 日運用後にメモリ使用量は 300MB に達しました。全体的に、リソース消費量は大きく、2GB のメモリと 20GB のディスクスペースを持つマシンを監視サーバーとして使用するのが適しています。

top コマンドを使用すると、node_exporter は約 20MB のメモリを使用しています。

top -p $(pgrep node_exporter)

デプロイプロセス#

デフォルトでは、Grafana の Web インターフェースはポート 3000 でアクセスされ、Prometheus はポート 9090、Node Exporter はポート 9100 を使用します。ファイアウォールを開放します:

sudo ufw allow 9090 comment 'prometheus'
sudo ufw allow 3000 comment 'grafana'
# Node Exporterは異なるので後述します

最良の結果を得るために、同じサーバー上で Prometheus と Grafana を実行してください。以下では、Prometheus と Grafana をホストするサーバーのシステムを「監視サーバー」と呼びます。監視されるシステムは「クライアント」となります。


この記事の手順は非 root ユーザー向けに書かれています。権限を昇格させる必要があるコマンドには sudo を前置きします。

監視サーバーでファイアウォールを開放しました✔#

スクリプトを使用したくない場合や、インストールプロセスを理解したい場合は、原文をご覧ください: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/ 、長文のためこのように配置しています。

監視サーバーに Prometheus をインストールし、サービスとして実行します#

ワンクリックで Prometheus をインストール:(https://github.com/AhFeil/bash-script/blob/main/install-prometheus.sh)

wget -qO- 'https://raw.githubusercontent.com/AhFeil/bash-script/main/install-prometheus.sh' | sudo bash

実行後に active (running) が表示されれば、インストールは成功です。

http://ip_addr:9090 で Prometheus の Web インターフェースとダッシュボードにアクセスします。ip_addrを監視サーバーのアドレスに置き換えてください。

すべてのクライアントに Node Exporter をインストールし、ファイアウォールを開放します。#

クライアントは Linux ディストリビューションでも Windows などでもかまいませんが、Node Exporter は Linux 専用です。

クライアントでは監視サーバーの IP に対して 9100 ポートのみを開放し、監視サーバーの IP を変更することを忘れないでください:

sudo ufw allow from 監視サーバーIP to any port 9100 comment 'node_exporter'

ワンクリックで Node Exporter をインストール:(https://github.com/AhFeil/bash-script/blob/main/install-node_exporter.sh)

wget -qO- 'https://raw.githubusercontent.com/AhFeil/bash-script/main/install-node_exporter.sh' | sudo bash

実行後に active (running) が表示されれば、インストールは成功です。

更新する場合は、再度実行すれば大丈夫です。

Prometheus を設定してクライアントを監視します#

クライアントノードは現在監視の準備が整いました。クライアントを prometheus.yml に追加するには、以下の手順に従ってください:

Prometheus を実行している監視サーバーで、prometheus.yml を開いて編集します。

sudo vim /etc/prometheus/prometheus.yml

scrape_configs を見つけます。ここにはジョブのリストがあります。現在、prometheus という名前のジョブがあります。このジョブはポート 9090 でローカルの Prometheus タスクを監視しています。

prometheus ジョブの下に、job_nameremote_collector とする 2 番目のジョブを追加します。以下の情報を含めます。

  • 抽出間隔を設定します: scrape_interval: 10s
  • 監視する IP とポート番号 :9100 を追加し、各エントリをカンマで区切ります。
  • ローカルサーバーの監視を有効にするには、localhost:9100 エントリをリストに追加し、ローカルに Node Exporter をインストールします。

このエントリは以下の例のようになります。remote_addr をクライアントの実際の IP アドレスに置き換えてください。

...

  - job_name: "remote_collector"
    scrape_interval: 10s
    static_configs:
      - targets: ["remote_addr:9100", "localhost:9100"]

すぐに Prometheus を再起動します、

sudo systemctl restart prometheus

Web ブラウザで監視サーバーのポート 9090 にある Prometheus の Web ポータルに再度アクセスします。 【Status】-【Targets】を選択します。remote_collector ジョブの 2 番目のリンクが表示され、クライアントのポート 9100 を指します。リンクをクリックして統計を表示します。

image.png

Grafana サーバーのインストールとデプロイ#

Prometheus が収集した統計情報は、生データのダンプとしてしか見られません。読みづらく、あまり役に立ちません。

Grafana は、Prometheus が収集した統計情報を表示するインターフェースを提供します。Prometheus をデータソースとして追加し、Prometheus を実行している同じサーバーに Grafana をインストールします。

前提準備、

# 必要なユーティリティをいくつかインストールします
sudo apt-get install -y apt-transport-https software-properties-common
# Grafana GPGキーをインポートします
sudo wget -q -O /usr/share/keyrings/grafana.key https://apt.grafana.com/gpg.key
# Grafana「安定版」リポジトリを追加します
echo "deb [signed-by=/usr/share/keyrings/grafana.key] https://apt.grafana.com stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list

Grafana のオープンソース版をインストールします。

sudo apt-get update && sudo apt-get install grafana

systemctl デーモンを再読み込みします。

sudo systemctl daemon-reload

自動起動に追加し、すぐに起動します

sudo systemctl enable --now grafana-server.service

状態を確認します

sudo systemctl status grafana-server

Grafana と Prometheus を関連付けます#

すべてのシステムコンポーネントがインストールされましたが、Grafana と Prometheus はまだ関連付けられていません。残りは Grafana の Web インターフェースを使用して完了できます。

Grafana と Prometheus を統合するには、以下の手順に従ってください:

  1. ブラウザで監視サーバーの 3000 ポートにアクセスします。例えば、http://ip_addr:3000 と入力し、ip_addr を実際の IP アドレスに置き換えます。
  2. Grafana がログインページを表示します。ユーザー名とデフォルトパスワードはどちらも admin です。プロンプトが表示されたら、パスワードをより安全な値に変更します。
  3. パスワードを正常に変更すると、Grafana は Grafana ダッシュボードを表示します。
  4. Prometheus をデータソースとして追加するには、歯車のアイコン(設定を表す)をクリックし、データソースを選択します。

image.png

  1. 次の画面で、「データソースを追加」ボタンをクリックします。
  2. Prometheus をデータソースとして選択します。
  3. ローカル Prometheus ソースの場合、URL を http://localhost:9090 に設定します。他のほとんどの設定はデフォルトのままで構いません。

image.png

  1. 設定に満足したら、画面の下部にある【Save & test】ボタンを選択します。
  2. すべての設定が正しければ、Grafana は Data source is working と確認します。

image

Grafana を使用してダッシュボードテンプレートをインポートします#

カスタムダッシュボードを作成することもできます。しかし、Prometheus はすでに Node Exporter をサポートするダッシュボード「Node Exporter Full」を作成しています。以下はインポートの手順です。

カスタムダッシュボードを作成するには、4 つの正方形のようなダッシュボードボタンをクリックします。次に、+ 新しいダッシュボードを選択します。詳細については、Grafana のダッシュボード構築ガイドを参照してください。

  1. Grafana ダッシュボードで、4 つの正方形で構成されたダッシュボードアイコンを選択します。

image.png

  1. 右側の【New】-【Import】を選択します。

image.png

  1. 次に、【Import via grafana.com】で、前のステップの ID 1860 を入力します。次に【Load】を選択します。

image.png

  1. 次の画面でインポートの詳細を確認します。データソースとして Prometheus を選択し、【Import】ボタンをクリックします。

image.png

  1. Node Exporter Full ダッシュボードがすぐに有効になります。クライアントノードのパフォーマンス指標と状態が表示され、メモリ、RAM、CPU の詳細が含まれます。

image.png


原文リンク: https://blog.vfly2.com/2023/07/a-simpler-deployment-process-of-the-probe-grafana-prometheus-compared-to-docker/
版权声明:本博客所有文章除特別声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 https://blog.vfly2.com/

私の記事が役に立ったと思われる場合は、RSS での購読を歓迎し、コメントでの指摘もお待ちしています。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。