Prometheus という新しめのモニタリングツールを試してみるべく、インストールと基本的な設定を行ってみましたので、その内容をメモします。
環境
- CentOS 7.7
- Prometheus 2.15.1
Prometheus のインストール
事前準備
まずは、Prometheusを実行するユーザや、ディレクトリを準備しておきます。
Prometheusグループ・ユーザの作成
グループとユーザを作っておきます。
# groupadd prometheus # useradd -g prometheus prometheus
ディレクトリの作成
設定ファイルを配置するディレクトリと、メトリクスデータを保存するディレクトリを作成しておきます。
# mkdir /etc/prometheus/ # chown prometheus:prometheus /etc/prometheus/ # mkdir -p /data/prometheus # chown prometheus:prometheus /data/prometheus/
バイナリファイルの配置
Dockerイメージも配布されているようなのでいずれ試してみようと思いますが、今回はバイナリで。
公式サイト (https://prometheus.io/download/) から、バイナリファイルをダウンロードします。
2019年12月27日時点の最新バージョンは「2.15.1」でした。
# wget https://github.com/prometheus/prometheus/releases/download/v2.15.1/prometheus-2.15.1.linux-amd64.tar.gz # tar zxvf prometheus-2.15.1.linux-amd64.tar.gz # mv -i prometheus-2.15.1.linux-amd64 /usr/local/prometheus-2.15.1 # cd /usr/local # chown -R prometheus:prometheus prometheus-2.15.1/ # ln -s prometheus-2.15.1 prometheus # ls -l | grep prometheus lrwxrwxrwx. 1 root root 17 Dec 26 20:25 prometheus -> prometheus-2.15.1 drwxr-xr-x. 5 prometheus prometheus 134 Dec 26 20:01 prometheus-2.15.1
自動起動の設定
systemd の管理下に入れて、自動起動できるように設定します。
# vi /usr/lib/systemd/system/prometheus.service
serviceファイルはこんな感じで。
[Unit] Description=Prometheus Server [Service] Type=simple Restart=always User=prometheus ExecStart=/usr/local/prometheus/prometheus --config.file=/usr/local/prometheus/prometheus.yml --storage.tsdb.path=/data/prometheus/metrics ExecReload=/bin/kill -HUP $MAINPID TimeoutStopSec=20s SendSIGKILL=no [Install] WantedBy=multi-user.target
serviceファイルを作成したら、daemon-reloadして認識させます。
# systemctl daemon-reload # systemctl list-unit-files | grep prometheus prometheus.service disabled
そして、自動起動を有効化します。
# systemctl enable prometheus.service Created symlink from /etc/systemd/system/multi-user.target.wants/prometheus.service to /etc/systemd/system/prometheus.service. # systemctl list-unit-files | grep prometheus prometheus.service enabled
node_exporter の設定
node_exporter は、インストール先の Linux などのホストの各種情報を収集してくれます。
node_exporter
以下のページの「Node/system metrics exporter (official)」というやつです。
こちらもバイナリファイルを使います。
# wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz # tar zxvf node_exporter-0.18.1.linux-amd64.tar.gz # mv -i node_exporter-0.18.1.linux-amd64 /usr/local/node_exporter-0.18.1 # cd /usr/local # chown -R prometheus:prometheus node_exporter-0.18.1 # ln -s node_exporter-0.18.1 node_exporter
自動起動の設定
systemd の管理下に入れて、自動起動できるように設定します。
# vi /usr/lib/systemd/system/prometheus_node_exporter.service
serviceファイルはこんな感じで。
[Unit] Description=Node Exporter for Prometheus [Service] Type=simple Restart=always User=prometheus ExecStart=/usr/local/node_exporter/node_exporter ExecReload=/bin/kill -HUP $MAINPID TimeoutStopSec=20s SendSIGKILL=no [Install] WantedBy=multi-user.target
serviceファイルを作成したら、daemon-reloadして認識させます。
# systemctl daemon-reload # systemctl list-unit-files | grep prometheus_node_exporter prometheus_node_exporter.service disabled
そして、自動起動を有効化します。
# systemctl enable prometheus_node_exporter.service Created symlink from /etc/systemd/system/multi-user.target.wants/prometheus_node_exporter.service to /usr/lib/systemd/system/prometheus_node_exporter.service. # systemctl list-unit-files | grep prometheus_node_exporter prometheus_node_exporter.service enabled
動作確認
以下のように、curlで応答があるか確認します。
応答があれば、ひとまず動作しているはずです。
curl http://localhost:9100/metrics
Prometheus 側のデータ収集設定
prometheus.ymlの修正
Prometheus が node_exporter 経由でデータを収集できるように、 prometheus.yml に設定を追加します。
ディフォルトの prometheus.yml だと最後ほうにありますが、「scrape_configs:」の中にnode_exporter用の設定を追加します。
「- job_name: 'node'」以降の部分に、以下の内容を追加します。
- job_name: 'node' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9100']
設定を変更したら、prometheusを再起動します。
# sysmtectl restart prometheus.server
動作確認
以下のように、curlで応答があるか確認します。
応答があれば、ひとまず動作しているはずです。
curl http://localhost:9090/metrics