Danh sách bài viết trong series Làm Chủ ELK Stack
- Bài 1: ELK Stack Là Gì? Cài Đặt Và Cấu Hình Cơ Bản
- Bài 2: Thu Thập Dữ Liệu Với Logstash
- Bài 3: Tìm Kiếm Và Phân Tích Dữ Liệu Với Elasticsearch
- Bài 4: Trực Quan Hóa Dữ Liệu Với Kibana
- Bài 5: Giám Sát Hệ Thống Với ELK Stack Trong DevOps
- Bài 6: Bảo Mật Và Tối Ưu ELK Stack
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.

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ênhttp://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.
-
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
-
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.
-
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
- Vào Kibana (
http://your-server-ip:5601
). - 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.
- Lệnh này tạo index pattern
- Vào Dashboard, chọn dashboard có tên như “[Metricbeat System] Overview”.
- 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):
- Vào Stack Management > Alerts and Insights > Rules.
- Tạo rule:
- Điều kiện: CPU usage > 80% trong 5 phút.
- Hành động: Gửi email hoặc Slack notification.
- 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
- Cài Metricbeat và cấu hình thu thập metric CPU, RAM từ máy local.
- Tạo dashboard trong Kibana kết hợp metric từ Metricbeat và log từ
my-app-log
. - 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!