[ELK] [Phần 3] Tổng quan về logstash

Logstash Introduction | Logstash Reference [7.9] | Elastic

Logstash là chữ “L” trong ELK Stack – nền tảng phân tích nhật ký phổ biến nhất thế giới và chịu trách nhiệm tổng hợp dữ liệu từ các nguồn khác nhau, xử lý và gửi dữ liệu xuống đường dẫn, thường được lập chỉ mục trực tiếp trong Elasticsearch. Logstash có thể lấy từ hầu hết mọi nguồn dữ liệu bằng cách sử dụng các plugin đầu vào, áp dụng nhiều loại cải tiến và biến đổi dữ liệu bằng cách sử dụng các plugin bộ lọc và gửi dữ liệu đến một số lượng lớn các điểm đến bằng cách sử dụng các plugin đầu ra. Do đó, vai trò của Logstash trong ngăn xếp là rất quan trọng – nó cho phép bạn lọc, chỉnh sửa và định hình dữ liệu của mình để dễ làm việc hơn.

1. Logstash là gì?

  • Logstash là một công cụ mã nguồn mở thu thập dữ liệu có khả năng liên hợp theo thời gian thực. Logstash có thể hợp nhất dữ liệu từ các nguồn khác nhau và chuẩn hóa dữ liệu ở phần xử lý tiếp theo. Loại bỏ và đồng hóa tất cả dữ liệu đó trong một số use case cần phân tích và thể hiện trên biểu đồ.
    • INPUT: Nó có thể lấy đầu vào từ TCP/UDP, các file, từ syslog, Microsoft Windows EventLogs, STDIN và từ nhiều nguồn khác. Chúng ta có thể lấy log từ các ứng dụng trên môi trường của chúng ta rồi đẩy chúng tới Logstash.
    • FILTER: Khi những log này tới Server Logstash, có một số lượng lớn các bộ lọc mà cho phép ta có thể chỉnh sửa và chuyển đổi những event này. Ta có thể lấy ra các thông tin mà ta cần từ những event log.
    • OUTPUT: Khi xuất dữ liệu ra, Logstash hỗ trợ rất nhiều các đích tới bao gồm TCP/UDP, email, các file, HTTP, Nagios và số lượng lớn các dịch vụ mạng. Ta có thể tích hợp Logstash với các công cụ tính toán số liệu (metric), các công cụ cảnh báo, các dạng biểu đồ, các công nghệ lưu trữ hay ta có thể xây dựng một công cụ trong môi trường làm việc của chúng ta.

2. Logstash hoạt động như thế nào?

elk-3
  • Đường ống xử lý sự kiện của Logstash có ba giai đoạn: input → filter → output. Các đầu vào tạo ra các sự kiện, bộ lọc sửa đổi chúng và các đầu ra sẽ chuyển chúng tới nơi khác. Đầu vào và đầu ra hỗ trợ codec cho phép bạn mã hóa hoặc giải mã dữ liệu khi nó vào hoặc thoát khỏi đường dẫn mà không phải sử dụng bộ lọc riêng biệt.

2.1. Input.

  • Chúng ta sử dụng Input để lấy dữ liệu vào Logstash. Một số đầu vào thường được sử dụng là :
    • file : đọc từ một tệp trên hệ thống, giống như lệnh UNIX tail -0F
    • syslog : nghe trên cổng 514 nổi tiếng cho các thông báo nhật ký hệ thống và phân tích cú pháp theo định dạng RFC3164.
    • redis : đọc từ máy chủ redis, sử dụng cả kênh redis và danh sách redis. Redis thường được sử dụng như một “broker” trong một mô hình Logstash tập trung, có hàng đợi các sự kiện Logstash từ các “shippers” từ xa.
    • beats : xử lý các sự kiện do beats gửi.

2.2. Filter.

  • Filter là thiết bị xử lý trung gian trong đường dẫn Logstash. Chúng ta có thể kết hợp các bộ lọc với các điều kiện để thực hiện một hành động trên một sự kiện nếu nó đáp ứng các tiêu chí nhất định. Một số bộ lọc hữu ích bao gồm :
    • grok : phân tích cú pháp và cấu trúc văn bản tùy ý – chỉnh sửa định dạng log từ client gửi về. Grok hiện là cách tốt nhất trong Logstash để phân tích cú pháp dữ liệu nhật ký không được cấu trúc thành một thứ có cấu trúc và có thể truy vấn được. Với 120 mẫu được tích hợp sẵn trong Logstash, nhiều khả năng chúng ta sẽ tìm thấy một mẫu đáp ứng nhu cầu của mình.
    • mutate : thực hiện các phép biến đổi chung trên các trường sự kiện. Bạn có thể đổi tên, xóa, thay thế và sửa đổi các trường trong sự kiện của mình.
    • drop : xóa hoàn toàn sự kiện, ví dụ: debug events.
    • clone : tạo bản sao của sự kiện, có thể thêm hoặc xóa các trường.
    • geoip : thêm thông tin về vị trí địa lý của địa chỉ IP (cũng hiển thị biểu đồ tuyệt vời trong Kibana).

2.3. Output.

  • Các đầu ra là pha cuối cùng của đường ống Logstash. Một sự kiện có thể đi qua nhiều đầu ra, nhưng một khi tất cả xử lý đầu ra đã hoàn tất, sự kiện đã hoàn tất việc thực thi của nó. Một số đầu ra thường được sử dụng bao gồm :
    • Elasticsearch : gửi dữ liệu sự kiện tới Elasticsearch. Nếu chúng ta đang có kế hoạch để lưu dữ liệu trong một định dạng hiệu quả, thuận tiện, và dễ dàng truy vấn … Elasticsearch là con đường để đi.
    • File : ghi dữ liệu sự kiện vào file trên bộ nhớ.
    • Graphite : gửi dữ liệu sự kiện tới graphite, một công cụ nguồn mở phổ biến để lưu trữ và vẽ đồ thị số liệu. http://graphite.readthedocs.io/en/latest/.
    • Statsd : gửi dữ liệu sự kiện đến statsd, một dịch vụ lắng nghe và thống kê.

3. Kết luận

Logstash hiện đang ngày càng được sử dụng song song với các bộ thu thập dữ liệu nhẹ hơn được gọi là Beats . Các beats khác, chẳng hạn như Filebeat và Metricbeat, hoạt động như những người gửi hàng nhẹ nhàng thu thập các loại dữ liệu khác nhau và sau đó chuyển nó vào Logstash để xử lý nâng cao hơn.

Add a Comment

Your email address will not be published. Required fields are marked *