Logstash - Giới thiệu
Logstash là một công cụ dựa trên các mẫu bộ lọc / đường ống để thu thập, xử lý và tạo các bản ghi hoặc sự kiện. Nó giúp tập trung và phân tích thời gian thực các nhật ký và sự kiện từ các nguồn khác nhau.
Logstash được viết trên ngôn ngữ lập trình JRuby chạy trên JVM, do đó bạn có thể chạy Logstash trên các nền tảng khác nhau. Nó thu thập các loại dữ liệu khác nhau như Nhật ký, Gói tin, Sự kiện, Giao dịch, Dữ liệu Dấu thời gian, v.v., từ hầu hết mọi loại nguồn. Nguồn dữ liệu có thể là Dữ liệu xã hội, Thương mại điện tử, Tin tức, CRM, Dữ liệu trò chơi, Xu hướng web, Dữ liệu tài chính, Internet of Things, Thiết bị di động, v.v.
Tính năng chung của Logstash
Các tính năng chung của Logstash như sau:
Logstash có thể thu thập dữ liệu từ các nguồn khác nhau và gửi đến nhiều điểm đến.
Logstash có thể xử lý tất cả các loại dữ liệu ghi nhật ký như Nhật ký Apache, Nhật ký sự kiện Windows, Dữ liệu qua giao thức mạng, Dữ liệu từ Đầu vào chuẩn và nhiều hơn nữa.
Logstash cũng có thể xử lý các yêu cầu http và dữ liệu phản hồi.
Logstash cung cấp nhiều bộ lọc, giúp người dùng tìm thấy nhiều ý nghĩa hơn trong dữ liệu bằng cách phân tích cú pháp và chuyển đổi nó.
Logstash cũng có thể được sử dụng để xử lý dữ liệu cảm biến trong internet vạn vật.
Logstash là mã nguồn mở và có sẵn theo giấy phép Apache phiên bản 2.0.
Các khái niệm về khóa Logstash
Các khái niệm chính của Logstash như sau:
Đối tượng sự kiện
Nó là đối tượng chính trong Logstash, đóng gói luồng dữ liệu trong đường ống Logstash. Logstash sử dụng đối tượng này để lưu trữ dữ liệu đầu vào và thêm các trường bổ sung được tạo trong giai đoạn lọc.
Logstash cung cấp API sự kiện cho các nhà phát triển để điều khiển các sự kiện. Trong hướng dẫn này, sự kiện này được gọi với nhiều tên khác nhau như Sự kiện dữ liệu ghi nhật ký, Sự kiện nhật ký, Dữ liệu nhật ký, Dữ liệu nhật ký đầu vào, Dữ liệu nhật ký đầu ra, v.v.
Đường ống
Nó bao gồm các giai đoạn của luồng dữ liệu trong Logstash từ đầu vào đến đầu ra. Dữ liệu đầu vào được nhập vào đường dẫn và được xử lý dưới dạng một sự kiện. Sau đó, gửi đến đích đầu ra ở định dạng mong muốn của người dùng hoặc hệ thống cuối.
Đầu vào
Đây là giai đoạn đầu tiên trong đường dẫn Logstash, được sử dụng để lấy dữ liệu trong Logstash để xử lý thêm. Logstash cung cấp nhiều plugin khác nhau để lấy dữ liệu từ các nền tảng khác nhau. Một số plugin được sử dụng phổ biến nhất là - File, Syslog, Redis và Beats.
Bộ lọc
Đây là giai đoạn giữa của Logstash, nơi diễn ra quá trình xử lý thực tế của các sự kiện. Một nhà phát triển có thể sử dụng Mẫu Regex được xác định trước bởi Logstash để tạo các chuỗi nhằm phân biệt giữa các trường trong sự kiện và tiêu chí cho các sự kiện đầu vào được chấp nhận.
Logstash cung cấp các plugin khác nhau để giúp nhà phát triển phân tích cú pháp và chuyển đổi các sự kiện thành một cấu trúc mong muốn. Một số plugin bộ lọc được sử dụng phổ biến nhất là - Grok, Mutate, Drop, Clone và Geoip.
Đầu ra
Đây là giai đoạn cuối cùng trong đường dẫn Logstash, nơi các sự kiện đầu ra có thể được định dạng thành cấu trúc theo yêu cầu của hệ thống đích. Cuối cùng, nó gửi sự kiện đầu ra sau khi xử lý hoàn tất đến đích bằng cách sử dụng các plugin. Một số plugin được sử dụng phổ biến nhất là - Elasticsearch, File, Graphite, Statsd, v.v.
Ưu điểm của Logstash
Những điểm sau đây giải thích những ưu điểm khác nhau của Logstash.
Logstash cung cấp các chuỗi mẫu regex để xác định và phân tích cú pháp các trường khác nhau trong bất kỳ sự kiện đầu vào nào.
Logstash hỗ trợ nhiều loại máy chủ web và nguồn dữ liệu để trích xuất dữ liệu ghi nhật ký.
Logstash cung cấp nhiều plugin để phân tích cú pháp và chuyển đổi dữ liệu ghi nhật ký sang bất kỳ định dạng nào mà người dùng mong muốn.
Logstash tập trung, giúp dễ dàng xử lý và thu thập dữ liệu từ các máy chủ khác nhau.
Logstash hỗ trợ nhiều cơ sở dữ liệu, giao thức mạng và các dịch vụ khác như một nguồn đích cho các sự kiện ghi nhật ký.
Logstash sử dụng giao thức HTTP, cho phép người dùng nâng cấp các phiên bản Elasticsearch mà không cần phải nâng cấp Logstash ở bước khóa.
Nhược điểm của Logstash
Những điểm sau đây giải thích những nhược điểm khác nhau của Logstash.
Logstash sử dụng http, điều này ảnh hưởng tiêu cực đến việc xử lý dữ liệu ghi nhật ký.
Làm việc với Logstash đôi khi có thể hơi phức tạp, vì nó cần sự hiểu biết và phân tích tốt về dữ liệu ghi nhật ký đầu vào.
Các plugin bộ lọc không phải là chung chung, do đó, người dùng có thể cần phải tìm trình tự chính xác của các mẫu để tránh lỗi khi phân tích cú pháp.
Trong chương tiếp theo, chúng ta sẽ hiểu ELK Stack là gì và nó giúp Logstash như thế nào.