👏

箱庭にPrometheusを入れてみた(インストール編)

2024/12/31に公開

こんな感じで作ってみた

環境

  • ubuntu20.04.5 LTS (Focal Fossa)
  • Virtualbox 6.1
  • windows 10(ホストOS)
  • prometheus version 2.27.1
  • promtool version 2.27.1

インストール

まずはいつものおまじないで最新の状態にupgrade

ban@UoVb:~$ sudo apt update
・
・
・
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードできるパッケージが 15 個あります。表示するには 'apt list --upgradable' を実行してください。
ban@UoVb:~$
ban@UoVb:~$ sudo apt upgrade
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています
状態情報を読み取っています... 完了
アップグレードパッケージを検出しています... 完了
・
・
・

あんまりカレントをばっちくしたくないのでディレクトリを作成

ban@UoVb:~$ mkdir prometheus
ban@UoVb:~$

ban@UoVb:~$ ls -l | grep prometheus
drwxrwxr-x 2 ban ban 4096 11月 23 15:59 prometheus
ban@UoVb:~$

wgetでtarファイルを取得

ban@UoVb:~/prometheus$ wget https://github.com/prometheus/prometheus/releases/download/v2.27.1/prometheus-2.27.1.linux-amd64.tar.gz

ダウンロードしたtarを解凍

ban@UoVb:~/prometheus$ tar xvf prometheus-2.27.1.linux-amd64.tar.gz

ディレクトリを移動

ban@UoVb:~/prometheus$ cd prometheus-2.27.1.linux-amd64/
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ ls -l
合計 178068
-rw-r--r-- 1 ban ban    11357  5月 18  2021 LICENSE
-rw-r--r-- 1 ban ban     3646  5月 18  2021 NOTICE
drwxr-xr-x 2 ban ban     4096  5月 18  2021 console_libraries
drwxr-xr-x 2 ban ban     4096  5月 18  2021 consoles
-rwxr-xr-x 1 ban ban 96561319  5月 18  2021 prometheus
-rw-r--r-- 1 ban ban      926  5月 18  2021 prometheus.yml
-rwxr-xr-x 1 ban ban 85738653  5月 18  2021 promtool
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

構成ファイルディレクトリの作成

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo mkdir -p /etc/prometheus
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ ls -l /etc/ | grep prometheus
drwxr-xr-x  2 root root    4096 11月 23 16:04 prometheus
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

データディレクトリの作成

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo mkdir -p /var/lib/prometheus
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ ls -l /var/lib/ | grep prometheus
drwxr-xr-x  2 root          root          4096 11月 23 16:05 prometheus
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

バイナリファイルの移動

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo mv prometheus promtool /usr/local/bin/
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ ls -l /usr/local/bin/ | egrep "prometheus|promtool"
-rwxr-xr-x 1 ban  ban  96561319  5月 18  2021 prometheus
-rwxr-xr-x 1 ban  ban  85738653  5月 18  2021 promtool
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

consoleファイルの移動

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo mv consoles/ console_libraries/ /etc/prometheus/
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ ls -l /etc/prometheus/
合計 8
drwxr-xr-x 2 ban ban 4096  5月 18  2021 console_libraries
drwxr-xr-x 2 ban ban 4096  5月 18  2021 consoles
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

yamlファイルの移動

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo mv prometheus.yml /etc/prometheus/prometheus.yml
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ ls -l /etc/prometheus/
合計 12
drwxr-xr-x 2 ban ban 4096  5月 18  2021 console_libraries
drwxr-xr-x 2 ban ban 4096  5月 18  2021 consoles
-rw-r--r-- 1 ban ban  926  5月 18  2021 prometheus.yml
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

バージョンの確認

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$  prometheus --version
prometheus, version 2.27.1 (branch: HEAD, revision: db7f0bcec27bd8aeebad6b08ac849516efa9ae02)
  build user:       root@fd804fbd4f25
  build date:       20210518-14:17:54
  go version:       go1.16.4
  platform:         linux/amd64
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ promtool --version
promtool, version 2.27.1 (branch: HEAD, revision: db7f0bcec27bd8aeebad6b08ac849516efa9ae02)
  build user:       root@fd804fbd4f25
  build date:       20210518-14:17:54
  go version:       go1.16.4
  platform:         linux/amd64
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ユーザーグループの作成

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo groupadd --system prometheus
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ getent group prometheus
prometheus:x:998:
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ユーザーの作成

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo useradd -s /sbin/nologin --system -g prometheus prometheus
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ groups prometheus
prometheus : prometheus
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ファイルディレクトリ、データディレクトリの所有権変更

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo chown -R prometheus:prometheus /etc/prometheus/  /var/lib/prometheus/
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo chmod -R 775 /etc/prometheus/ /var/lib/prometheus/
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ ls -l /etc | grep prometheus
drwxrwxr-x  4 prometheus prometheus  4096 11月 23 16:11 prometheus
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ ls -l /var/lib/ | grep prometheus
drwxrwxr-x  2 prometheus    prometheus    4096 11月 23 16:05 prometheus
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

systemdの作成
※公式サイトではnanoを使ってたのでそのまま使う

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ cat /etc/systemd/system/prometheus.service

↓をそのまま記載して上書き保存(Ctrl+s)

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ cat /etc/systemd/system/prometheus.service
[Unit]

Description=Prometheus

Wants=network-online.target

After=network-online.target



[Service]

User=prometheus

Group=prometheus

Restart=always

Type=simple

ExecStart=/usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/ --web.console.templates=/etc/prometheus/consoles --web.console.libraries=/etc/prometheus/console_libraries --web.listen-address=0.0.0.0:9090


[Install]

WantedBy=multi-user.target

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

サービス起動

ここまででインスコは出来ているはずなのでprometheusの起動

サービスのファイルを作ったので一度daemonをreload

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo systemctl daemon-reload
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

prometheusを起動

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo systemctl start prometheus
ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$

ban@UoVb:~/prometheus/prometheus-2.27.1.linux-amd64$ sudo systemctl status prometheus
● prometheus.service - Prometheus
     Loaded: loaded (/etc/systemd/system/prometheus.service; disabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-11-25 15:16:38 JST; 5s ago
   Main PID: 36941 (prometheus)
      Tasks: 6 (limit: 4618)
     Memory: 17.0M
     CGroup: /system.slice/prometheus.service
             mq36941 /usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/ --web.console.templates=/etc/prometheus/consoles --web.console.lib>

OS起動時にprometheusが動くように設定

ban@UoVb:~$ sudo systemctl enable prometheus
Created symlink /etc/systemd/system/multi-user.target.wants/prometheus.service → /etc/systemd/system/prometheus.service.
ban@UoVb:~$

ban@UoVb:~$ sudo systemctl status prometheus
● prometheus.service - Prometheus
     Loaded: loaded (/etc/systemd/system/prometheus.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-11-25 15:16:38 JST; 3 days ago
   Main PID: 36941 (prometheus)
      Tasks: 8 (limit: 4618)
     Memory: 46.0M
     CGroup: /system.slice/prometheus.service
             mq36941 /usr/local/bin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/ --web.console.templates=/etc/prometheus/consoles --web.console.lib>

新たに9090ポートを許可しておく

ban@UoVb:~$ sudo ufw allow 9090/tcp
ルールを追加しました
ルールを追加しました (v6)
ban@UoVb:~$

ban@UoVb:~$ sudo ufw status
状態: アクティブ

To                         Action      From
--                         ------      ----
161/udp                    ALLOW       Anywhere
162/udp                    ALLOW       Anywhere
22/tcp                     ALLOW       Anywhere
9090/tcp                   ALLOW       Anywhere
161/udp (v6)               ALLOW       Anywhere (v6)
162/udp (v6)               ALLOW       Anywhere (v6)
22/tcp (v6)                ALLOW       Anywhere (v6)
9090/tcp (v6)              ALLOW       Anywhere (v6)

ban@UoVb:~$

ブラウザから http://localhost:9090 にアクセス
※Virtualboxのポートフォワーディングも設定するのを忘れない

Discussion