GNU/Linux >> Linux の 問題 >  >> Ubuntu

Ubuntu18.04にPrometheusをインストールする方法

Prometheusは、クラウドスペースなどの動的な環境に適した、非常に強力なオープンソースの監視およびアラートシステムです。これは、多くの企業や組織がソースコードに貢献しているコミュニティによって維持されているスタンドアロンプ​​ロジェクトです。 PrometheusのほとんどのコンポーネントはGoで記述されているため、静的バイナリとして簡単にビルドおよびデプロイできます。コードからアプリケーションをコンパイルする必要があることはめったにありません。

Prometheusは、Linuxシステムのようなマシン中心の監視と、非常に動的なサービス指向アーキテクチャの監視の両方について、純粋に数値の時系列を記録することができます。 Grafanaのような視覚化ツールは、Grafana2.5.0以降に含まれているPrometheusのGrafanaデータソースを使用したPrometheusのクエリをサポートしています。

このガイドでは、Ubuntu18.04サーバーにPrometheusをインストールする方法について説明します。

プロメテウスのコンポーネント

Prometheusエコシステムは、完全な監視およびアラートシステムを提供するために連携して機能するさまざまなコンポーネントで構成されています。ほとんどのコンポーネントはオプションであり、オンデマンドでインストールするだけで済みます。主なコンポーネントは次のとおりです。

  • Prometheusサーバー-これは、クライアントシステムとアプリケーションから時系列データを取得して保存します。
  • エクスポーター-サードパーティシステムからPrometheusメトリックとして既存のメトリックをエクスポートする際に使用されます。
  • アラートの処理に使用されるアラートマネージャー
  • アプリケーションコードをインストルメント化するためのクライアントライブラリ
プロメテウスの機能

Prometheusの主な機能は次のとおりです。

  • メトリック名とキー/値のペアで識別される時系列データを含む多次元データモデル
  • 多次元モデルを活用するための非常に柔軟なクエリ言語があります
  • 単一サーバーノードは自律的であり、分散ストレージに依存しません。
  • Prometheus時系列コレクションは、HTTPプロトコルを介したプルモデルを使用します
  • ターゲットの自動サービス検出機能があり、構成ファイルを同じ目的で使用できます。
  • 時系列のプッシュは、中間ゲートウェイを介してサポートされます
  • Prometheusは、グラフ作成とダッシュボードの複数のモードをサポートしています

Ubuntu18.04へのPrometheusのインストール

PrometheusはGoで記述されているため、そのパッケージはバイナリとして配布されます。この記事の執筆時点で、Prometheusの最新リリースは v2.2.1です。 。公式ダウンロードページからリリースを確認できます。提供されるパッケージはmacOS、Linux、およびWindowsオペレーティングシステム用であるため、正しいパッケージをダウンロードしていることを確認してください。

$ sudo su -
$ export RELEASE="2.2.1"
$ wget https://github.com/prometheus/prometheus/releases/download/v${RELEASE}/prometheus-${RELEASE}.linux-amd64.tar.gz

アーカイブをダウンロードしたら、tarを使用して解凍します。

$ tar xvf prometheus-${RELEASE}.linux-amd64.tar.gz
prometheus-2.2.1.linux-amd64/
prometheus-2.2.1.linux-amd64/consoles/
prometheus-2.2.1.linux-amd64/consoles/index.html.example
prometheus-2.2.1.linux-amd64/consoles/node-cpu.html
prometheus-2.2.1.linux-amd64/consoles/node-disk.html
prometheus-2.2.1.linux-amd64/consoles/node-overview.html
prometheus-2.2.1.linux-amd64/consoles/node.html
prometheus-2.2.1.linux-amd64/consoles/prometheus-overview.html
prometheus-2.2.1.linux-amd64/consoles/prometheus.html
prometheus-2.2.1.linux-amd64/console_libraries/
prometheus-2.2.1.linux-amd64/console_libraries/menu.lib
prometheus-2.2.1.linux-amd64/console_libraries/prom.lib
prometheus-2.2.1.linux-amd64/prometheus.yml
prometheus-2.2.1.linux-amd64/LICENSE
prometheus-2.2.1.linux-amd64/NOTICE
prometheus-2.2.1.linux-amd64/prometheus
prometheus-2.2.1.linux-amd64/promtool

ファイル抽出から新しく作成されたディレクトリに移動します。

# cd prometheus-${RELEASE}.linux-amd64/

Prometheusシステムグループの作成

Prometheusを実行するには、独自のユーザーとグループが必要です。

# groupadd --system prometheus
# grep prometheus /etc/group
prometheus:x:999:

Prometheusシステムユーザーの作成

Prometheusグループができたので、ユーザーを作成して、作成したグループを割り当てましょう。

# useradd -s /sbin/nologin -r -g prometheus prometheus
# id prometheus
uid=999(prometheus) gid=999(prometheus) groups=999(prometheus)

Prometheusの構成およびデータディレクトリを作成する

Prometheusには、データと構成ファイルを保存するためのディレクトリが必要です。 / var / lib / prometheusを作成します データおよび/etc / prometheus 構成ファイル用。

# mkdir -p /etc/prometheus/{rules,rules.d,files_sd}  /var/lib/prometheus

Prometheusバイナリファイルを$PATHのディレクトリにコピーします

Linuxにサードパーティのバイナリを配置するための優先ディレクトリは/usr / local / bin / デフォルトでは$PATHにあり、システムバイナリに干渉しないためです。

# cp prometheus promtool /usr/local/bin/
# ls /usr/local/bin/
prometheus promtool

コンソールとconsole_librariesを構成ファイルディレクトリにコピーします

コンソールファイルとライブラリは、 / etc / prometheus /の下に配置する必要があります ディレクトリ。

# cp -r consoles/ console_libraries/ /etc/prometheus/

systemdユニットファイルを作成します:

Ubuntu18.04はデフォルトでsystemdinitシステムを使用します。Prometheusサービスを管理するためのサービスユニットファイルを作成する必要があります。ファイルを/etc / systemd / systemに配置します ディレクトリ。ファイルの名前は.serviceで終わる必要があります

# cat /etc/systemd/system/prometheus.service

[Unit]
Description=Prometheus systemd service unit
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=prometheus
Group=prometheus
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/var/lib/prometheus \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.listen-address=0.0.0.0:9090

SyslogIdentifier=prometheus
Restart=always

[Install]
WantedBy=multi-user.target

注:

  • サービスを0.0.0.0:9090にバインドします 。これは、サーバー上のすべてのネットワークインターフェイスからアクセスできます。使用するインターフェースのIPアドレスを指定して制限します。ローカルアクセスの場合は127.0.0.1のみです。
  • 指定された構成ファイルは/etc/prometheus/prometheus.yml 。次に使用する基本構成ファイルを作成します。

Prometheus構成ファイルの作成

これは/etc / prometheus /に配置されます ディレクトリ。

# cat  /etc/prometheus/prometheus.yml
# Global config
global: 
 scrape_interval: 15s # Set the scrape interval to every 15 seconds.
 evaluation_interval: 15s # Evaluate rules every 15 seconds. 
 scrape_timeout: 15s # scrape_timeout is set to the global default (10s).

# A scrape configuration containing exactly one endpoint to scrape:# Here it's Prometheus itself.
scrape_configs:
 # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
 - job_name: 'prometheus'

# metrics_path defaults to '/metrics'
 # scheme defaults to 'http'.

static_configs:
 - targets: ['localhost:9090']

その他の構成オプションについては、公式のPrometheus構成ガイドを参照してください。

ディレクトリのアクセス許可をPrometheusユーザーとグループに変更する

Prometheusファイルとデータの所有権は、そのユーザーとグループである必要があります。

# chown -R prometheus:prometheus /etc/prometheus/  /var/lib/prometheus/
# chmod -R 775 /etc/prometheus/ /var/lib/prometheus/

Prometheusサービスを開始して有効にします

Prometheusサービスを開始して有効にし、起動時に開始します。

# systemctl start prometheus
# systemctl enable prometheus
Created symlink from /etc/systemd/system/multi-user.target.wants/prometheus.service to /etc/systemd/system/prometheus.service.

ステータスの確認:

# systemctl status prometheus


ポート9090がリッスンしていることを確認します。

# netstat -tunlp | grep 9090
tcp6 0 0 :::9090 :::* LISTEN 2140/prometheus

# telnet 127.0.0.1 9090
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
^]
If you have a firewall like ufw, Open port 9090 to be able to access it from a remote device.

# ufw allow 9090
Rule added
Rule added (v6)

特定のネットワークを許可するには、次を使用します:

# ufw allow from 192.168.10.0/24 to any port 9090
Rule added

# ufw status
Status: active

To Action From
-- ------ ----
9090 ALLOW Anywhere 
9090 ALLOW 192.168.10.0/24 
9090 (v6) ALLOW Anywhere (v6)

Webインターフェイスを取得するには、 http:// ip:9090を開きます。

次に確認したいのは、メトリックの収集と視覚化のためのさまざまなエクスポーターの構成です。開始するのに最適な場所は、ExportersInstrumentationページです。


Ubuntu
  1. Ubuntu16.04にRをインストールする方法

  2. Ubuntu18.04にGoをインストールする方法

  3. Ubuntu20.04にPrometheusをインストールする方法

  1. UbuntuにOdooをインストールする方法

  2. UbuntuにMavenをインストールする方法

  3. UbuntuにWineをインストールする方法

  1. Ubuntu20.04にRubyをインストールする方法

  2. UbuntuにPuTTYをインストールする方法

  3. Ubuntu20.04にRをインストールする方法