概要
Prometheus, Node_Exporter, Grafana を構築し、ローカルPCを監視できるようになるまでのレシピ。
以下、すべてのコマンドは一般ユーザで実行することを想定としている。
実用性重視のため、Prometheus 自体の説明はここではしない
動作環境
- Linux (Debian [v10.8])
- Windows (以下条件)
- WSL2 の Ubuntu [v20.04]
-
systemctl
コマンドが使用可能な状態
参考: https://github.com/arkane-systems/genie
Prometheus構築手順
1. Prometheus用のユーザとグループを作成
sudo groupadd prometheus
sudo useradd -d /var/lib/prometheus -g prometheus -s /bin/false -m prometheus
2. 必要なファイルをDL & 展開
cd
wget https://github.com/prometheus/prometheus/releases/download/v2.28.1/prometheus-2.28.1.linux-amd64.tar.gz
tar xf ./prometheus-2.28.1.linux-amd64.tar.gz
ls -1 ./prometheus-2.28.1.linux-amd64
- 2021/8/2 時点での最新 [v2.28.1] を選択
- 最新Verの確認: https://prometheus.io/download/
3. Prometheusのパスを通す
cd ./prometheus-2.28.1.linux-amd64/
sudo cp ./prometheus ./promtool /sbin/
sudo chown root:root /sbin/prometheus /sbin/promtool
4. Prometheus用の設定ディレクトリとデータディレクトリを作成
sudo mkdir /etc/prometheus
sudo mkdir /var/lib/prometheus/data
sudo chown -R prometheus:prometheus /var/lib/prometheus/data
5. 設定ファイルとconsole templateを設定ディレクトリへ設置
sudo cp -r ./prometheus.yml ./consoles ./console_libraries /etc/prometheus/
sudo chown -R root:prometheus /etc/prometheus
6. 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
7. Prometheusの起動, 確認を行う
sudo systemctl daemon-reload
sudo systemctl enable prometheus.service
sudo systemctl start prometheus.service
sudo systemctl status prometheus.service
8. http://localhost:9090
Node_Exporter構築手順
Node_Exporterのみ構築する場合、0も実施する
0. Prometheus用のユーザとグループを作成
sudo groupadd prometheus
sudo useradd -d /var/lib/prometheus -g prometheus -s /bin/false -m prometheus
1. 必要なファイルをDL & 展開
cd
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-1.3.1.linux-amd64.tar.gz
ls -1 ./node_exporter-1.3.1.linux-amd64
- 2021/12/13 時点での最新 [v1.3.1] を選択
- 最新Verの確認: https://github.com/prometheus/node_exporter/releases/
2. Node_Exporterのパスを通す
sudo cp ./node_exporter-1.3.1.linux-amd64/node_exporter /sbin/
sudo chown root:root /sbin/node_exporter
3. 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
4. Node_Exporterの起動, 確認を行う
sudo systemctl daemon-reload
sudo systemctl enable node_exporter.service
sudo systemctl start node_exporter.service
sudo systemctl status node_exporter.service
5. 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
2. nodes.ymlへNode_Exporterを登録
cat << 'EOS' | sudo tee /etc/prometheus/nodes.yml
- targets:
- localhost:9100
labels:
role: prometheus
EOS
3. 設定ファイルの構文チェック
sudo promtool check config /etc/prometheus/prometheus.yml
4. Prometheusをreload
sudo killall -HUP prometheus
5. 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 -
2. Grafanaをインストール & 起動
sudo apt update
sudo apt install grafana
sudo systemctl enable grafana-server.service
sudo systemctl start grafana-server.service
3. http://localhost:3000 へアクセス
4. Email or username: admin
, Password: admin
でログイン
5. Data Sourcesの追加
- 画面左部の
Configuration
からData Sources
を選択し、Add data source
をクリック -
Prometheus
を選択 - URLに
http://localhost:9090
を入力し、Save & Test
をクリック
6. 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時系列データベースのデータディレクトリ
参考記事
-
Prometheus構築
https://gihyo.jp/admin/serial/01/ubuntu-recipe/0562 -
Prometheus, Grafana全般
https://christina04.hatenablog.com/archive/category/Prometheus