Prometheusを触ってみる
Prometheusを構成するコンポーネント
-
Prometheus本体
監視サーバ(マネージャー的な位置づけ) -
Exporter
エージェント的な位置づけ、監視する内容により適切なExporterの追加をする必要あり
今回はOSの各種メトリクスを取得できるNodeExporterをインストールする -
管理メトリクス保存
Prometheusで収集したメトリクスはデフォルトでローカルストレージに保存される
ローカルストレージ以外に保存したい場合は対応する「Adapter」使用することで外部に保存することができる
Prometheusのインストール
※今回はAmazonLinux2を使用します。
githubリポジトリからダウンロード
wget https://github.com/prometheus/prometheus/releases/download/v2.25.2/prometheus-2.25.2.linux-amd64.tar.gz
tar zxvf prometheus-2.25.2.linux-amd64.tar.gz
cd prometheus-2.25.2.linux-amd64
./prometheus
起動できたらブラウザでPrometheusサーバの9090ポートにアクセスします
下のような画面が確認できます
Exporter
Exporterは複数あり、取得したいメトリクスに応じて適切なExporterを追加します。
今回はOS周りのメトリクスを取得してみたいと思うのでNodeExporterを追加してみます。
その他のExporterはこちらから探すことができます
Exporterのインストール
Exporterのインストールを行います
Exporterが起動すると9100ポートでアクセスして監視するメトリクスが確認できます
# 監視対象サーバで作業
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-386.tar.gz
tar zxvf node_exporter-1.3.1.linux-386.tar.gz
cd node_exporter-1.3.1.linux-386/
./node_exporter
Prometheusサーバで作業(監視ノードを追加する)
Prometheusサーバに監視対象として全手順でインストールしたExporterを登録します。
- job_name: 'node'
static_configs:
- targets:
- localhost:9100
- {監視対象サーバのIP}:9100
Prometheusサーバの9100ポートにアクセスすると管理対象が追加されます
システムメトリクスを収集する
クエリを実行するとメトリクスが取得できていることが確認できます
Prometheusで取得したメトリクスを可視化する
Prometheusでも簡単なグラフは作成できますが、リッチなグラフ、ダッシュボードの作成、その他データソースとの連携をするため、今回はGrafanaを使用して各メトリクスを可視化します
Grafanaのインストール
# Grafanaリポジトリを追加
[grafana]
name=grafana
baseurl=https://packages.grafana.com/oss/rpm
repo_gpgcheck=1
enabled=1
gpgcheck=1
gpgkey=https://packages.grafana.com/gpg.key
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
# Grafanaインストール、起動
yum install grafana
systemctl start grafana-server
Grafanaはデフォルト3000ポートで稼働します。
ブラウザでアクセスします。
データソースとしてPrometheusを登録する
[Configration] - [Data sources] - [Add Data source] > Prometheusを選択します
今回はPrometheusサーバとGrafanaサーバが同一サーバとなっているのでlocalhost:9090を指定して[Save]
[Explore]からQueryを投げてグラフを作成できます。
Discussion