Prometheus


  1. Prometeus 用のユーザとグループを作成
sudo groupadd prometheus
sudo useradd -d /var/lib/prometheus -g prometheus -s /bin/false -m prometheus
  1. Prometheus をダウンロード
wget https://github.com/prometheus/prometheus/releases/download/v2.36.2/prometheus-2.36.2.linux-amd64.tar.gz
  1. 解凍
tar xvfz prometheus-*.tar.gz
cd prometheus-*
  1. Prometheus 用の設定ディレクトリとデータディレクトリを作成
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus/data
sudo chown -R prometheus:prometheus /var/lib/prometheus/data
  1. 設定ファイルと console template を設定ディレクトリへ設置
sudo cp -r ./prometheus.yml ./consoles ./console_libraries /etc/prometheus/
sudo chown -R root:prometheus /etc/prometheus
  1. systemd の service unit file を設置
cat << 'EOS' | sudo tee /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus Server
Documentation=https://prometheus.io/docs/introduction/overview/
After=network-online.target

[Service]
User=prometheus
ExecStart=/sbin/prometheus --config.file=/etc/prometheus/prometheus.yml --storage.tsdb.path=/var/lib/prometheus/data --web.console.templates=/etc/prometheus/consoles  --web.console.libraries=/etc/prometheus/console_libraries
ExecStop=/bin/kill -TERM ${MAINPID}
ExecReload=/bin/kill -HUP ${MAINPID}

[Install]
WantedBy=multi-user.target
EOS
  1. Prometheus の起動, 確認を行う
sudo systemctl daemon-reload
sudo systemctl enable prometheus.service
sudo systemctl start prometheus.service
sudo systemctl status prometheus.service
  1. http://localhost:9090

Node_Exporter 構築手順

  1. Prometheus 用のユーザとグループを作成
sudo groupadd prometheus
sudo useradd -d /var/lib/prometheus -g prometheus -s /bin/false -m prometheus
  1. 必要なファイルを DL & 展開
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-amd64.tar.gz
tar xf ./node_exporter-*
cd node_exporter*
  1. Node_Exporter のパスを通す
sudo cp ./node_exporter-1.2.0.linux-amd64/node_exporter /sbin/
sudo chown root:root /sbin/node_exporter
  1. systemd の service unit file を設置
cat << 'EOS' | sudo tee /etc/systemd/system/node_exporter.service
[Unit]
Description=Node Exporter for Prometheus
After=network.target

[Service]
Type=simple
User=prometheus
ExecStart=/sbin/node_exporter
PrivateTmp=true

[Install]
WantedBy=multi-user.target
EOS
  1. Node_Exporter の起動, 確認を行う
sudo systemctl daemon-reload
sudo systemctl enable node_exporter.service
sudo systemctl start node_exporter.service
sudo systemctl status node_exporter.service
  1. http://localhost:9100/metrics

Node_Exporter を収集対象として登録

  1. prometheus.yml に Node_Exporter の job を追記
cat << 'EOS' | sudo tee -a /etc/prometheus/prometheus.yml

  - job_name: 'node'

    file_sd_configs:
    - files:
       - /etc/prometheus/nodes.yml
EOS
  1. nodes.yml へ Node_Exporter を登録
cat << 'EOS' | sudo tee /etc/prometheus/nodes.yml
- targets:
   - localhost:9100
  labels:
    role: prometheus
EOS
  1. 設定ファイルの構文チェック
sudo promtool check config /etc/prometheus/prometheus.yml
  1. Prometheus を reload
sudo killall -HUP prometheus
  1. http://localhost:9090/targets

Grafana 構築手順

  1. Grafana の GPG キーを追加
cd
sudo /bin/bash -c "echo deb https://packages.grafana.com/oss/deb stable main > /etc/apt/sources.list.d/grafana.list"
curl https://packages.grafana.com/gpg.key | sudo apt-key add -
  1. Grafana をインストール & 起動
sudo apt update
sudo apt install grafana
sudo systemctl enable grafana-server.service
sudo systemctl start grafana-server.service
  1. http://localhost:3000 へアクセス

  2. Email or username: admin, Password: admin でログイン

  3. Data Sources の追加

    画面左部の Configuration から Data Sources を選択し、Add data source をクリック Prometheus を選択 URL に http://localhost:9090 を入力し、Save & Test をクリック

  4. Dashboard のインポート

    画面左部の Dashboards から Manage を選択し、Import をクリック Import via grafana.com に 1860 を入力し、Load をクリック Name の行頭に[Import] を追記 prometheus の Prometheus (default) を選択し、Import をクリック

関連ファイル、ディレクトリ一覧

  • /etc/prometheus –> Prometheus 設定ファイルディレクトリ
    • prometheus.yml –> Prometheus 設定ファイル
    • nodes.yml –> Node_Exporter 設定ファイル
  • /var/lib/prometheus/data –> Prometheus 時系列データベースのデータディレクトリ