Installation Prometheus

การติดตั้ง Prometheus จะติดตั้งที่ environment ที่เราได้สร้างไว้ตอนติดตั้ง senlin client กับ Octavia client

  • สร้าง directory ใหม่ที่ path /opt/prometheus-setup เพื่อเก็บ file ที่ดาวน์โหลดมา

sudo mkdir /opt/prometheus-setup
cd /opt/prometheus-setup
  • สร้าง User ชื่อ prometheus

sudo useradd prometheus
  • ใช้ wget ดาวน์โหลด Prometheus server จาก Github ซึ่งควรใช้เป็น version ล่าสุด (ตรง {version} ให้ใส่ version ล่าสุดลงไป)

wget https://github.com/prometheus/prometheus/releases/download/v_version_/prometheus-{version}.linux-amd64.tar.gz 
  • ใช้ tar เเตกไฟล์ prometheus-{version}.linux-amd64.tar.gz

tar -xvzf prometheus-{version}.linux-amd64.tar.gz
  • เพิ่มไฟล์ที่เเตกออกมาลงใน path เพื่อให้สามารถเข้าถึงได้ง่าย และ เปลี่ยนการจัดการในไฟล์เเละไดเรกทอรี กับ user prometheus

sudo mv prometheus-{version}.linux-amd64 prometheus
sudo mv  prometheus/prometheus  /usr/bin/
sudo chown prometheus:prometheus /usr/bin/prometheus
sudo mkdir /etc/prometheus
sudo cp prometheus/prometheus.yml /etc/prometheus/
sudo chown -R prometheus:prometheus /etc/prometheus
sudo chown -R prometheus:prometheus /opt/prometheus-setup
  • ลองเช็ค version Prometheus

prometheus --version

จะได้ผลลัพธ์ดังนี้

สร้าง service ของ Prometheus

  • สร้าง service ของ prometheus

sudo vi /etc/systemd/system/prometheus.service

จากนั้น add config ดังนี้

[Unit]
Description=Prometheus

[Service]
User=prometheus
ExecStart=/usr/bin/prometheus --config.file /etc/prometheus/prometheus.yml --storage.tsdb.path /opt/prometheus-setup/

[Install]
WantedBy=multi-user.target
  • ใช้ systemd daemon เเละ start Prometheus service

sudo systemctl daemon-reload
sudo systemctl start prometheus
sudo systemctl enable prometheus

เมื่อติดตั้ง Prometheus เสร็จเเล้วเราสามารถทดสอบใช้งานได้จากหัวข้อ Test usage

Test usage (optional)

ในหัวข้อนี้จะเป็นการทดสอบใช้งานเท่านั้น สามารถทำได้เเต่ไม่จำเป็นต้องทำก็ได้

ติดตั้ง Node Exporter

  • ใช้ wget ดาวโหลด node exporter ซึ่งควรใช้เป็น version ล่าสุด (github)

wget https://github.com/prometheus/node_exporter/releases/download/v_version_/node_exporter-{version}.linux-amd64.tar.gz
  • ใช้ tar เเตกไฟล์ node_exporter-version.linux-amd64.tar.gz เเละใช้ mv ย้ายไฟล์

tar -xvzf node_exporter-{version}.linux-amd64.tar.gz
sudo mv node_exporter-{version}.linux-amd64 node-exporter
  • ย้ายไฟล์ไปที่ /usr/bin/

sudo mv node-exporter/node_exporter /usr/bin/
  • สร้าง service node exporter

sudo vi /etc/systemd/system/node_exporter.service

จากนั้น add config ดังนี้

[Unit]
Description=Node Exporter

[Service]
User=prometheus
ExecStart=/usr/bin/node_exporter

[Install]
WantedBy=default.target
  • start node exporter service รวมถึงเช็ค status

sudo systemctl daemon-reload
sudo systemctl enable node_exporter.service
sudo systemctl start node_exporter.service

Start Prometheus Server with a new node

เข้าไปเเก้ config ของ prometheus

sudo vi /etc/prometheus/prometheus.yml

โดยใช้ config ดังนี้

# my global configuration which means it will applicable for all jobs in file
global:
  scrape_interval:     15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. scrape_interval should be provided for scraping data from exporters 
  evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. Evaluation interval checks at particular time is there any update on alerting rules or not.

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'. Here we will define our rules file path 
#rule_files:
#  - "node_rules.yml"
#  - "db_rules.yml"

# A scrape configuration containing exactly one endpoint to scrape: In the scrape config we can define our job definitions
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'node-exporter'
    # metrics_path defaults to '/metrics'
    # scheme defaults to 'http'. 

    # target are the machine on which exporter are running and exposing data at particular port.
    static_configs:
        - targets: ['localhost:9100']
  • Restart service prometheus

sudo systemctl restart prometheus
  • ใช้ browser เข้าไปดู หน้า homepage ของ Prometheus ที่ http://your_server_ip:9090 และ ดู metrics ที่มาจาก node exporter ของ Prometheus ได้ที่ http://your_server_ip:9100

CREDIT: https://iamabhishek-dubey.medium.com/prometheus-overview-and-setup-dc0ee20791fb

Last updated