Monitor linux server với Prometheus node exporter

Bài viết này là phần 11 trong 14 phần của serie bài viết Cài đặt Prometheus và Grafana trên Ubuntu 18

ToiVietBlog - Bài viết này, ta sẽ monitor linux server với Prometheus node exporter. Nếu các bạn đã cài đặt blackbox exporter trước đây thì bài viết này sẽ có khác một chút.

Với blackbox exporter thì bạn cài đặt nó ngay trên server prometheus được. Nhưng với node exporter thì bạn phải cài đặt nó trên server Linux cần monitor. Node exporter ở đây giống như một agent monitor.

Cài đặt Prometheus node exporter

Đầu tiên, bạn check version mới nhất của node exporter tại link này. Tại thời điểm bài viết, phiên bản mới nhất là 1.0.1.

Ta tải và giải nén gói cài đặt.

wget https://github.com/prometheus/node_exporter/releases/download/v1.0.1/node_exporter-1.0.1.linux-amd64.tar.gz
tar -xzf node_exporter-1.0.1.linux-amd64.tar.gz && rm -f node_exporter-1.0.1.linux-amd64.tar.gz
cd node_exporter-1.0.1.linux-amd64

Chuyển file thực thi binary vào thư mục local bin.

mv node_exporter /usr/local/bin/
cd .. && rm -rf node_exporter-1.0.1.linux-amd64

Tạo user cho dịch vụ node exporter.

useradd -rs /bin/false node_exporter
chown node_exporter:node_exporter /usr/local/bin/node_exporter

Tạo file systemd cho dịch vụ node exporter.

nano /etc/systemd/system/node_exporter.service

Copy nội dung dưới đây vào file.

[Unit]
Description=Node Exporter
Wants=network-online.target
After=network-online.target

[Service]
Type=simple
User=node_exporter
Group=node_exporter
ExecReload=/bin/kill -HUP $MAINPID
ExecStart=/usr/local/bin/node_exporter

SyslogIdentifier=node_exporter
Restart=always

[Install]
WantedBy=default.target

Reload daemon và khởi động dịch vụ node exporter.

systemctl daemon-reload
systemctl start node_exporter
systemctl enable node_exporter

Dịch vụ node_exporter sau khi khởi động sẽ chạy ở cổng 9100.

Với những ai lười, bạn có thể tải script cài đặt node exporter mình đã viết để cài đặt cho nhanh.

Thiết lập cấu hình Prometheus

Bây giờ, ta sẽ thiết lập prometheus gọi đến các target node_exporter trên các server Linux.

Mở file cấu hình prometheus.

nano /etc/prometheus/prometheus.yml

Bạn thêm vào file đoạn dưới đây.

  - job_name: 'node_exporter'
    scrape_interval: 5s
    static_configs:
    - targets:
      - hostname-linux:9100

Bạn thay hostname-linux bằng địa chỉ IP hoặc DNS name của server Linux mà bạn cần monitor.

Tiếp theo, bạn tìm đến đoạn như dưới và thêm đường dẫn file rule cho linux server.

# Load rules once and periodically evaluate them according to the global 'evaluation_interval'.
rule_files:
  # - "first_rules.yml"
  # - "second_rules.yml"
    - "/etc/prometheus/rules/linux.yml"

Warning: bạn cần mở firewall cho phép server prometheus truy cập đến port 9100 trên server linux cần monitor

Thiết lập rule alert trong prometheus

Nếu bạn chưa biết cách thiết lập rule thì bạn nên tham khảo bài viết về blackbox exporter của mình.

Bạn tạo một file rule chứa các cảnh báo cần thiết cho server Linux.

nano /etc/prometheus/rules/linux.yml

Sau đó bạn tạo các rule, mình ví dụ 1 alert như dưới đây. Alert này sẽ xác định dịch vụ node_exporter trên server linux target không hoạt động. Qua đó, alert gửi thông báo cho ta biết host down.

Bạn có thể tải file rule hoàn chỉnh cho server Linux tại link gitlab này.

groups:
- name: Linux Server
  rules:
  - alert: Server Linux Down
    expr: up{job="node_exporter"} == 0
    for: 10s
    labels:
      severity: "Critical"
    annotations:
      Summary: 'Server "{{ $labels.instance }}" down.'

Sau khi đã thiết lập prometheus xong, bạn reload dịch vụ.

systemctl reload prometheus

Thiết lập dashboard Grafana

Dashboard Grafana mình đang sử dụng bản ID 11074. Bạn có thể import ID trực tiếp từ Grafana.

monitor-linux-server-voi-prometheus-node-exporter Monitor linux server với Prometheus node exporter
Dashboard monitor linux server với prometheus node exporter.

Hoặc download và import json từ dashboard mà mình đã lưu.

Kết luận

Vậy là bạn đã hoàn thành các bước để thiết lập monitor server Linux với Prometheus node exporter. Công cụ này khá hữu hiệu, nó đẩy gần như là đầy đủ thông tin resource server Linux.

Tiếp tục đọc serie bài viết«« Phần trước: Cách xóa target cũ trong database PrometheusPhần tiếp theo: Monitor windows server với Prometheus wmi_exporter »»
0 0 votes
Article Rating
Nhấn vào đây để đánh giá bài này!
[Tổng: 0 - Trung bình: 0]

If you appreciate what we share in this blog, you can support us by:
  1. Stay connected to: Facebook | Twitter | Google Plus | YouTube
  2. Subscribe email to recieve new posts from us: Sign up now.
  3. Start your own blog with SSD VPS - Free Let's Encrypt SSL ($2.5/month).
  4. Become a Supporter - Make a contribution via PayPal.
  5. Support us by purchasing Ribbon Lite Child theme being using on this website.

We are thankful for your support.

«« »»
Theo dõi
Thông báo về
guest
1 Comment
cũ nhất
mới nhất được bình chọn nhiều nhất
Inline Feedbacks
View all comments
truong hong minh
truong hong minh
06/03/2021 11:40

thank bạn nhiều tìm nhiều nguồn lắm mới ra được bạn