ELK LÀ GÌ

ELK Stack, một trong những stack bạo phổi mẽ, phổ cập nhất dùng để làm ghi log. Rất nhiều hệ thống lớn trên thế giới (LinkedIn, Netflix, Medium) đều sử dụng stack này.

Bạn đang xem: Elk là gì

Logging là 1 trong công cụ đơn giản và dễ dàng và dũng mạnh mẽ, ghi lại toàn thể những hoạt động vui chơi của hệ thống.

Nhờ bao gồm logging, ta rất có thể tra cứu vớt lại tinh thần của hệ thống trong thừa khứ, hầu hết code nào đã được chạy. Từ đó tìm ra lỗi với fix dễ dàng hơn.

ELK Stack là tập hợp 3 phần mềm đi phổ biến với nhau, ship hàng cho công việc logging. Ba ứng dụng này lần lượt là:

Elasticsearch: Cơ sở dữ liệu để giữ trữ, tìm kiếm với query logLogstash: chào đón log từ không ít nguồn, tiếp nối xử lý log cùng ghi tài liệu và ElasticsearchKibana: đồ họa để quản lý, thống kê log. Đọc tin tức từ Elasticsearch

Cơ chế hoạt động vui chơi của ELK Stack cũng tương đối đơn giản, chúng ta xem hình vẫn hiểu:

Cơ chế hoạt động của ELK Stack

Tại sao đề nghị dùng ELK Stack? #

Với các hệ thống hoặc áp dụng nhỏ, ta không cần thực hiện ELK stack có tác dụng gì! Cứ dùng thư viện ghi log đi kèm theo với ngôn ngữ, tiếp nối ghi log ra tệp tin rồi đọc thôi!

Tuy nhiên, với những hệ thống lớn không ít người dân dùng, có khá nhiều service phân tán (microservice), có rất nhiều server chạy cùng lúc… thì bài toán ghi log xuống file không còn hiệu quả nữa.

Giả sử chúng ta có 10 bé server chạy thuộc lúc, các bạn sẽ phải lục tung 10 con server này nhằm đọc với tìm file log, cực quá cần không nào? thời điểm này, bạn ta bắt đầu áp dụng centralized logging, tức ghi log tập trung vào 1 chỗ.

ELK là một trong những lựa chọn cực kỳ phù hợp, được nhiều công ty lớn như Netflix, Linkedin, Medium lựa chọn do những vì sao bên dưới!

Vậy ELK Stack bao gồm gì hay ho? #

Vì đâu mà mà ELK Stack lại vô cùng bạo gan mẽ, luôn thể dùng, được nhiều công ty thực hiện như vậy? vì chưng các tại sao sau:

Đọc log từ khá nhiều nguồn: Logstash rất có thể đọc được log từ tương đối nhiều nguồn, từ log file cho tới log database cho đến UDP hay REST request.Dễ tích hợp: Dù chúng ta có cần sử dụng Nginx hay Apache, dùng MSSQL, MongoDB hay Redis, Logstash đều có thể đọc gọi và xử trí log của người tiêu dùng nên vấn đề tích hợp rất giản đơn dàng.Hoàn toàn free: chỉ cần tải về, thiết đặt và dùng, không tốn một đồng làm sao cả. Công ty tạo ra ELK Stack kiếm tiền bằng những dịch vụ cloud hoặc các thành phầm premium phụ thêm.Khả năng scale tốt: Logstash và Elasticsearch chạy trên các node nên khối hệ thống ELK cực kì dễ scale. Khi bao gồm thêm service, thêm bạn dùng, mong muốn log nhiều hơn, bạn chỉ vấn đề thêm node đến Logstash cùng Elasticsearch là xong.Search cùng filter khỏe mạnh mẽ: Elasticsearch được cho phép lưu trữ thông tin kiểu NoSQL, cung ứng luôn Full-Text tìm kiếm nên bài toán query rất dễ dàng và khỏe khoắn mẽ.Cộng đồng mạnh, tutorial nhiều: Nhiều công ty dùng nên đương nhiên là có khá nhiều tutorial nhằm học và dùng ELK Stack rồi.

Ứng dụng ra sao? #

Trước đây, hệ thống của bên mình gặp phải vụ việc về logging:

Hệ thống back-end xây dừng theo tế bào hình microservice. Từng microservice được deploy thành một AppService trên Azure. Mỗi một khi service có vấn đề, đề nghị đọc log thì nên vào Azure, tìm kiếm service đó, tra cứu trong thư mục deploy để tìm tệp tin log.Một phầm mềm Desktop khác do mình viết bởi Electron, đề xuất chạy bên trên 100 trang bị ảo của khoảng tầm 100 users. Mỗi lúc app có vấn đề gì thì cần login vào sản phẩm ảo đó cùng tìm tệp tin log.Khi nên tìm với fix bug, ta rất cần được mò với đọc file log nhằm “điều tra” coi lỗi nằm ở đâu.

Do vậy, bên mình đưa ra quyết định sử dụng ELK Stack để chứa toàn thể log của hệ thống. Việc tích hợp đơn giản dễ dàng tới ko ngờ, chỉ mất khoảng chừng 1 ngày:

Mình config Logstash cho phép ghi log thông qua giao thức UDP.Các service phía back-end đã dùng log4net sẵn, vì thế mình không nên sửa code nhiều, chỉ config cho log4net ghi thêm log qua giao thức UDP, thân tặng logstash là được.App Desktop của bản thân thì sửa lại một chút, thời điểm ghi log thì ghi xuống cả file lẫn gởi log theo giao thức UDP.

Tìm hiểu một chút về Logtash vào ELK Stack #

Logstash là một công tác mã nguồn mở, bên trong hệ sinh thái xanh của bộ thành phầm ELK Stack, với nhiệm vụ rất quan liêu trọng bao hàm ba quy trình trong chuỗi cách xử lý sự khiếu nại log (pipeline) tương xứng ba module:

INPUT: tiếp nhận/thu thập tài liệu sự khiếu nại log sinh sống dạng thô từ những nguồn khác nhau như file, redis, rabbitmq, beats, syslog,….FILTER: Sau khi mừng đón dữ liệu sẽ tiến hành thao tác dữ liệu sự kiện log (như thêm, xoá, gắng thế,.. Nội dung log) theo thông số kỹ thuật của quản lí trị viên để xây đắp lại cấu trúc dữ liệu log event theo mong mỏi muốn.

Xem thêm: Xin Zhao Đồ Long - Ra Mắt Trang Phục Zyra Mẹ Rồng Và Từ 10/3

OUTPUT: ở đầu cuối sẽ thực hiện chuyển tiếp tài liệu sự khiếu nại log về các dịch vụ khác như Elasticsearch đón nhận lưu trữ log hoặc hiển thị log,..

Workflow #

*

Ở bước INPUT, Logstash vẫn được cấu hình lựa chọn bề ngoài tiếp dấn log sự kiện hoặc đi lấy tài liệu log ở dịch remote theo nhu cầu. Sau thời điểm lấy được log sự kiện thì , khâu INPUT đã ghi dữ liệu event xuống sản phẩm đợi tập trung ở bộ nhớ lưu trữ RAM hoặc bên trên ổ cứng.

Mỗi pipeline worker thread sẽ thường xuyên lấy một loạt sự kiện đang nằm trong hàng đợi này để xử lý FILTER giúp tái cấu trúc dữ liệu log sẽ được gửi đi ngơi nghỉ phần OUTPUT. Số lượng sự kiện được xử trí một loạt và số lượng pipeline worker thread có thể được thông số kỹ thuật tinh chỉnh về tối ưu hơn, câu chữ này rất có thể đề cập tại phần khác.

Mặc định Logstash áp dụng hàng hóng nằm trong bộ nhớ lưu trữ RAM giữa những giai đoạn (input -> filter và filter -> output) để triển khai bộ đệm tàng trữ dữ liệu sự kiện trước lúc xử lý. Nếu như chương trình thương mại dịch vụ Logstash của công ty vì một lý do nào kia bị dừng vận động giữa chừng, thì các dữ liệu sự kiện đang phía trong buffer có khả năng sẽ bị mất.

Input #

*

Bạn sẽ thực hiện phần cấu hình block ‘INPUT’ nhằm quy định chính sách nhận/lấy log vào công tác Logstash. Một số Input plugin phổ biến thường được sử dụng để nhận/lấy log như :

file: đọc dữ liệu từ tệp tin trên filesystem, như thể lệnh ‘tail -f’ trên UNIX.syslog: lịch trình Logstash vẫn lắng nghe trên port 514 để mừng đón dữ liệu syslog.redis: đọc tài liệu log trường đoản cú redis server, sử dụng cả hai cơ chế redis channel với redis lists.

Logstash có hỗ trợ khá nhiều các loại plugin input không giống nhau giúp bạn năng động trong việc nhận nguồn dữ liệu log. C

Filter #

*

Bạn có thể kết hợp filter với các điều khiếu nại so sánh nhằm mục đích thực hiện nay 1 tác vụ hành vi (action) lúc 1 sự kiện chấp thuận khớp cùng với các tiêu chuẩn do các bạn được ra. Một số filter plugin hữu ích như :

grok: ví như bạn chạm chán một tài liệu sự khiếu nại log với kết cấu văn phiên bản không thông dụng hoặc là phức tạp. Thì Grok hiện là plugin filter tốt nhất để so sánh cú pháp tài liệu log không được kết cấu văn phiên bản thành một trang bị có cấu tạo và rất có thể truy vấn được.mutate: thực hiện sự đổi khác trên thông tin sự kiện log như: thay đổi tên, xoá, nắm thế, điều khiển và tinh chỉnh các trường (field) thông tin của sự khiếu nại log.drop: dừng giải pháp xử lý sự khiếu nại ngay lập tức, ví dụ những ‘debug event’.clone: chế tác một bản copy của việc kiện.geoip: thêm thông tin về vùng địa lý của địa chỉ IP (thường để hiển thị biểu đồ trên Kibana)

Outputs #

*

Output là bước sau cuối trong chuỗi các bước xử lý của Logstash. Một sự kiện hoàn toàn có thể đưa trải qua không ít output khác nhau, tiếp đây là các Output plugin hay sử dụng.

elasticsearch: gửi dữ liệu sự khiếu nại đến hệ thống Elasticsearch. Tất yếu đầu cuối của hệ thống logging ELK hay là Elasticsearch khiến cho bạn lưu trữ log, tra cứu kiếm log, …file: nếu như bạn chả cần bất cứ sự tàng trữ log cho việc tìm kiếm, hiển thị,… thì có thể lưu ra tệp tin trên hệ thống.graphite: trong những tool mã mối cung cấp mở hỗ trợ việc lưu trữ và sản xuất biểu vật dụng metric.statsd: gửi tài liệu tới thương mại & dịch vụ ‘statsd’.

Bạn tất cả thể đọc thêm các Output plugin tại đây

Cấu trúc thư mục của Logstash #

Chúng ta sẽ cùng điểm qua cấu tạo thư mục khoác định của Logstash. Khi được thiết đặt từ file .rpm (RHEL/CentOS)

LoạiMiêu tảĐường dẫn folderThông số
home/usr/share/logstash
bin/usr/share/logstash/bin
settings/etc/logstash
conf/etc/logstash/conf.d/*.conf
logsfile log của lịch trình logstash/var/log/logstash/path.logs
plugins/usr/share/logstash/pluginspath.plugins
data/var/lib/logstash

Leave a Reply

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

CÙNG CHUYÊN MỤC MỚI

  • Connect broadband connection là gì

  • Enter network credentials là gì

  • Hgu và sfu là gì

  • Rela có nghĩa là gì

  • x

    Welcome Back!

    Login to your account below

    Retrieve your password

    Please enter your username or email address to reset your password.