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
Tổng Quan Về ELK Stack
ELK Stack là bộ công cụ bao gồm Elasticsearch, Logstash, và Kibana, được phát triển bởi Elastic, nhằm hỗ trợ quản lý dữ liệu trong môi trường DevOps.
- Elasticsearch: Công cụ tìm kiếm và phân tích dữ liệu, lưu trữ dưới dạng JSON, phù hợp để xử lý log, metric, và dữ liệu thời gian thực.
- Logstash: Công cụ thu thập và xử lý dữ liệu từ nhiều nguồn (file, hệ thống, ứng dụng), sau đó gửi đến Elasticsearch.
- Kibana: Giao diện web để trực quan hóa dữ liệu từ Elasticsearch, tạo dashboard và biểu đồ.
ELK Stack được sử dụng rộng rãi trong DevOps để giám sát hệ thống, phân tích log, và hỗ trợ triển khai ứng dụng. Theo báo cáo từ Elastic 2024, hơn 60% doanh nghiệp sử dụng ELK Stack để tối ưu hóa vận hành, minh chứng cho sức mạnh của bộ công cụ này.
Yêu Cầu Trước Khi Cài Đặt
- Máy tính chạy Ubuntu 20.04 (hoặc tương tự), ít nhất 4GB RAM.
- Cài Java (yêu cầu cho Elasticsearch và Logstash):
sudo apt install openjdk-17-jdk
. - Kết nối internet để tải gói cài đặt.
Hướng Dẫn Cài Đặt ELK Stack
Bước 1: Cài Đặt Elasticsearch
- Tải và cài đặt khóa GPG của Elastic:
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
- Thêm repository Elastic:
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
- Cài đặt Elasticsearch:
sudo apt update sudo apt install elasticsearch -y
- Khởi động và kiểm tra:
sudo systemctl start elasticsearch sudo systemctl enable elasticsearch curl -X GET "localhost:9200"
Nếu thấy JSON với thông tin phiên bản (VD:
version.number: "8.12.0"
), Elasticsearch đã chạy.
Bước 2: Cài Đặt Logstash
- Cài đặt Logstash từ cùng repository:
sudo apt install logstash -y
- Khởi động dịch vụ:
sudo systemctl start logstash sudo systemctl enable logstash
Bước 3: Cài Đặt Kibana
- Cài đặt Kibana:
sudo apt install kibana -y
- Khởi động và kiểm tra:
sudo systemctl start kibana sudo systemctl enable kibana
Cấu Hình Cơ Bản ELK Stack
Để các thành phần của ELK Stack hoạt động cùng nhau, cần cấu hình kết nối giữa chúng.
Cấu Hình Elasticsearch
Mặc định, Elasticsearch chạy trên localhost:9200
. Đảm bảo file cấu hình /etc/elasticsearch/elasticsearch.yml
cho phép truy cập:
network.host: 0.0.0.0
http.port: 9200
Khởi động lại Elasticsearch:
sudo systemctl restart elasticsearch
Cấu Hình Kibana
Chỉnh sửa file /etc/kibana/kibana.yml
để kết nối với Elasticsearch và cho phép truy cập từ trình duyệt:
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
Khởi động lại Kibana:
sudo systemctl restart kibana
Truy cập http://your-server-ip:5601
trên trình duyệt. Nếu thấy giao diện Kibana, bạn đã thành công.
Cấu Hình Logstash
Tạo file cấu hình cơ bản cho Logstash tại /etc/logstash/conf.d/test-pipeline.conf
:
input {
stdin { }
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "test-index"
}
stdout { codec => rubydebug }
}
Khởi động lại Logstash:
sudo systemctl restart logstash
Cấu hình này cho phép Logstash nhận dữ liệu từ input (ở đây là stdin) và gửi đến Elasticsearch.
Bảng So Sánh Vai Trò Của ELK Stack Trong DevOps
Công Cụ | Vai Trò | Đầu Vào | Đầu Ra |
---|---|---|---|
Elasticsearch | Lưu trữ, tìm kiếm, phân tích | Dữ liệu từ Logstash | Dữ liệu JSON cho Kibana |
Logstash | Thu thập, xử lý dữ liệu | Log file, API, database | Dữ liệu gửi đến ES |
Kibana | Trực quan hóa, báo cáo | Dữ liệu từ Elasticsearch | Dashboard, biểu đồ |

Kiểm Tra Hoạt Động Của ELK Stack
-
Gửi dữ liệu thử qua Logstash: Chạy Logstash với pipeline vừa tạo:
sudo /usr/share/logstash/bin/logstash -f /etc/logstash/conf.d/test-pipeline.conf
Gõ “Hello ELK Stack” vào terminal và nhấn Enter. Logstash sẽ gửi dữ liệu này đến Elasticsearch.
-
Kiểm tra dữ liệu trong Elasticsearch:
curl -X GET "localhost:9200/test-index/_search?pretty"
Bạn sẽ thấy JSON chứa “Hello ELK Stack” trong phần
hits
. -
Xem trên Kibana:
- Truy cập Kibana tại
http://your-server-ip:5601
. - Vào Management > Stack Management > Index Patterns, tạo pattern cho
test-index*
. - Vào Discover để xem dữ liệu vừa thêm.
- Truy cập Kibana tại
Lợi Ích Khi Sử Dụng ELK Stack
- Quản lý tập trung: Thu thập và phân tích log từ nhiều nguồn trong một hệ thống.
- Thời gian thực: Phát hiện sự cố nhanh chóng, giảm downtime.
- Khả năng mở rộng: Phù hợp từ dự án nhỏ đến hệ thống lớn.
Thực Hành
Cài đặt và cấu hình ELK Stack trên máy local hoặc cloud instance (AWS EC2, GCP). Thử gửi dữ liệu qua Logstash và kiểm tra trên Kibana như hướng dẫn. 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ẽ khám phá Logstash chi tiết hơn – hẹn gặp bạn!