Hướng dẫn sử dụng ELK Stack: Kibana, Logstash & Elasticsearch
⚡ Tóm tắt thông minh
ELK Stack kết hợp ba công cụ mã nguồn mở — Elasticsearch, Logstashvà Kibana — để thu thập, lưu trữ, tìm kiếm và trực quan hóa dữ liệu máy móc, cung cấp cho các nhóm kỹ thuật khả năng ghi nhật ký tập trung và phân tích thời gian thực để khắc phục sự cố nhanh hơn trên các máy chủ và ứng dụng.

ELK Stack là một trong những giải pháp mã nguồn mở được sử dụng rộng rãi nhất cho việc ghi nhật ký tập trung và phân tích nhật ký. Hướng dẫn về ELK Stack này giải thích Elasticsearch là gì, LogstashKibana là gì, cách ba công cụ này kết hợp với nhau và nền tảng này được sử dụng trong công việc giám sát và quan sát thực tế như thế nào.
Ngăn xếp ELK là gì?
Ngăn xếp ELK là tập hợp ba sản phẩm nguồn mở - Elaticsearch, Logstashvà Kibana. Nó cung cấp tính năng ghi nhật ký tập trung giúp bạn xác định sự cố với máy chủ hoặc ứng dụng bằng cách cho phép bạn tìm kiếm tất cả nhật ký của mình ở một nơi duy nhất. Nó cũng giúp bạn đối chiếu nhật ký trên nhiều máy chủ trong một khung thời gian cụ thể.
- E Elasticsearch là viết tắt của Elasticsearch: được sử dụng để lưu trữ nhật ký.
- L là viết tắt của Logstash: dùng cho tàuping, xử lý và lưu trữ nhật ký.
- K viết tắt của Kibana: a công cụ trực quan (một giao diện web) được lưu trữ thông qua Nginx hoặc Apache.
Elasticsearch, Logstashvà Kibana đều được phát triển, quản lý và bảo trì bởi một công ty có tên là Dây cao su.
Nhìn chung, bộ công cụ ELK Stack được thiết kế để cho phép người dùng lấy dữ liệu từ bất kỳ nguồn nào, ở bất kỳ định dạng nào, sau đó tìm kiếm, phân tích và trực quan hóa dữ liệu đó trong thời gian thực.
Ngăn xếp ELK Archikiến trúc
Giờ bạn đã hiểu về "ngăn xếp" (stack), phần này sẽ giải thích kiến trúc ELK và cách dữ liệu luân chuyển giữa các thành phần.
Quy trình ELK tuân theo một trình tự rõ ràng, trong đó mỗi công cụ có một nhiệm vụ riêng biệt:
- Nhật ký: Các nhật ký máy chủ cần được phân tích đã được xác định.
- Logstash: Thu thập nhật ký và dữ liệu sự kiện, sau đó phân tích và chuyển đổi chúng.
- Tìm kiếm đàn hồi: Dữ liệu được chuyển đổi bởi Logstash được lưu trữ, tìm kiếm và lập chỉ mục.
- Kibana: Sử dụng cơ sở dữ liệu Elasticsearch để khám phá, trực quan hóa và chia sẻ thông tin chi tiết.
Tuy nhiên, một thành phần thứ tư có tên Beats thường được thêm vào để thu thập dữ liệu. Beats là các trình vận chuyển dữ liệu nhẹ được cài đặt trên máy chủ, và việc bổ sung chúng đã khiến Elastic đổi tên ELK thành Elastic Stack.
Khi xử lý lượng dữ liệu rất lớn, bạn có thể thêm Kafka hoặc RabbitMQ vào phía trước đường dẫn xử lý để đệm và tăng khả năng phục hồi.
Để tăng cường bảo mật, có thể đặt một máy chủ proxy ngược như Nginx ở phía trước hệ thống.
Với kiến trúc tổng quan đó, các phần sau đây sẽ xem xét kỹ hơn từng sản phẩm mã nguồn mở trong hệ sinh thái này.
Elaticsearch là gì?
Elaticsearch là một Cơ sở dữ liệu NoSQL Dựa trên công cụ tìm kiếm Lucene và được xây dựng bằng API RESTful, nó cung cấp khả năng triển khai đơn giản, độ tin cậy cao và quản lý dễ dàng, đồng thời lưu trữ tất cả dữ liệu của bạn một cách tập trung để bạn có thể chạy các truy vấn nâng cao và tìm kiếm tài liệu nhanh chóng.
Elasticsearch cũng cho phép bạn lưu trữ, tìm kiếm và phân tích khối lượng lớn dữ liệu. Nó thường được sử dụng như công cụ nền tảng hỗ trợ các ứng dụng có yêu cầu tìm kiếm khắt khe.
Nhờ khả năng tích hợp phân tích và nhiều tính năng nâng cao bên cạnh khả năng tìm kiếm nhanh, Elasticsearch đã được sử dụng rộng rãi trong các nền tảng tìm kiếm cho các ứng dụng web và di động hiện đại.
Các tính năng của Elasticsearch
Elasticsearch cung cấp một bộ tính năng phong phú để lập chỉ mục và tìm kiếm dữ liệu:
- Một máy chủ tìm kiếm mã nguồn mở được viết bằng Java.
- Có khả năng lập chỉ mục cho bất kỳ loại dữ liệu không đồng nhất nào.
- Cung cấp giao diện web API REST với đầu ra JSON.
- Tìm kiếm toàn văn.
- Tìm kiếm gần thời gian thực (NRT).
- Một kho lưu trữ tài liệu JSON được phân mảnh, sao chép và có thể tìm kiếm.
- Kho lưu trữ tài liệu phân tán không có lược đồ, dựa trên REST và JSON.
- Hỗ trợ đa ngôn ngữ và định vị địa lý.
Ưu điểm của Elaticsearch
- Lưu trữ dữ liệu không có lược đồ và cũng có thể tạo lược đồ cho dữ liệu của bạn.
- Cho phép bạn thao tác với từng bản ghi một bằng cách sử dụng API đa tài liệu.
- Hỗ trợ lọc và truy vấn dữ liệu để thu thập thông tin chi tiết.
- Dựa trên Apache Lucene và cung cấp API RESTful.
- Cung cấp khả năng mở rộng theo chiều ngang, độ tin cậy và khả năng hỗ trợ nhiều người dùng để lập chỉ mục theo thời gian thực và tìm kiếm nhanh hơn.
- Giúp bạn mở rộng quy mô cả theo chiều dọc và chiều ngang.
Bảng dưới đây giải thích các thuật ngữ chính mà bạn sẽ gặp khi làm việc với Elasticsearch:
| Hạn | Sử dụng |
|---|---|
| Cluster | Cụm máy chủ là tập hợp các nút cùng nhau lưu trữ dữ liệu của bạn và cung cấp khả năng lập chỉ mục và tìm kiếm kết hợp. |
| Node | Một node là một instance đơn lẻ của Elasticsearch. Nó được tạo ra khi một instance Elasticsearch khởi động. |
| Chỉ số | Chỉ mục là tập hợp các tài liệu có chung các đặc điểm tương tự, chẳng hạn như dữ liệu khách hàng hoặc danh mục sản phẩm. Nó hữu ích cho các thao tác lập chỉ mục, tìm kiếm, cập nhật và xóa, và bạn có thể định nghĩa nhiều chỉ mục trong một cụm. |
| Tài liệu | Tài liệu là đơn vị thông tin cơ bản có thể được lập chỉ mục. Nó được thể hiện dưới dạng cặp khóa-giá trị JSON, và mỗi tài liệu được liên kết với một loại và một ID duy nhất. |
| Mảnh vỡ | Mỗi chỉ mục có thể được chia thành nhiều phân vùng (shard) để phân phối dữ liệu. Phân vùng là phần nguyên tử của một chỉ mục và có thể được trải rộng khắp cụm khi bạn thêm nhiều nút hơn. |
Là gì Logstash?
Logstash Đây là công cụ xử lý dữ liệu của hệ thống. Nó thu thập dữ liệu đầu vào và đưa chúng vào Elasticsearch, tập hợp tất cả các loại dữ liệu từ các nguồn khác nhau và làm cho chúng sẵn sàng để sử dụng tiếp.
Logstash Có thể hợp nhất dữ liệu từ nhiều nguồn khác nhau và chuẩn hóa chúng thành các định dạng đích mà bạn lựa chọn. Điều này cho phép bạn làm sạch và dân chủ hóa tất cả dữ liệu của mình cho nhiều trường hợp sử dụng phân tích và trực quan hóa.
Nó bao gồm ba thành phần:
- Đầu vào: Tiếp nhận nhật ký và chuyển đổi chúng thành định dạng mà máy tính có thể đọc được.
- Bộ lọc: Một tập hợp các điều kiện thực hiện một hành động cụ thể lên một sự kiện.
- Đầu ra: Người ra quyết định chịu trách nhiệm định tuyến từng sự kiện hoặc nhật ký đã được xử lý.
Đặc điểm của Logstash
Logstash Bao gồm một số tính năng giúp việc xử lý nhật ký trở nên linh hoạt:
- Các sự kiện được xử lý qua từng giai đoạn bằng cách sử dụng các hàng đợi nội bộ.
- Cho phép nhập nhiều định dạng khác nhau cho nhật ký của bạn.
- Hỗ trợ lọc và phân tích nhật ký của bạn.
Ưu điểm của Logstash
- Tập trung hóa quá trình xử lý dữ liệu của bạn.
- Phân tích nhiều loại dữ liệu và sự kiện có cấu trúc và không có cấu trúc.
- Cung cấp các plugin để kết nối với nhiều loại nguồn đầu vào và nền tảng khác nhau.
Kibana là gì?
Kibana là công cụ trực quan hóa dữ liệu hoàn thiện bộ công cụ ELK Stack. Nó được sử dụng để trực quan hóa các tài liệu Elasticsearch và giúp các nhà phát triển nhanh chóng hiểu rõ dữ liệu của họ thông qua các sơ đồ tương tác, dữ liệu không gian địa lý và biểu đồ giúp đơn giản hóa các truy vấn phức tạp.
Bạn có thể sử dụng Kibana để tìm kiếm, xem và tương tác với dữ liệu được lưu trữ trong các chỉ mục Elasticsearch. Nó cũng giúp bạn thực hiện các tác vụ nâng cao. phân tích dữ liệu và trình bày dữ liệu của bạn dưới nhiều dạng bảng, biểu đồ và bản đồ khác nhau.
Kibana hỗ trợ nhiều phương pháp tìm kiếm dữ liệu. Các loại tìm kiếm phổ biến nhất được liệt kê bên dưới:
| Loại tìm kiếm | Sử dụng |
|---|---|
| Tìm kiếm văn bản miễn phí | Dùng để tìm kiếm một chuỗi ký tự cụ thể. |
| Tìm kiếm cấp trường | Được sử dụng để tìm kiếm một chuỗi ký tự trong một trường cụ thể. |
| Câu lệnh logic | Được sử dụng để kết hợp các tìm kiếm thành một câu lệnh logic. |
| Tìm kiếm lân cận | Được sử dụng để tìm kiếm các thuật ngữ trong phạm vi gần một ký tự nhất định. |
Kibana cũng cung cấp một số tính năng mạnh mẽ để khám phá dữ liệu đã được lập chỉ mục:
- Một bảng điều khiển giao diện người dùng mạnh mẽ, trực quan hóa thông tin đã được lập chỉ mục từ cụm Elasticsearch.
- Cho phép tìm kiếm thông tin đã được lập chỉ mục theo thời gian thực.
- Cho phép bạn tìm kiếm, xem và tương tác với dữ liệu được lưu trữ trong Elasticsearch.
- Thực hiện các truy vấn trên dữ liệu và trực quan hóa kết quả dưới dạng biểu đồ, bảng và bản đồ.
- Bảng điều khiển có thể cấu hình để phân tích và xử lý dữ liệu. Logstash nhật ký trong Elasticsearch.
- Cung cấp dữ liệu lịch sử dưới dạng biểu đồ, đồ thị và nhiều hình thức khác.
- Cung cấp bảng điều khiển thời gian thực dễ dàng cấu hình.
Ưu điểm và nhược điểm của Kibana
Giống như bất kỳ công cụ nào khác, Kibana cũng có những điểm mạnh rõ ràng, lý giải cho sự phổ biến của nó:
- Dễ dàng trực quan hóa dữ liệu.
- Tích hợp hoàn toàn với Elasticsearch.
- Hoạt động như một công cụ trực quan hóa chuyên dụng.
- Cung cấp khả năng phân tích, lập biểu đồ, tóm tắt và gỡ lỗi theo thời gian thực.
- Cung cấp giao diện trực quan, thân thiện với người dùng.
- Cho phép chia sẻ ảnh chụp nhanh các nhật ký mà bạn đã tìm kiếm.
- Cho phép lưu và quản lý nhiều bảng điều khiển.
Tuy nhiên, cần lưu ý một vài hạn chế sau:
- Nó chỉ hoạt động khi sử dụng Elasticsearch làm nguồn dữ liệu.
- Việc xây dựng và tinh chỉnh các bảng điều khiển phức tạp có thể đòi hỏi một quá trình học hỏi lâu dài.
Tại sao phải phân tích nhật ký?
Trong cơ sở hạ tầng dựa trên điện toán đám mây, hiệu năng và khả năng cách ly là rất quan trọng.
Hiệu năng của máy ảo trên nền tảng đám mây có thể thay đổi tùy thuộc vào tải trọng, môi trường và số lượng người dùng hoạt động cụ thể, do đó độ tin cậy và sự cố máy chủ có thể trở thành những vấn đề đáng kể.
A nền tảng quản lý nhật ký Nó có thể giám sát tất cả các vấn đề này. Nó cũng có thể xử lý nhật ký hệ điều hành, nhật ký máy chủ web Nginx và IIS để phân tích lưu lượng truy cập, nhật ký ứng dụng và nhật ký được tạo trên AWS (Amazon Dịch vụ website).
Tóm lại, quản lý nhật ký giúp ích DevOps Các kỹ sư và quản trị viên hệ thống đưa ra những quyết định tốt hơn, dựa trên dữ liệu. Đó là lý do tại sao phân tích nhật ký thông qua Elastic Stack hoặc các công cụ tương tự đã trở nên thiết yếu.
ELK so với Splunk
Câu hỏi thường gặp là ELK Stack so sánh với những công cụ nào khác. Splunk, một lựa chọn thay thế thương mại phổ biến. Bảng dưới đây tóm tắt những điểm khác biệt chính:
| ELK | Splunk |
|---|---|
| ELK là một công cụ mã nguồn mở. | Splunk là một công cụ thương mại. |
| ELK không cung cấp Solaris Tính di động nhờ Kibana. | Ưu đãi rải rác Solaris tính di động. |
| Tốc độ xử lý bị hạn chế nghiêm ngặt. | Cung cấp dịch vụ xử lý chính xác và nhanh chóng. |
| ELK là một bộ công nghệ được tạo ra từ sự kết hợp của Elasticsearch, Logstashvà Kibana. | Splunk là một công cụ độc quyền cung cấp cả giải pháp triển khai tại chỗ và trên nền tảng đám mây. |
| Trong ELK, việc tìm kiếm, phân tích và trực quan hóa chỉ có thể thực hiện được sau khi hệ thống được thiết lập xong. | Splunk là một gói quản lý dữ liệu hoàn chỉnh, có thể sử dụng ngay sau khi cài đặt. |
| ELK cung cấp khả năng tích hợp hạn chế với các công cụ khác. | Splunk rất hữu ích để thiết lập tích hợp với các công cụ khác. |
Case Study
Nhiều công ty nổi tiếng dựa vào ELK Stack để chạy việc ghi nhật ký và phân tích ở quy mô lớn. Các ví dụ dưới đây cho thấy cách nó được sử dụng trong môi trường sản xuất.
Netflix
Netflix Công ty này phụ thuộc rất nhiều vào ELK Stack để giám sát và phân tích nhật ký bảo mật của các hoạt động dịch vụ khách hàng. Nền tảng này cho phép... Netflix Lập chỉ mục, lưu trữ và tìm kiếm tài liệu trên hơn mười lăm cụm máy chủ, mỗi cụm gồm khoảng 800 nút.
Trang mạng xã hội chuyên nghiệp LinkedIn sử dụng ELK Stack để giám sát hiệu suất và bảo mật. Nhóm của họ đã tích hợp ELK với Kafka để xử lý tải theo thời gian thực, và hoạt động này trải rộng trên hơn 100 cụm máy chủ tại sáu trung tâm dữ liệu.
Tripwire
Tripwire, một nhà cung cấp hệ thống quản lý thông tin và sự kiện an ninh (SIEM) toàn cầu, sử dụng ELK Stack để hỗ trợ phân tích nhật ký gói thông tin.
Trung bình
Medium, nền tảng xuất bản blog phổ biến, sử dụng ELK Stack để gỡ lỗi các sự cố trong môi trường sản xuất và để phát hiện. DynamoDB các điểm truy cập. Hệ thống này giúp công ty hỗ trợ 25 triệu độc giả duy nhất và hàng nghìn bài đăng mới mỗi tuần.
Ưu điểm và nhược điểm của ELK Stack
Ưu điểm
Bộ công cụ ELK Stack mang lại một số lợi ích giải thích cho sự phổ biến rộng rãi của nó:
- Phương pháp này hoạt động hiệu quả nhất khi nhật ký từ các ứng dụng khác nhau trong doanh nghiệp được hội tụ vào một phiên bản ELK duy nhất.
- Nó cung cấp những hiểu biết sâu sắc từ một trường hợp duy nhất và loại bỏ nhu cầu phải đăng nhập vào hàng trăm nguồn dữ liệu riêng biệt.
- Lắp đặt nhanh chóng tại chỗ.
- Dễ triển khai và có khả năng mở rộng cả theo chiều dọc và chiều ngang.
- Elastic cung cấp nhiều ứng dụng khách bằng nhiều ngôn ngữ khác nhau, bao gồm cả Ruby. Python, PHP, Perl, .NET, Javavà JavaKịch bản.
- Có sẵn các thư viện cho nhiều ngôn ngữ lập trình và ngôn ngữ kịch bản khác nhau.
Nhược điểm
Mặc dù có nhiều ưu điểm, ELK Stack vẫn có một vài nhược điểm cần xem xét:
- Việc quản lý các thành phần khác nhau có thể trở nên khó khăn hơn khi bạn chuyển sang một hệ thống phức tạp hơn.
- Quá trình học hỏi sẽ thực sự cần thời gian, vì vậy hãy chuẩn bị tinh thần cho những lần thử và sai trong quá trình tích lũy kinh nghiệm.


