Help us understand the problem. What is going on with this article?

CentOS8にPrometheusをインストールする

はじめに

Prometheusを触ってみたかったので動かしてみます。
Prometheusは複数のコンポーネントで構成され、今回説明するのは Prometheus 本体です。
それ以外にも「exporter(監視エージェント)」や「alertmanager(通知の実行)」などが存在します。

環境

インストールの前提となる環境は以下のとおりです。

  • OS:CentOS8
  • selinux:無効
  • firewalld:無効
  • Prometheusはバイナリを使用(Dockerは使用しない)
  • インストールディレクトリ: /usr/prometheus
  • Prometheusバージョン:2.15.2

インストール

それではインストールを行います。
作業に必要なパッケージとPrometheusインストールします。

yum install -y  wget  tar
mkdir /usr/prometheus

cd /tmp
wget https://github.com/prometheus/prometheus/releases/download/v2.15.2/prometheus-2.15.2.linux-amd64.tar.gz
tar zxvf prometheus-2.15.2.linux-amd64.tar.gz

mv ./prometheus-2.15.2.linux-amd64/* /usr/prometheus/
rm prometheus-2.15.2.linux-amd64.tar.gz
rmdir prometheus-2.15.2.linux-amd64
cd /usr/prometheus
chown root:root -R /usr/prometheus

※ /tmp は作業用のディレクトリです

systemd ユニットファイルの作成

ダウンロードしたバイナリを実行すれば起動しますが、ユニットファイルを作成していきましょう。

/usr/lib/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
ExecStart=/usr/prometheus/prometheus \
--config.file=/usr/prometheus/prometheus.yml
ExecReload=/bin/kill -HUP $MAINPID
Restart=no

作成したユニットファイルを読み込み、Prometheusを起動します。

systemctl daemon-reload
systemctl enable prometheus
systemctl start prometheus

起動確認

ブラウザで http://<IPアドレス>:9090/ にアクセスできるか確認しましょう。

気になるオプション

細かい動作の検証ができていませんがこのあたりのオプションを変更する事がありそうです。
ユニットファイルのExecStartの項目に付け足していきます。

オプション 内容
--web.listen-address=localhost:9090 localhostからのみに変更 1
--storage.tsdb.retention.time データ保持期間
--storage.tsdb.retention.size データ保存サイズ
--storage.tsdb.wal-compression WALを圧縮
--storage.tsdb.path データ保存するパスを指定(デフォルトのままだと /data/ に保存される)

必要に応じて /usr/lib/systemd/system/prometheus.service を書き換えます。
※/usr/lib/systemd/system/prometheus.service を修正した場合は 「systemctl daemon-reload && systemctl restart prometheus」を都度実行しましょう。
参考:「RedHat」SYSTEMD のユニットファイルの作成および変更

それ以外のオプションはヘルプで確認できます。

/usr/prometheus/prometheus --help

コンフィグの場所がわかりにくい

/etc/ 配下をとりあえず探してしまう方のためにひと工夫しておきましょう。

コンフィグファイル自体は /usr/prometheus にあるのでシンボリックリンクを設定します。
(コンフィグファイル自体を動かして ExecStartの「--config.file」を修正しても良いでしょう)

ln -s /usr/prometheus/prometheus.yml /etc/prometheus.yml

終わりに

本体をインストールしただけなので、まだ監視ができていません。
次はexporterを動かして監視する記事がかけたら良いですね。

更新履歴

2020/03/08
気になるオプションにstorage.tsdb.pathを追加しました。


  1. アカウントやIPアドレスによるアクセス制限ができないので、Apacheなどをかませて使用すると良さそう 

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした