Prometheusインストール (RPM編)

スポンサーリンク

Prometheusはコンテナやクラウドなどの大量コンポーネントを監視する事に特化したソフトウェアです。このページではパッケージインストール手順を紹介します。パッケージはsystemd関連の設定も整っており非常に便利ですが、公式手順ではないため自己責任での利用をお願いします(政治的に面倒な案件では採用しない方が無難です)。

関連記事 : 統合監視ツール : Linux基本操作
関連記事 : 統合監視ツール : MRTG

前提

参照資料

公式手順ではない事を留意ください。

動作確認済環境

  • Rocky Linux 8.5

Prometheus

インストール

Prometheusのリポジトリを登録します。

cat << 'EOF' > /etc/yum.repos.d/prometheus.repo
[prometheus]
name=prometheus
baseurl=https://packagecloud.io/prometheus-rpm/release/el/$releasever/$basearch
repo_gpgcheck=1
enabled=1
gpgkey=https://packagecloud.io/prometheus-rpm/release/gpgkey
       https://raw.githubusercontent.com/lest/prometheus-rpm/master/RPM-GPG-KEY-prometheus-rpm
gpgcheck=1
metadata_expire=300
EOF

Prometheusのバージョン2系をインストールします。

dnf install prometheus2

起動

RPMのPrometheusはsystemdが設定済の状態となっていますので、以下のようなsystemctlコマンドでPrometheusの起動停止ができます。

systemctl enable prometheus.service --now

動作確認

以下URLをブラウザで開きます。「/」へのアクセスを試みると、「/graph」へリダイレクトされグラフ描画ページへ遷移します。

 http://<IPアドレス>:9090/

Prometheus 初期状態

以下URLをブラウザで開きます。すると、監視項目の一覧が表示されます。この画面で表示される監視項目のうち1つをメモに控えましょう。

 http://<IPアドレス>:9090/metric

Prometheu 監視項目一覧

再びグラフ描画ページ(http://<ip_addr>:9090/graph)に戻ります。検索窓に監視項目(例:prometheus_http_requests_total)を入力し、「Graph」を押下します。すると、監視結果がグラフ化される事が分かります。

Prometheu グラフ描画例

Node exporter

インストール

前述の操作で監視されているのはPrometheusそのものです。PrometheusはGo言語で作成されたHTTPサーバで、そのHTTPサーバのメモリ使用量や200応答の回数などがメトリックとして蓄積されていきます。

それではPrometheusではなく仮想マシンそのものを監視してみましょう。PrometheusはHTTPで公開されたメトリック情報をスクレイピングして情報を蓄積します。ですので、HTTPで公開できる情報ならば「何でも」監視する事ができます。それではOSの情報をHTTPとして公開するNode exporterをインストールしてみましょう。

dnf install node_exporter

起動

RPMのnode_exporterはsystemdが設定済の状態となっていますので、以下のようなsystemctlコマンドでnode_exporterの起動停止ができます。

systemctl enable node_exporter.service --now

動作確認

Node exporterによってメトリックがHTTPによって公開されているかどうかを確認します。以下のようなcurlコマンドを実行しメトリックを取得できるかどうかを確認します。

curl http://localhost:9100/metrics

curlコマンドの実行結果をよく観察すると、diskやcpuなどOSに関する情報を取得できている事が分かるかと思います。以下に出力の一部を載せます。

[root@linux010 ~]# curl http://localhost:9100/metrics

 <omitted>

# HELP node_cpu_seconds_total Seconds the CPUs spent in each mode.
# TYPE node_cpu_seconds_total counter
node_cpu_seconds_total{cpu="0",mode="idle"} 2950.73
node_cpu_seconds_total{cpu="0",mode="iowait"} 84.4
node_cpu_seconds_total{cpu="0",mode="irq"} 4.58
node_cpu_seconds_total{cpu="0",mode="nice"} 1.1
node_cpu_seconds_total{cpu="0",mode="softirq"} 1.82
node_cpu_seconds_total{cpu="0",mode="steal"} 0
node_cpu_seconds_total{cpu="0",mode="system"} 15.89
node_cpu_seconds_total{cpu="0",mode="user"} 23.23

 <omitted>

Prometheusとの連携

Promethesで監視する対象はprometheus.ymlに記述します。以下のようにtcp9090(prometheus)とtcp9100(node_exporter)を監視するような定義を作成します。

cat << EOF > /etc/prometheus/prometheus.yml
scrape_configs:
  - job_name: prometheus
    static_configs:
      - targets:
        - localhost:9090
  - job_name: node
    static_configs:
      - targets:
        - localhost:9100
EOF

Prometheusを再起動します。

systemctl restart prometheus.service

監視対象ページ(http://<ip_addr>:9090/targets)を表示すると、prometheusとnodeの2つを監視している事が分かります。

Node Exporterの追加確認

グラフ描画ページ(http://<ip_addr>:9090/graph)を表示します。検索窓に監視項目(例:node_cpu_seconds_total)を入力し、「Graph」を押下します。すると、監視結果がグラフ化される事が分かります。

Node Exporterの描画例

タイトルとURLをコピーしました