Danh sách bài viết trong series Làm Chủ ELK Stack
Giới Thiệu Về Bảo Mật Và Tối Ưu ELK Stack
ELK Stack là một hệ thống mạnh mẽ trong DevOps, nhưng nếu không được bảo mật và tối ưu hóa, nó có thể trở thành điểm yếu, dễ bị tấn công hoặc hoạt động kém hiệu quả. Bảo mật giúp bảo vệ dữ liệu log nhạy cảm, trong khi tối ưu hóa đảm bảo hiệu suất cao và khả năng mở rộng. Ở bài trước, bạn đã học cách giám sát hệ thống với ELK Stack. Bây giờ, chúng ta sẽ tập trung vào cách bảo mật cụm ELK, tối ưu tài nguyên, và mở rộng quy mô để đảm bảo hệ thống vận hành bền vững trong môi trường sản xuất.
Yêu Cầu Trước Khi Bắt Đầu
- Đã cài đặt và cấu hình ELK Stack (Bài 1), Logstash (Bài 2), Elasticsearch (Bài 3), Kibana (Bài 4), và giám sát hệ thống (Bài 5).
- Elasticsearch chạy trên
localhost:9200
, Kibana trênhttp://your-server-ip:5601
. - Quyền truy cập terminal với sudo trên Ubuntu 20.04 (hoặc tương tự).
Hướng Dẫn Bảo Mật Và Tối Ưu ELK Stack
Bước 1: Kích Hoạt Bảo Mật Với X-Pack
X-Pack (nay tích hợp sẵn trong Elastic Stack) cung cấp tính năng bảo mật cho ELK Stack.
-
Kích hoạt X-Pack trong Elasticsearch:
- Chỉnh file
/etc/elasticsearch/elasticsearch.yml
:xpack.security.enabled: true
- Tạo mật khẩu cho user mặc định:
sudo /usr/share/elasticsearch/bin/elasticsearch-setup-passwords auto
Lưu lại mật khẩu của user
elastic
(VD:elastic:abc123
).
- Chỉnh file
-
Kích hoạt X-Pack trong Kibana:
- Chỉnh file
/etc/kibana/kibana.yml
:elasticsearch.username: "elastic" elasticsearch.password: "abc123"
- Khởi động lại:
sudo systemctl restart elasticsearch sudo systemctl restart kibana
- Chỉnh file
-
Đăng nhập Kibana với user
elastic
và mật khẩu vừa tạo.
Bước 2: Cấu Hình TLS Để Mã Hóa Giao Tiếp
-
Tạo chứng chỉ tự ký (self-signed) cho Elasticsearch:
sudo /usr/share/elasticsearch/bin/elasticsearch-certutil ca sudo /usr/share/elasticsearch/bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
- Di chuyển file chứng chỉ đến
/etc/elasticsearch/
:sudo mv elastic-stack-ca.p12 elastic-certificates.p12 /etc/elasticsearch/ sudo chmod 660 /etc/elasticsearch/*.p12 sudo chown elasticsearch:elasticsearch /etc/elasticsearch/*.p12
- Di chuyển file chứng chỉ đến
-
Cấu hình TLS trong
/etc/elasticsearch/elasticsearch.yml
:xpack.security.http.ssl: enabled: true key: /etc/elasticsearch/elastic-certificates.p12 certificate: /etc/elasticsearch/elastic-certificates.p12 certificate_authorities: /etc/elasticsearch/elastic-stack-ca.p12 xpack.security.transport.ssl: enabled: true key: /etc/elasticsearch/elastic-certificates.p12 certificate: /etc/elasticsearch/elastic-certificates.p12 certificate_authorities: /etc/elasticsearch/elastic-stack-ca.p12
-
Cập nhật Kibana (
/etc/kibana/kibana.yml
):elasticsearch.ssl.verificationMode: none elasticsearch.ssl.certificateAuthorities: /etc/elasticsearch/elastic-stack-ca.p12
-
Khởi động lại dịch vụ:
sudo systemctl restart elasticsearch sudo systemctl restart kibana
Bước 3: Tối Ưu Hiệu Suất Cụm Elasticsearch
-
Cấu Hình Heap Size:
- Chỉnh file
/etc/elasticsearch/jvm.options
:-Xms2g -Xmx2g
- Đặt heap size tối đa 50% RAM (VD: 2GB nếu máy có 4GB RAM).
- Khởi động lại Elasticsearch.
- Chỉnh file
-
Quản Lý Shard Và Replica:
- Giới hạn số shard trên mỗi index:
curl -X PUT "localhost:9200/my-app-log/_settings" -H 'Content-Type: application/json' -u elastic:abc123 -k -d ' { "index.number_of_shards": 1, "index.number_of_replicas": 1 }'
- Giới hạn số shard trên mỗi index:
-
Xóa Dữ Liệu Cũ:
- Sử dụng Index Lifecycle Management (ILM) để tự động xóa index cũ:
curl -X PUT "localhost:9200/_ilm/policy/delete_old_logs" -H 'Content-Type: application/json' -u elastic:abc123 -k -d ' { "policy": { "phases": { "delete": { "min_age": "30d", "actions": { "delete": {} } } } } }'
- Áp dụng policy cho index:
curl -X PUT "localhost:9200/my-app-log/_settings" -H 'Content-Type: application/json' -u elastic:abc123 -k -d ' { "index.lifecycle.name": "delete_old_logs" }'
- Sử dụng Index Lifecycle Management (ILM) để tự động xóa index cũ:
Bước 4: Mở Rộng Quy Mô Cụm
- Thêm node mới vào cụm:
- Cài Elasticsearch trên máy mới, cấu hình
/etc/elasticsearch/elasticsearch.yml
:cluster.name: my-cluster node.name: node-2 discovery.seed_hosts: ["node-1-ip"] cluster.initial_master_nodes: ["node-1-ip"]
- Khởi động node mới và kiểm tra:
curl -X GET "node-2-ip:9200/_cluster/health?pretty" -u elastic:abc123 -k
- Cài Elasticsearch trên máy mới, cấu hình
- Kiểm tra trạng thái cụm:
- Đảm bảo số node tăng lên (VD:
number_of_nodes: 2
).
- Đảm bảo số node tăng lên (VD:
Bảng So Sánh Các Phương Pháp Tối Ưu Hiệu Suất
Phương Pháp | Mô Tả | Ứng Dụng | Ưu Điểm | Nhược Điểm |
---|---|---|---|---|
Heap Size | Điều chỉnh bộ nhớ JVM | Cụm xử lý nhiều truy vấn | Tăng hiệu suất | Cần RAM lớn |
Shard Management | Giảm số shard/replica | Index lớn | Giảm tải tài nguyên | Giảm tính dự phòng |
ILM | Tự động xóa index cũ | Log dài hạn | Tiết kiệm dung lượng | Cần cấu hình chính xác |
Thêm Node | Mở rộng cụm | Tải cao, dữ liệu lớn | Tăng khả năng mở rộng | Tăng chi phí vận hành |
Lợi Ích Khi Bảo Mật Và Tối Ưu ELK Stack
- Bảo Vệ Dữ Liệu: Ngăn chặn truy cập trái phép vào log nhạy cảm.
- Hiệu Suất Cao: Giảm thời gian phản hồi, tăng khả năng xử lý.
- Mở Rộng Linh Hoạt: Đáp ứng nhu cầu tăng trưởng của hệ thống.
Thực Hành
- Kích hoạt X-Pack và kiểm tra đăng nhập Kibana với user
elastic
. - Cấu hình TLS và truy cập Kibana qua HTTPS.
- Áp dụng ILM để xóa index cũ sau 7 ngày. Nếu gặp vấn đề, nhắn mình để cùng giải quyết.
Lời Kết Cho Series
Chúc mừng bạn đã hoàn thành series Hành Trình Làm Chủ ELK Stack Cho DevOps! Từ cài đặt (Bài 1), thu thập log với Logstash (Bài 2), tìm kiếm với Elasticsearch (Bài 3), trực quan hóa với Kibana (Bài 4), giám sát hệ thống (Bài 5), đến bảo mật và tối ưu (Bài 6), bạn đã nắm vững ELK Stack. Đây là nền tảng để bạn triển khai giám sát hiệu quả trong DevOps. Nếu muốn học sâu hơn (VD: ELK với Kubernetes, Filebeat nâng cao), cứ bảo mình – mình sẵn sàng mở series mới! Cảm ơn bạn đã đồng hành – chúc bạn thành công!