Public API What is NCS Public API ? Getting Start with NCS Public API Auto-scaling OpenStack Instances with Senlin and Prometheus Installation Prometheus การติดตั้ง Prometheus จะติดตั้งที่ environment ที่เราได้สร้างไว้ตอนติดตั้ง senlin client กับ Octavia client
สร้าง directory ใหม่ที่ path /opt/prometheus-setup เพื่อเก็บ file ที่ดาวน์โหลดมา
Copy sudo mkdir /opt/prometheus-setup
cd /opt/prometheus-setup
สร้าง User ชื่อ prometheus
Copy sudo useradd prometheus
ใช้ wget ดาวน์โหลด Prometheus server จาก Github ซึ่งควรใช้เป็น version ล่าสุด (ตรง {version} ให้ใส่ version ล่าสุดลงไป)
Copy wget https://github.com/prometheus/prometheus/releases/download/v_version_/prometheus-{version}.linux-amd64.tar.gz
ใช้ tar เเตกไฟล์ prometheus-{version}.linux-amd64.tar.gz
Copy tar -xvzf prometheus-{version}.linux-amd64.tar.gz
เพิ่มไฟล์ที่เเตกออกมาลงใน path เพื่อให้สามารถเข้าถึงได้ง่าย และ เปลี่ยนการจัดการในไฟล์เเละไดเรกทอรี กับ user prometheus
Copy 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
จะได้ผลลัพธ์ดังนี้
สร้าง service ของ Prometheus
สร้าง service ของ prometheus
Copy sudo vi /etc/systemd/system/prometheus.service
จากนั้น add config ดังนี้
Copy [ 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
Copy 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 )
Copy 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 ย้ายไฟล์
Copy tar -xvzf node_exporter-{version}.linux-amd64.tar.gz
sudo mv node_exporter-{version}.linux-amd64 node-exporter
Copy sudo mv node-exporter/node_exporter /usr/bin/
สร้าง service node exporter
Copy sudo vi /etc/systemd/system/node_exporter.service
จากนั้น add config ดังนี้
Copy [ Unit ]
Description=Node Exporter
[ Service ]
User=prometheus
ExecStart=/usr/bin/node_exporter
[ Install ]
WantedBy=default.target
start node exporter service รวมถึงเช็ค status
Copy 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
Copy sudo vi /etc/prometheus/prometheus.yml
โดยใช้ config ดังนี้
Copy # 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
Copy 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 3 months ago