Prometheusを試してみます

本投稿は TECOTEC Advent Calendar 2022 の24日目の記事です。

みなさま、こんにちは。次世代デジタル基盤開発事業部エンジニアをしています、頼です。

最近監視システムを調査するときに、Prometheusを触れました。 今回はPrometheusを立ち上げる方法を紹介します。

Prometheus紹介

Prometheus(プロメテウス) は、GO言語で書かれたオープンソースのモニタリングツールです。 prometheus.io Prometheusでデータを集計することもできますし、サーバ状況監視もできます。全体Prometheusの処理イメージは下記の感じになります。

Prometheusインストール

# prometheusパッケージインストール
> sudo apt install prometheus

Prometheus起動コマンド紹介

# Prometheusシステム状態確認
> systemctl status prometheus

# Prometheus起動
> sudo systemctl start prometheus

# Prometheus再起動
> sudo systemctl restart prometheus

# Prometheus停止
> sudo systemctl stop prometheus

# Prometheusリロード
> sudo systemctl reload prometheus

Prometheus動作確認

# Prometheus metricsサーバのテスト
> curl http://localhost:9090/metrics

Prometheusコンフィグファイル作成

prometheusシステムを起動するため、コンフィグファイルが必要です。基本的に、/etc/default/prometheusにコンフィグファイルを置いています。 デフォルトファイルは/etc/prometheus/prometheus.ymlです。

ドキュメント の中にサンプルファイルを提供しています。分かりやすくため、サンプルファイルは少し修正しました。

# デフォルトパラメータ
global:
  scrape_interval:     15s # 15秒ごとで情報を集計する

# 監視した情報
scrape_configs:

  # Prometheus自身情報を取得する
  - job_name: 'prometheus'
    scrape_interval: 5s # 5秒ごとで情報を取得する
    scrape_timeout: 5s

    metrics_path: '/metrics' # エンドポイント,デフォルトは '/metrics'
    scheme: 'http' 

    static_configs:
      - targets: ['localhost:9090'] # 監視したいシステムドメイン

Prometheusリロード

コンフィグファイルを修正してから、再起動が必要です。

> sudo systemctl reload prometheus

リロードが完了してから、http://localhost:9090/を飛ばしたら、Prometheus管理画面が見えるはずです。

メニューの所から「Status」→「Targets」を選んだら、Prometheusが監視しているデータのソース元が確認できます。

「Graph」の所にPromQLでデータをクエリすることができます。 例えば、node_load1でやれば、監視しているシステムのローディング情報が確認できます。 (上記はnode_load1{instance="localhost:9100",job="node"}というクエリするように結果です。)

最後に

システムを監視するため、Prometheusでやればやりやすいと思います。 まだいろいろなPrometheusと連携できる機能がありますが、まだ勉強中です。 例えば、Grafana で導入すれば、もっと綺麗なUI管理画面が利用できます。

興味がある方は是非試してください。

www.tecotec.co.jp