BLOG CHO DỊCH VỤ CLOUD365


Lời giới thiệu.

Trong bài trước, chúng ta đã tìm hiểu về filebeat – một agent phổ biến được sử dụng để thu thập log từ các máy trạm. Hôm nay, chúng ta sẽ tìm hiểu về Logstash, một công cụ nhận và xử lý các log được gửi từ filebeat, sau đó đẩy chúng vào Elasticsearch.

1. Logstash là gì?

  • Logstash là một công cụ mã nguồn mở cho việc thu thập dữ liệu và tổ chức chúng theo thời gian thực. Logstash có thể kết hợp dữ liệu từ nhiều nguồn khác nhau và chuẩn hóa dữ liệu cho các quá trình xử lý tiếp theo. Nó giúp xử lý và hiển thị dữ liệu trong các trường hợp mà chúng ta cần phân tích hoặc biểu diễn trên đồ thị.

  • Logstash bao gồm 3 thành phần chính, đó là:

    • INPUT: Logstash có thể nhận log từ TCP/UDP, các file, syslog, Microsoft Windows EventLogs, STDIN và nhiều nguồn khác. Chúng ta có thể lấy log từ các ứng dụng trong môi trường của chúng ta và gửi chúng đến Logstash.
    • FILTER: Khi log này đến Logstash, chúng ta có thể áp dụng các bộ lọc để chỉnh sửa và chuyển đổi log này. Chúng ta có thể trích xuất thông tin cần thiết từ log.
    • OUTPUT: Khi dữ liệu được xuất ra, Logstash hỗ trợ nhiều loại đích đến bao gồm TCP/UDP, email, các file, HTTP, Nagios và nhiều dịch vụ mạng khác. Chúng ta có thể tích hợp Logstash với các công cụ đo lường số liệu, công cụ cảnh báo, công cụ tạo biểu đồ, công nghệ lưu trữ hoặc xây dựng một công cụ tùy chỉnh trong môi trường làm việc của chúng ta.
Có Thể Bạn Quan Tâm :   Cấu trúc Apart from: Công thức và cách dùng

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

elk-21

Quá trình xử lý sự kiện của Logstash gồm 3 giai đoạn: input → filter → output. Đầu vào tạo ra các sự kiện, bộ lọc sửa đổi các sự kiện đó và đầu ra chuyển chúng đến các đích khác. Đầu vào và đầu ra hỗ trợ các codec cho phép mã hóa hoặc giải mã dữ liệu khi chúng nhập hoặc xuất ra mà không cần sử dụng các bộ lọc riêng biệt.

elk-22

  • Chúng ta sử dụng INPUT để lấy dữ liệu vào Logstash. Các đầu vào thông thường bao gồm:
    • File: đọc từ một tệp trên hệ thống, tương tự như lệnh UNIX tail -0F.
    • Syslog: lắng nghe cổng 514 nổi tiếng để thu thập log 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 và danh sách redis. Redis thường được sử dụng như một “broker” trong kiến trúc Logstash tập trung, lưu trữ các sự kiện Logstash từ “shippers” được triển khai ở xa.
    • Beats: xử lý các sự kiện gửi từ beats.
Có Thể Bạn Quan Tâm :   “Công suất” trong tiếng Anh: Định nghĩa, ví dụ

elk-23

  • Bộ lọc (FILTER) là bước xử lý trung gian trong quá trình xử lý của Logstash. Chúng ta có thể kết hợp nhiều bộ lọc với các điều kiện để thực hiện 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à định dạng văn bản tùy ý – chỉnh sửa định dạng log từ client gửi về. Grok là cách tốt nhất trong Logstash để phân tích cú pháp dữ liệu log không có cấu trúc thành dữ liệu có cấu trúc và có thể tìm kiếm được. Với 120 mẫu tích hợp sẵn trong Logstash, chúng ta có nhiều khả năng sẽ tìm thấy mẫu phù hợp với nhu cầu của mình.
    • Mutate: thực hiện các biến đổi chung trên các trường sự kiện. Chúng ta có thể đổi tên, xóa, thay thế và sửa đổi các trường trong sự kiện.
    • Drop: loại bỏ hoàn toàn sự kiện, ví dụ: các sự kiện gỡ lỗi.
    • 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ị trí địa lý từ địa chỉ IP (cũng hiển thị cấu trúc dữ liệu tốt trong Kibana).
Có Thể Bạn Quan Tâm :   ETB là gì? Ý nghĩa của ETB trong xuất nhập khẩu

elk-24

  • OUTPUT là giai đoạn cuối cùng trong quá trình xử lý của Logstash. Một sự kiện có thể đi qua nhiều đầu ra, nhưng một khi tất cả các đầu ra hoàn tất quá trình xử lý, sự kiện sẽ hoàn tất. Một số đầu ra thông thường bao gồm:
    • Elasticsearch: gửi dữ liệu sự kiện đến Elasticsearch. Nếu chúng ta lưu trữ dữ liệu trong một định dạng hiệu quả, thuận tiện và dễ tìm kiếm, Elasticsearch là lựa chọn hàng đầu.
    • File: ghi dữ liệu sự kiện vào file trên đĩa.
    • Graphite: gửi dữ liệu sự kiện đến graphite, một công cụ phổ biến dùng để lưu trữ và biểu diễn đồ thị dữ liệu số.
    • Statsd: gửi dữ liệu sự kiện đến statsd, một dịch vụ lắng nghe và thống kê.

3. Một số ví dụ về khai báo input, filter, output.

Ví dụ về khai báo input:

Ví dụ về khai báo filter:

Ví dụ về khai báo output:

Tổng kết.

Trên đây là tổng quan về Logstash và cách hoạt động của nó. Qua loạt bài này, chúng ta đã được giới thiệu về hầu hết các thành phần cần sử dụng để triển khai ELK stack. Trong bài viết kế tiếp, chúng ta sẽ hướng dẫn cách tạo biểu đồ trên Kibana để có cái nhìn trực quan về các sự kiện thu thập được từ client.

Được thực hiện bởi cloud365.vn

Back to top button