AhFei

AhFei

简洁的写作需要勇气

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

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

完了するまでの予想時間:15 分(ただし、一度見るだけでも 15 分かかるので、合計 30 分?)

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


image.png

GrafanaPrometheusNode 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 は約 20 MB のメモリを使用しています。

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 のダッシュボードが表示されます。
  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 での購読を歓迎し、コメントでの指摘もお待ちしています。

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