PrometheusでCentOS7サーバーを監視する方法

前書き ##

Prometheusは、SoundCloudによって開発されたオープンソースの監視システムです。他の監視システム(InfluxDBやGraphiteなど)と同様に、Prometheusはすべてのデータを時系列データベースに保存します。ただし、多次元データモデルと強力なクエリ言語を提供するため、システム管理者はインジケーターの定義を簡単に微調整できるだけでなく、より正確なレポートを生成することもできます。

さらに、Prometheusプロジェクトには、PromDash(カスタムダッシュボードの開発に使用できるブラウザーベースのツール)と、電子メール、Flowdock、Slack、HipChatなどを介してアラートを送信できる実験的なAlertManagerも含まれています。

このチュートリアルでは、Prometheus Server、Node Exporter、およびPromDashをインストール、構成、および使用する方法を学習します。

準備 ##

このチュートリアルに従うには、次のものが必要です。

サーバーをお持ちでない方は[こちら](https://cloud.tencent.com/product/cvm?from=10680)から購入できますが、個人的には無料のTencent Cloud [Developer Lab](https://cloud.tencent.com/developer/labs?from=10680)を使って実験し、[サーバーを購入]( https://cloud.tencent.com/product/cvm?from=10680)。

ステップ1-Prometheusサーバーをインストールする

まず、このチュートリアルでダウンロードしたすべてのファイルを保存する新しいディレクトリを作成し、そのディレクトリに移動します。

mkdir ~/Downloads
cd ~/Downloads

curlを使用して、GitHubから最新バージョンのPrometheusサーバーと時系列データベースをダウンロードします。

curl -LO "https://github.com/prometheus/prometheus/releases/download/0.16.0/prometheus-0.16.0.linux-amd64.tar.gz"

Prometheus監視システムはいくつかのコンポーネントで構成されており、それぞれを個別にインストールする必要があります。すべてのコンポーネントを親ディレクトリに保持することをお勧めします。そのため、 mkdirを使用してください。

mkdir ~/Prometheus

作成したディレクトリを入力します。

cd ~/Prometheus

tarを使用して prometheus-0.16.0.linux-amd64.tar.gzを抽出します。

tar -xvzf ~/Downloads/prometheus-0.16.0.linux-amd64.tar.gz

これで、Prometheusサーバーのインストールは完了です。次のコマンドを入力して、インストールを確認します。

~ /Prometheus/prometheus-0.16.0.linux-amd64/prometheus -version

画面に次のメッセージが表示されます。

prometheus, version 0.16.0(branch: HEAD, revision: dcb8ba4)
 build user:       julius@desktop
 build date:20151009-23:51:17
 go version:1.5.1

ステップ2-ノードエクスポータをインストールする

Prometheusは、Webサービスを監視するために開発されました。 CentOSサーバーのメトリックを監視するには、NodeExporterと呼ばれるツールをインストールする必要があります。ノードエクスポータは、その名前が示すように、Prometheusが理解できる形式で、多数のメトリック(ディスクI / O統計、CPU負荷、メモリ使用量、ネットワーク統計など)をエクスポートします。

Downloadsディレクトリに入り、 curlを使用して、GitHubで入手可能な最新バージョンのNodeExporterをダウンロードします。

cd ~/Downloads && curl -LO "https://github.com/prometheus/node_exporter/releases/download/0.11.0/node_exporter-0.11.0.linux-amd64.tar.gz"

Prometheusディレクトリに node_exporterという名前の新しいディレクトリを作成し、次のディレクトリに入ります。

mkdir ~/Prometheus/node_exporter
cd ~/Prometheus/node_exporter

これで、 tarコマンドを使用して node_exporter-0.11.0.linux-amd64.tar.gzを抽出できます。

tar -xvzf ~/Downloads/node_exporter-0.11.0.linux-amd64.tar.gz

手順3-ノードエクスポータをサービスとして実行する

ノードエクスポータの起動と停止を簡単にするために、ノードエクスポータをサービスに変換してみましょう。

viまたはその他のテキストエディタを使用して、 node_exporter.serviceという名前のユニット構成ファイルを作成します。

sudo vi /etc/systemd/system/node_exporter.service

このファイルには、 node_exporter実行可能ファイルのパスが含まれ、実行可能ファイルを実行するユーザーを指定する必要があります。したがって、次のコードを追加します。

[ Unit]
Description=Node Exporter
​
[ Service]
User=prometheus
ExecStart=/home/prometheus/Prometheus/node_exporter/node_exporter
​
[ Install]
WantedBy=default.target

ファイルを保存して、テキストエディタを終了します。

作成した構成ファイルを読み取れるように、 systemdをリロードします。

sudo systemctl daemon-reload

このとき、ノードエクスポータは systemctlコマンドで管理できるサービスとして利用できます。起動時に自動的に起動するように有効にします。

sudo systemctl enable node_exporter.service

今すぐサーバーを再起動するか、次のコマンドを使用して手動でサービスを開始できます。

sudo systemctl start node_exporter.service

起動後、ブラウザを使用して、 http:// your_server_ip:9100 / metricsにあるNodeExporterのWebインターフェイスを表示します。多くのテキストを含むページが表示されます。

# HELP go_gc_duration_seconds A summary of the GC invocation durations.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"}0.00023853100000000002
go_gc_duration_seconds{quantile="0.25"}0.00023998700000000002
go_gc_duration_seconds{quantile="0.5"}0.00028122...

ステップ4-Prometheusサーバーを起動します

Prometheusサーバーがインストールされているディレクトリを入力します。

cd ~/Prometheus/prometheus-0.16.0.linux-amd64

Prometheusを起動する前に、まず prometheus.ymlという名前の構成ファイルを作成する必要があります。

vi ~/Prometheus/prometheus-0.16.0.linux-amd64/prometheus.yml

次のコードをファイルにコピーします。

scrape_configs:- job_name:"node"
 scrape_interval:"15s"
 target_groups:- targets:['localhost:9100']

これにより、 scrape_configsセクションが作成され、 nodeというジョブが定義されます。これには、ノードエクスポータのWebインターフェイスのURLが targets配列に含まれています。 15秒ごとにプロメテウススクレイプインジケーターを作成するには、 scrape_intervalを15秒に設定します。

作品には好きな名前を付けることができますが、NodeExporterのデフォルトのコンソールテンプレートを「node」という名前で使用できます。

ファイルを保存して終了します。

Prometheusサーバーをバックグラウンドプロセスとして起動します。

nohup ./prometheus > prometheus.log 2>&1&

Prometheusサーバーの出力を prometheus.logという名前のファイルにリダイレクトしたことに注意してください。 tailコマンドを使用して、ファイルの最後の数行を表示できます。

tail ~/Prometheus/prometheus-0.16.0.linux-amd64/prometheus.log

サーバーの準備が整うと、ファイルに次のメッセージが表示されます。

INFO[0000] Starting target manager...         file=targetmanager.go line=75
INFO[0000] Listening on :9090                 file=web.go line=118

ブラウザを使用して、 http:// your_server_ip:9090にあるPrometheusのホームページにアクセスします。次のホームページが表示されます。

PrometheusがNodeExporterからデータを確実に取得するには、ページ上部の[グラフ]タブをクリックします。開いたページで、のテキストフィールドにメトリックの名前(たとえば、** nodeprocsrunning )を入力します。次に、青い実行ボタンを押します。下のチャート**(コンソールの横)をクリックすると、インジケーターのチャートが表示されます。

Prometheusには、一般的に使用されるいくつかのインジケーターのグラフを表示するために使用できるコンソールテンプレートがあります。これらのコンソールテンプレートにアクセスできるのは、Prometheus構成で job_nameの値が nodeに設定されている場合のみです。

http:// your_server_ip:9090 / consoles / node.htmlにアクセスしてノードコンソールにアクセスし、サーバー** localhost:9100 **をクリックしてそのメトリックを表示します。

ステップ5-PromDashをインストールする

Prometheusサーバーでは、グラフを表示して式を試すことができますが、通常は、デバッグ目的または1回限りのクエリの実行にのみ使用されます。 Prometheusの時系列データベースでデータを視覚化するための推奨される方法は、PromDashを使用することです。これは、高度に構成可能であるだけでなく、見た目にも美しいカスタムダッシュボードを作成できるツールです。

Prometheusディレクトリに入ります:

cd ~/Prometheus

PromDashはRubyon Railsアプリケーションであり、そのソースファイルはGitHubで入手できます。ダウンロードして実行するには、Git、Ruby、およびいくつかのビルドツールをインストールする必要があります。これを行うには、 yumを使用します。

sudo yum install git ruby ruby-devel sqlite-devel zlib-devel gcc gcc-c++ automake patch

これで、 gitコマンドを使用してソースファイルをダウンロードできます。

git clone https://github.com/prometheus/promdash.git

promdashディレクトリに入ります。

cd ~/Prometheus/promdash

PromDashはいくつかのRubygemに依存しています。これらのgemを自動的にインストールするには、 bundlerと呼ばれるgemをインストールする必要があります。

gem install bundler

これで、 bundleコマンドを使用して、PromDashに必要なすべてのRubygemをインストールできます。このチュートリアルではSQLite3を使用するようにPromDashを構成するため、[MySQL](https://cloud.tencent.com/product/cdb?from=10680)および[PostgreSQL](https://cloud.tencent.com/product/postgresql?from=10680)gemを除外するには、必ず --withoutパラメーターを使用してください。

bundle install --without mysql postgresql

このコマンドを完了するには、数分待つ必要がある場合があります。終了すると、次のメッセージが表示されます。

...
Your bundle is complete!
Gems in the groups mysql and postgresql were not installed.
Use `bundle show [gemname]` to see where a bundled gem is installed.

ステップ6-Rails環境をセットアップする

PromDashに関連付けられたSQLite3データベースを格納するディレクトリを作成します。

mkdir ~/Prometheus/databases

PromDashは、 DATABASE_URLという名前の環境変数を使用して、それに関連付けられているデータベースの名前を決定します。次のように入力して、PromDashが databasesディレクトリに mydb.sqlite3という名前のSQLite3データベースを作成します。

echo "export DATABASE_URL=sqlite3:$HOME/Prometheus/databases/mydb.sqlite3">>~/.bashrc

このチュートリアルでは、PromDashを実稼働モードで実行するため、 RAILS_ENV環境変数を productionに設定します。

echo "export RAILS_ENV=production">>~/.bashrc

.bashrcファイルに加えた変更を適用します。

.~ /.bashrc

次に、 rakeツールを使用して、SQLite3データベースにPromDashテーブルを作成します。

rake db:migrate

PromDashはRailsアセットパイプラインを使用するため、PromDashプロジェクトのすべてのアセット(CSSファイル、イメージ、およびJavascriptファイル)を事前にコンパイルする必要があります。次のように入力するだけです。

rake assets:precompile

ステップ7-PromDashを開始して構成する

PromDashは、薄くて軽量なWebサーバー上で実行されます。次のコマンドを入力して、サーバーをデーモンとして起動します。

bundle exec thin start -d

サーバーが起動するまで数秒待ってから、 http:// your_server_ip:3000 /にアクセスしてPromDashのホームページを表示します。

カスタムダッシュボードの作成を開始する前に、PromDashにPrometheusサーバーのURLを通知する必要があります。これを行うには、上部の[サーバー]タブをクリックします。 [**新しいサーバー] **をクリックし、フォームでPrometheusサーバーの名前を指定します。 ** Url フィールドを http:// your_server_ip:9090に設定し、 Server type フィールドを Prometheus **に設定します。

最後に、[サーバーの作成] をクリックして構成を完了します。ページにサーバーが正常に作成されましたと表示されます。 トップメニューのダッシュボードに戻ることができます。

ステップ8-ダッシュボードを作成する

PromdashダッシュボードはPromdashディレクトリに属している必要があるため、最初に[新しいディレクトリ]をクリックして新しいディレクトリを作成します。表示されたフォームで、ディレクトリにマイダッシュボードなどの名前を付け、[ディレクトリの作成]をクリックします。

フォームを送信すると、ホームページに戻ります。今すぐ[**新しいダッシュボード] ボタンをクリックして、新しいダッシュボードを作成します。表示されたフォームで、 Simple Dashboard **などのダッシュボードに名前を付け、ドロップダウンメニューから作成したディレクトリを選択します。

フォームを送信すると、新しいダッシュボードが表示されます。

ダッシュボードにはすでにグラフがありますが、構成する必要があります。チャートのタイトル(** Title **など)にマウスを合わせると、チャートを構成できるさまざまなアイコンが表示されます。タイトルを変更するには、[**グラフと軸の設定] **アイコン(左から4番目)をクリックして、[**グラフのタイトル] **フィールドに新しいタイトルを入力します。

データソースアイコン(左から2番目)をクリックして、1つ以上の式をグラフに追加します。 [**式の追加] をクリックし、[式の入力]フィールドに node procs running **と入力します。

次に、チャートタイトルの更新アイコン(左端のアイコン)をクリックして、グラフを更新します。これで、ダッシュボードに完全に構成されたチャートが含まれます。下部にある[チャートの追加]ボタンをクリックすると、チャートをさらに追加できます。

すべての変更を行った後、変更を永続的にするには、必ず右側の[**変更を保存] **ボタンをクリックしてください。次回PromDashのホームページにアクセスすると、ダッシュボードへのリンクが表示されます。

結論として ##

これで、CentOS 7サーバー上で完全に機能するPrometheusエコシステムを実行し、PromDashを使用して、ニーズに合った監視ダッシュボードを作成できます。

1台のCentOSコンピューターにすべてのコンポーネントをインストールする場合でも、各コンピューターにノードエクスポーターのみを簡単にインストールし、新しいノードエクスポーターのURLを prometheus.yml配列の targetsに追加できます。より多くのコンピューターを監視します。

Prometheusの詳細については、その[ドキュメント](http://prometheus.io/docs/introduction/overview/)を参照してください。

Prometheusを使用してCentOS7サーバー関連のチュートリアルを監視する方法の詳細については、[Tencent Cloud + Community](https://cloud.tencent.com/developer?from=10680)にアクセスして詳細を確認してください。


参照:「Prometheusを使用してCentOS7サーバーを監視する方法」

Recommended Posts

PrometheusでCentOS7サーバーを監視する方法
Prometheusを使用してUbuntu14.04サーバーを監視する方法
Ubuntu14.04にDockerを使用してPrometheusをインストールする方法
CentOSサーバー時間を北京時間に変更する方法
CentOSサーバー時間を北京時間に変更する方法
CentOS8にNFSサーバーをインストールして構成する方法
CentOS8にPostfixメールサーバーをインストールして構成する方法
CentOS8にMySQLをインストールする方法
CentOS7をCentOS8にアップグレードする方法(詳細な手順)
CentOS8にMemcachedをインストールする方法
CentOS8にRをインストールする方法
CentOS8にFFmpegをインストールする方法
CentOS8にVirtualboxをインストールする方法
CentOS8にTensorFlowをインストールする方法
Centos7でgcc4.9.xに更新する方法
CentOS8にTeamViewerをインストールする方法
CentOSにPerl5をインストールする方法
CentOS8にGitをインストールする方法
CentOS8にGradleをインストールする方法
CentOS8にElasticsearchをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にJavaをインストールする方法
CentOS8にGoをインストールする方法
CentOS8にGCCをインストールする方法
CentOS8にYarnをインストールする方法
CentOS8にNginxをインストールする方法
CentOS7にAsteriskをインストールする方法
CentOS8にJenkinsをインストールする方法
CentOS8にVagrantをインストールする方法
CentOS8にPython3.8をインストールする方法
CentOS8にTomcat9をインストールする方法
CentOS8にWebminをインストールする方法
Centos6.7には、へのpythonアップグレードが付属しています
Ubuntu16.04にPrometheusをインストールする方法
CentOS8にRubyをインストールする方法
CentOS8にPythonをインストールする方法
Centos7.2にHDP2.6をインストールする方法
CentOS8にPostgresqlをインストールする方法
CentosにWordpressをインストールする方法
CentOS8にhtopをインストールする方法
CentOS8にTeamViewerをインストールする方法
CentOS7にスワップを追加する方法
CentOS8にMariaDBをインストールする方法
CentOS7にMongoDBをインストールする方法
CentOS8にOdoo13をインストールする方法
CentOS8にApacheをインストールする方法
CentOS8でSELinuxを無効にする方法
CentOSサーバーの時刻を北京の時刻に変更します
CentOS8にOpenCVをインストールする方法
CentOS8にPHPをインストールする方法
CentOS8にMongoDBをインストールする方法
CentOS8でNginxサーバー構成ブロックを設定する方法
centos7にAndroidSDKをインストールする方法
Pythonで地球を作る方法
Ubuntu14.04にBaculaServerをインストールする方法
CentOS8でスワップスペースを増やす方法
Ubuntu14.04パート2でPrometheusをクエリする方法
CentOS7にApacheKafkaをインストールする方法
Ubuntu16.04でSambaサーバーを使用する方法
[グラフィック]セントスにtomcatをインストールする方法
R&D:CentOS7にPython3をインストールする方法