TÌM HIỂU VỀ ELK STACK – CÔNG CỤ QUẢN LÝ LOG NGẦU NHẤT QUẢ ĐẤT!

Ngày đăng: Thứ Năm, 22/03/2018

Logging là một công cụ đơn giản và mạnh mẽ, ghi lại toàn bộ những hoạt động của hệ thống.
Nhờ có logging, ta có thể tra cứu lại trạng thái của hệ thống trong quá khứ, những code nào đã được chạy, từ đó tìm ra lỗi và fix dễ dàng hơn.
ELK Stack, một trong các stack mạnh mẽ, phổ biến nhất dùng để 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.

ELK Stack là gì?

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

  • Elasticsearch: Cơ sở dữ liệu để lưu trữ, tìm kiếm và query log
  • Logstash: Tiếp nhận log từ nhiều nguồn, sau đó xử lý log và ghi dữ liệu và Elasticsearch
  • Kibana: Giao diện để quản lý, thống kê log. Đọc thông tin từ Elasticsearch

Cơ chế hoạt động của ELK Stack cũng khá đơn giản, các bạn xem hình sẽ hiểu:

co-che-hoat-dong-elk-stack

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

  1. Đầu tiên, log sẽ được đưa đến Logstash. (Thông qua nhiều con đường, ví dụ như server gửi UDP request chứa log tới URL của Logstash, hoặc Beat đọc file log và gửi lên Logstash)
  2. Logstash sẽ đọc những log này, thêm những thông tin như thời gian, IP, parse dữ liệu từ log (server nào, độ nghiêm trọng, nội dung log) ra, sau đó ghi xuống database là Elasticsearch.

       3.Khi muốn xem log, người dùng vào URL của Kibana. Kibana sẽ đọc thông tin log trong Elasticsearch, hiển thị lên giao diện cho người dùng query và xử lý.

Kibana hiển thị thông tin từ log cho người dùng

Tại sao phải dùng ELK Stack?

  1. Với các hệ thống hoặc ứng dụng nhỏ, ta không cần sử dụng ELK stack làm gì! Cứ dùng thư viện ghi log đi kèm với ngôn ngữ, sau đó ghi log ra file rồi đọc thôi!

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

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

    ELK là một 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 vì những lý do bên dưới!

    Các công ty sử dụng ELK Stack

Vậy ELK Stack có gì hay ho?

Vì đâu mà mà ELK Stack lại vô cùng mạnh mẽ, tiện dùng, được nhiều công ty sử dụng như vậy? Vì các lý do sau:

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

elk-tutorial

Tutorial của ELK Stack nhiều vô kể

Ứng dụng ra sao?

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

  • Hệ thống back-end xây dựng theo mô hình microservice. Mỗi microservice được deploy thành một AppService trên Azure. Mỗi khi service có vấn đề, cần đọc log thì phải vào Azure, tìm service đó, tìm trong folder deploy để tìm file log.
  • Một app Desktop khác do mình viết bằng Electron, cần chạy trên 100 máy ảo của khoảng 100 users. Mỗi khi app có vấn đề gì thì phải login vào máy ảo đó và tìm file log.
  • Khi cần tìm và fix bug, ta cần phải mò và đọc file log để “điều tra” xem lỗi nằm ở đâu.

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

  1. Thay vì kiếm server và cài đặt ELK Stack, CTO quyết định dùng service của logit.io. Thằng này host sẵn ELK Stack trên cloud, khỏi cần mình tốn công quản lý.
  2. Mình config Logstash cho phép ghi log thông qua giao thức UDP.
  3. Các service phía back-end đã dùng log4net sẵn, do vậy mình không cần sửa code nhiều, chỉ config cho log4net ghi thêm log qua giao thức UDP, gửi tới logstash là được.
  4. App Desktop của mình thì sửa lại một chút, lúc ghi log thì ghi xuống cả file lẫn gửi log theo giao thức UDP.

Sau một ngày hì hục, team mình đã có một hệ thống centralized logging với ELK Stack. Chỉ cần truy cập vào Kibana là có thể biết hệ thống đang hoạt động như thế nào.

Hệ thống logging hiện tại của công ty mình

Khi có vấn đề, thay vì lục file log, mình chỉ cần dùng Kibana để lọc ra những log trong khoảng thời gian đó, sau đó filter tí là ra, tiết kiệm được rất nhiều thời gian!

Nguồn: toidicodedao.com

SOFTECH APTECH NƠI ĐÀO TẠO LẬP TRÌNH VIÊN QUỐC TẾ TỐT NHẤT TẠI ĐÀ NẴNG.

ĐĂNG KÝ KHÓA LẬP TRÌNH VIÊN QUỐC TẾ TẠI: https://aptech-danang.edu.vn/lap-trinh-vien-quoc-te

 

Sưu tầm

CÁC TIN TỨC, SỰ KIỆN KHÁC


TÂM SỰ CỦA NGƯỜI BỐ KHI ĐỒNG HÀNH CÙNG CON HỌC TẠI APTECH ĐÀ NẴNG
TÂM SỰ CỦA NGƯỜI BỐ KHI ĐỒNG HÀNH CÙNG CON HỌC TẠI APTECH ĐÀ NẴNG
Thứ Năm, 30/12/2021 bởi APTECH

“Nghĩ cũng lạ, chặng đường 2 năm của khóa học Lập trình viên Quốc Tế tại Aptech Đà Nẵng mới đó mà đã hoàn thành rồi. Điều chú mừng nhất ở đây không phải là chừng đó thời gian con chú đạt được thành tích tốt. Mà chính là con chú đã tìm lại được động lực học tập với chính đam mê của mình. Tuy không theo con đường đại học, nhưng con đã không từ bỏ, nổ lực hết mình để giờ đây con tự tin bước vào đời, đã có được công việc ổn định.


COVID 19 - CHẤT XÚC TÁC THÚC ĐẨY CHUYỂN ĐỔI SỐ
COVID 19 - CHẤT XÚC TÁC THÚC ĐẨY CHUYỂN ĐỔI SỐ
Thứ Tư, 03/11/2021 bởi Sưu tầm kênh 14

"Chính đại dịch Covid-19 đưa Việt Nam cùng vạch xuất phát với nền công nghệ thế giới, đưa CNTT đã trở thành ngành công nghệ lớn nhất với doanh thu chiếm khoảng 14% GDP cả nước năm 2020." (Theo ông Trương Gia Bình - Chủ tịch hiệp hội VINASA).


CÓ GÌ MỚI TRONG CHƯƠNG TRÌNH LẬP TRÌNH VIÊN QUỐC TẾ ADSE PHIÊN BẢN 2021 TẠI APTECH?
Có gì mới trong chương trình Lập trình viên Quốc tế ADSE phiên bản 2021 tại Aptech?
Thứ Ba, 07/09/2021 bởi Kênh 14

Trong bối cảnh ngành CNTT tiếp tục là ngành mũi nhọn trong năm 2021, Aptech nhanh chóng cập nhật và điều chỉnh chương trình đào tạo phù hợp với xu hướng chuyển dịch của thế giới cũng như phù hợp với nhu cầu tuyển dụng của doanh nghiệp.


HỌC BỔNG VIET-FUTURE TỪ APTECH HO
HỌC BỔNG VIET-FUTURE TỪ APTECH HO
Thứ Hai, 02/08/2021 bởi Aptech Đà Nẵng

Học bổng Viet-Future Scholarship - Một chương trình đặc biệt do aptech HO dành để thu hút học sinh vừa học xong lớp 12, chọn sự nghiệp ngành IT.


BỎ NGANG NGÀNH SƯ PHẠM, “BÓNG HỒNG” CHINH PHỤC NGÀNH LẬP TRÌNH
Bỏ ngang ngành sư phạm, “bóng hồng” chinh phục ngành Lập trình
Thứ Ba, 15/06/2021 bởi Aptech Đà Nẵng

Cá tính, mạnh mẽ, dám thay đổi và kiên trì bám đuổi mục tiêu, cô nàng Tưởng Thị Linh đã đập tan định kiến “chỉ có con trai mới làm được lập trình viên” và nay đang nắm giữ vị trí developer tại FPT Complex Đà Nẵng-một trong những công ty lớn về CNTT tại khu vực miền Trung.


KHỞI ĐẦU SỰ NGHIỆP IT CÙNG HỌC BỔNG TỪ APTECH TOÀN CẦU!
KHỞI ĐẦU SỰ NGHIỆP IT CÙNG HỌC BỔNG TỪ APTECH TOÀN CẦU!
Thứ Năm, 10/06/2021 bởi Aptech Vietnam

Bạn từ lâu đã muốn học ngành Lập trình? Bạn thấy rõ tiềm năng sự nghiệp ngành IT? Vậy thì hãy khởi đầu ngay sự nghiệp Lập trình viên cùng học bổng của Tập Đoàn APTECH toàn cầu!

XEM THÊM


KẾT NỐI VỚI CHÚNG TÔI