Bài 5: Giám Sát Hệ Thống Với ELK Stack Trong DevOps

Giới Thiệu Về Giám Sát Với ELK Stack

Trong DevOps, giám sát hệ thống là yếu tố cốt lõi để đảm bảo ứng dụng hoạt động ổn định và phát hiện sự cố kịp thời. ELK Stack, với sự kết hợp của Elasticsearch, Logstash, và Kibana, không chỉ xử lý log mà còn hỗ trợ thu thập metric, theo dõi hiệu suất, và tạo cảnh báo. Ở bài trước, bạn đã học cách trực quan hóa dữ liệu với Kibana. Bây giờ, chúng ta sẽ đi sâu vào việc tích hợp ELK Stack để giám sát hệ thống, sử dụng các công cụ mở rộng như Metricbeat, và xây dựng quy trình giám sát hiệu quả trong DevOps.

elk-tls-docker-diagram

Yêu Cầu Trước Khi Bắt Đầu

  • Đã cài đặt và cấu hình ELK Stack (Bài 1), Logstash gửi log (Bài 2), Elasticsearch xử lý dữ liệu (Bài 3), và Kibana có dashboard (Bài 4).
  • Elasticsearch chạy trên localhost:9200, Kibana trên http://your-server-ip:5601.
  • Một ứng dụng hoặc máy chủ để giám sát (VD: máy local hoặc cloud instance).

Hướng Dẫn Giám Sát Hệ Thống Với ELK Stack

Bước 1: Cài Đặt Metricbeat Để Thu Thập Metric

Metricbeat là một lightweight shipper của Elastic, thu thập metric từ hệ thống (CPU, RAM, disk) và gửi đến Elasticsearch.

  1. Tải Metricbeat:

    wget https://artifacts.elastic.co/downloads/beats/metricbeat/metricbeat-8.12.0-amd64.deb
    sudo dpkg -i metricbeat-8.12.0-amd64.deb
  2. Cấu hình Metricbeat trong file /etc/metricbeat/metricbeat.yml:

    setup.kibana:
     host: "http://localhost:5601"
    output.elasticsearch:
     hosts: ["http://localhost:9200"]
    metricbeat.modules:
     - module: system
       metricsets: ["cpu", "memory", "filesystem"]
       period: 10s
       enabled: true
    • setup.kibana: Kết nối với Kibana để tạo dashboard mặc định.
    • metricbeat.modules: Thu thập metric CPU, RAM, và filesystem mỗi 10 giây.
  3. Khởi động Metricbeat:

    sudo systemctl enable metricbeat
    sudo systemctl start metricbeat

Bước 2: Xác Minh Dữ Liệu Metric Trong Elasticsearch

Kiểm tra index Metricbeat tạo:

curl -X GET "localhost:9200/metricbeat-*/_search?pretty"

Bạn sẽ thấy dữ liệu JSON với các trường như system.cpu.total.pct hoặc system.memory.used.bytes. Nếu có dữ liệu, Metricbeat đã gửi metric thành công.

Bước 3: Tích Hợp Dashboard Trong Kibana

  1. Vào Kibana (http://your-server-ip:5601).
  2. Chạy lệnh để tải dashboard Metricbeat:
    sudo metricbeat setup -e
    • Lệnh này tạo index pattern metricbeat-* và import dashboard mặc định.
  3. Vào Dashboard, chọn dashboard có tên như “[Metricbeat System] Overview”.
  4. Bạn sẽ thấy biểu đồ CPU usage, RAM usage, và disk space theo thời gian thực.

Bước 4: Tích Hợp Log Và Metric Để Giám Sát Toàn Diện

Kết hợp log từ Logstash (Bài 2) và metric từ Metricbeat:

  • Vào Discover, thêm index pattern metricbeat-*,my-app-log*.
  • Tạo dashboard mới, thêm:
    • Biểu đồ Bar từ Metricbeat (VD: CPU usage).
    • Biểu đồ Line từ my-app-log (log theo thời gian).
  • Lưu dashboard với tên (VD: “System and Log Monitoring”).

Bước 5: Cấu Hình Cảnh Báo (Tùy Chọn)

Sử dụng Watcher hoặc Elastic Alerts (cần X-Pack):

  1. Vào Stack Management > Alerts and Insights > Rules.
  2. Tạo rule:
    • Điều kiện: CPU usage > 80% trong 5 phút.
    • Hành động: Gửi email hoặc Slack notification.
  3. Kích hoạt rule và thử tạo tải nặng (VD: chạy stress trên Ubuntu) để kiểm tra.

Bảng So Sánh Các Công Cụ Giám Sát Trong ELK Stack

Công Cụ Mô Tả Dữ Liệu Thu Thập Ưu Điểm Nhược Điểm
Logstash Thu thập và xử lý log Log file, ứng dụng Linh hoạt, đa nguồn Tốn tài nguyên
Metricbeat Thu thập metric hệ thống CPU, RAM, disk Nhẹ, thời gian thực Hạn chế với log
Filebeat Thu thập log nhẹ Log file Nhanh, ít tốn tài nguyên Không xử lý dữ liệu
Heartbeats Giám sát uptime dịch vụ Trạng thái dịch vụ Dễ triển khai Chỉ đo uptime

Mẹo Tối Ưu Hóa Giám Sát

  • Chọn Module Phù Hợp: Chỉ kích hoạt module Metricbeat cần thiết (VD: system, nginx) để giảm tải.
  • Định Kỳ Thu Thập: Điều chỉnh period trong Metricbeat (VD: 30s) dựa trên nhu cầu.
  • Lưu Dashboard: Sao lưu dashboard qua Export để khôi phục khi cần.

Lợi Ích Khi Giám Sát Với ELK Stack Trong DevOps

  • Phát Hiện Sự Cố Nhanh: Theo dõi metric và log cùng lúc, giảm thời gian downtime.
  • Tối Ưu Hiệu Suất: Điều chỉnh tài nguyên dựa trên dữ liệu thực tế.
  • Hỗ Trợ Quy Trình: Tích hợp với CI/CD để giám sát tự động.

Thực Hành

  1. Cài Metricbeat và cấu hình thu thập metric CPU, RAM từ máy local.
  2. Tạo dashboard trong Kibana kết hợp metric từ Metricbeat và log từ my-app-log.
  3. Thử tạo tải nặng (VD: stress --cpu 8) và kiểm tra dashboard. Nếu gặp vấn đề, nhắn mình để cùng giải quyết. Bài tiếp theo, chúng ta sẽ học cách bảo mật và tối ưu ELK Stack – hẹn gặp bạn!
Điều hướng chuỗi bài viết<< Bài 4: Trực Quan Hóa Dữ Liệu Với Kibana
>> Bài 6: Bảo Mật Và Tối Ưu ELK Stack
Chia sẻ bài viết:
Theo dõi
Thông báo của
0 Góp ý
Được bỏ phiếu nhiều nhất
Mới nhất Cũ nhất
Phản hồi nội tuyến
Xem tất cả bình luận