本投稿は 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管理画面が利用できます。
興味がある方は是非試してください。