Monitoring

Install Node Exporter
Tạo một người dùng hệ thống cho Node Exporter bằng cách chạy lệnh sau:
sudo useradd \
--system \
--no-create-home \
--shell /bin/false node_exporter
Tải file binary NodeExporter bằng wget
:
wget https://github.com/prometheus/node_exporter/releases/download/v1.6.1/node_exporter-1.6.1.linux-amd64.tar.gz
Giải nén file vừa tải:
tar -xvf node_exporter-1.6.1.linux-amd64.tar.gz
Di chuyển file vào /usr/local/bin
:
Tiếp theo, tạo một file service system:
sudo vim /etc/systemd/system/node_exporter.service
với nội dung sau:
[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target
StartLimitIntervalSec=500
StartLimitBurst=5
[Service]
User=node_exporter
Group=node_exporter
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/node_exporter \
--collector.logind
[Install]
WantedBy=multi-user.target
Để tự động start NodeExporter mỗi khi khởi động lại hệ thống, dùng lệnh:
sudo systemctl enable node_exporter
Tiếp đến chạy service:
sudo systemctl start node_exporter
sudo systemctl status node_exporter
Install Prometheus
Tạo một người dùng hệ thống cho Prometheus bằng cách chạy lệnh sau:
sudo useradd \
--system \
--no-create-home \
--shell /bin/false prometheus
Tải file binary Prometheus bằng wget
:
wget https://github.com/prometheus/prometheus/releases/download/v2.47.1/prometheus-2.47.1.linux-amd64.tar.gz
Giải nén file:
tar -xvf prometheus-2.47.1.linux-amd64.tar.gz
Chuyển thư mục prometheus
vào /usr/local/bin
:
cd prometheus-2.47.1.linux-amd64/
sudo mv prometheus promtool /usr/local/bin/
Phiên bản của prometheus:
Tạo service prometheus:
sudo vim /etc/systemd/system/prometheus.service
[Unit]
Description=Prometheus
Wants=network-online.target
After=network-online.target
StartLimitIntervalSec=500
StartLimitBurst=5
[Service]
User=prometheus
Group=prometheus
Type=simple
Restart=on-failure
RestartSec=5s
ExecStart=/usr/local/bin/prometheus \
--config.file=/etc/prometheus/prometheus.yml \
--storage.tsdb.path=/data \
--web.console.templates=/etc/prometheus/consoles \
--web.console.libraries=/etc/prometheus/console_libraries \
--web.listen-address=0.0.0.0:9090 \
--web.enable-lifecycle
[Install]
WantedBy=multi-user.target
Để tự động chạy prometheus mỗi khi server khởi động lại, dùng lệnh:
sudo systemctl enable prometheus
Tiếp đến chạy service:
sudo systemctl start prometheus
sudo systemctl status prometheus
Truy cập vào Prometheus: <public_ip:9090>
Thêm NodeExporter vào Prometheus:
sudo vim /etc/prometheus/prometheus.yml
- job_name: node_export
static_configs:
- targets: ["localhost:9100"]
Kiểm tra config prometheus :
promtool check config /etc/prometheus/prometheus.yml
Load lại config prometheus:
curl -X POST http://localhost:9090/-/reload
Kiểm tra phần Targets trên prometheus <public_ip:9090/targets
:
Install Grafana
Đảm bảo các dependency đã được cài đặt:
sudo apt-get install -y apt-transport-https software-properties-common
Thêm GPG key:
wget -q -O - https://packages.grafana.com/gpg.key | sudo apt-key add -
Thêm repository:
echo "deb https://packages.grafana.com/oss/deb stable main" | sudo tee -a /etc/apt/sources.list.d/grafana.list
Sau đó update và cài đặt Grafana:
sudo apt-get update
sudo apt-get -y install grafana
Enable service grafana:
sudo systemctl enable grafana-server
Start service grafana:
sudo systemctl start grafana-server
sudo systemctl status grafana-server
Truy cập vào dashboard grafana <public_ip:3000>
:
admin:admin
Thêm DataSource mới:
Chọn Prometheus:
Nhập url của prometheus:
Tiếp đến import DashBoard dùng cho prometheus 1860:
Chọn prometheus của datasource vừa tạo :
Kết quả đạt được:
Cài đặt nginx chạy ứng dụng reactjs
Cài đặt nginx:
sudo apt update
sudo apt install nginx
Khởi động Nginx và đảm bảo Nginx tự khởi động cùng hệ thống:
sudo systemctl start nginx
sudo systemctl enable nginx
Chạy nginx thành công:
Pull code của 1 project reactjs về:
git clone https://github.com/HoangPhan10/Tetris-v2.git
Tải các dependency:
npm i
Build project:
npm run build
Copy các tệp build vào thư mục Nginx:
sudo cp -r build/* /var/www/html
Khởi động lại nginx:
sudo systemctl restart nginx
Install Loki binary
Download binary:
cd /usr/local/bin
curl -O -L "https://github.com/grafana/loki/releases/download/v3.4.1/loki-linux-amd64.zip"
Cài đặt unzip
:
apt install unzip
Giải nén file:
unzip loki-linux-amd64.zip
Tải file cấu hình Loki:
wget https://raw.githubusercontent.com/grafana/loki/refs/heads/main/cmd/loki/loki-local-config.yaml
Tạo user chạy service Loki:
useradd --system loki
Tạo file loki.service
:
vim /etc/systemd/system/loki.service
[Unit]
Description=Loki service
After=network.target
[Service]
Type=simple
User=loki
ExecStart=/usr/local/bin/loki-linux-amd64 -config.file /usr/local/bin/loki-local-config.yaml
[Install]
WantedBy=multi-user.target
Start và kiểm tra trạng thái service Loki:
service loki start
service loki status
systemctl enable loki.service
Install Promtail Binary
Download binary:
cd /usr/local/bin
curl -O -L "https://github.com/grafana/loki/releases/download/v3.4.1/promtail-linux-amd64.zip"
Giải nén file zip:
Copy
unzip "promtail-linux-amd64.zip"
Tải cấu hình Promtail:
wget https://raw.githubusercontent.com/grafana/loki/refs/heads/main/clients/cmd/promtail/promtail-local-config.yaml
Chỉnh cấu hình để theo dõi log của nginx:
Tạo user chạy service Promtail:
useradd --system promtail
Tạo file promtail.service
:
vim /etc/systemd/system/promtail.service
[Unit]
Description=Promtail service
After=network.target
[Service]
Type=simple
User=promtail
ExecStart=/usr/local/bin/promtail-linux-amd64 -config.file /usr/local/bin/promtail-local-config.yaml
[Install]
WantedBy=multi-user.target
Start và kiểm tra trạng thái service Loki:
service promtail start
service promtail status
systemctl enable promtail.service
Hiện tại thì user promtail
đang thuộc group promtail
vì thế sẽ không có quyền đọc các logs của hệ thống.
Thêm user promtail
vào group adm
:
usermod -a -G adm promtail
Khởi động lại Promtail và kiểm tra trạng thái:
service promtail restart
service promtail status
Create Dashboard Loki
Thêm data source loki
:
Nhập connection
:
Chọn Explore rồi chọn vào Loki:
Truy vấn trên Grafana:
Hiện thị log:
Subscribe to my newsletter
Read articles from Phan Văn Hoàng directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
