Computer >> Máy Tính >  >> Lập trình >> Redis

Cách xây dựng một ứng dụng để cung cấp năng lượng cho việc phân tích nhật ký của bạn bằng Redis

Khi cơ sở hạ tầng CNTT của bạn phát triển về quy mô và trở nên phức tạp, bạn có thể buộc phải dành nhiều sự quan tâm hơn để đảm bảo rằng mọi thứ được quản lý đúng cách.

Kể từ sự gia tăng của đám mây, điều này đặc biệt trở nên phù hợp hơn, vì chúng ta hiện có vô số thông tin kỹ thuật trải rộng trên nhiều địa điểm khác nhau.

Nhưng có thể thực hiện phân tích nhật ký toàn diện có thể tẻ nhạt, tốn thời gian và buồn chán một cách đau đớn.

Một cách đơn giản nhưng hiệu quả để giải phóng bản thân khỏi gánh nặng này là sử dụng phần mềm hoặc ứng dụng được thiết kế để giúp ghi nhật ký theo dõi dễ dàng… và đó chính xác là những gì Alexis Gardin đã làm trong ứng dụng của anh ấy, Logub.

Không giống như nhiều giải pháp SaaS khác, Logub có thể thực hiện các hành động này tại chỗ và mã nguồn mở. Bằng cách làm theo các bước bên dưới, bạn sẽ có thể tạo một ứng dụng sẽ thu thập, khám phá và phân tích nhật ký ứng dụng cho bạn.

Trọng tâm của ứng dụng này là sự phụ thuộc vào khả năng khám phá và phân tích nhật ký của RediSearch trên các địa điểm khác nhau với hiệu quả vô song. Hãy xem cách Alexis kết hợp ứng dụng này lại với nhau.

Nhưng trước khi đi sâu vào, chúng tôi nên cho bạn biết rằng chúng tôi cũng có một loạt các ứng dụng thú vị để bạn khám phá trên Redis Launchpad.

  1. Bạn sẽ xây dựng cái gì?
  2. Bạn sẽ cần gì?
  3. Kiến trúc
  4. Bắt đầu
  5. Cách dữ liệu được lưu trữ
  6. Cách dữ liệu được truy vấn
  7. Thanh tìm kiếm hoạt động như thế nào?
  8. Làm cách nào để tích hợp Logub vào dự án của bạn?
  9. Kết luận

1. Bạn sẽ xây dựng cái gì?

Bạn sẽ xây dựng một ứng dụng đặc biệt do Redis cung cấp để thu thập, phân tích và khám phá các ứng dụng nhật ký. Trong các bước bên dưới, chúng ta sẽ xem xét từ A-Z những gì cần thiết để tạo ứng dụng này, cùng với các thành phần bắt buộc.

Ngay cả khi bạn chưa quen với Redis, chúng tôi sẽ chỉ cho bạn chính xác cách nắm bắt cơ sở dữ liệu mạnh mẽ này. Bạn đã sẵn sàng để bắt đầu chưa?

Được rồi, chúng ta hãy đi thẳng vào.
Cách xây dựng một ứng dụng để cung cấp năng lượng cho việc phân tích nhật ký của bạn bằng Redis 2. Bạn sẽ cần gì?

  • Fluentd : được sử dụng như một phần mềm thu thập dữ liệu mã nguồn mở đa nền tảng để xử lý nhật ký.
  • Trình cắm đầu ra của Redis cho Fluent: thông thạo-plugin-redis là một plugin thông thạo để xuất ra redis.
  • Docker : được sử dụng làm nền tảng để các nhà phát triển đóng gói các ứng dụng vào vùng chứa.
  • Soạn thư Docker : được sử dụng để xác định và chạy các ứng dụng Docker nhiều vùng chứa.

3. Kiến trúc

Cách xây dựng một ứng dụng để cung cấp năng lượng cho việc phân tích nhật ký của bạn bằng Redis Fluentd thu thập tất cả nhật ký từ mỗi ứng dụng trên nhiều điểm đến khác nhau
  • Sau đó, Fluentd định dạng từng nhật ký và gửi chúng đến Redis để lưu trữ
  • Dữ liệu được lưu trữ bằng plugin Fluentd Redis - một plugin thông thạo để xuất ra redis.
  • Phần phụ trợ Logub cho phép RediSearch thực hiện tìm kiếm toàn văn bản và các trường chỉ mục do người dùng xác định.
  • 4. Bắt đầu

    Trong bản demo, một ứng dụng DEMO sẽ xuất bản nhật ký trong Logub. Bạn sẽ có thể tương tác với ứng dụng DEMO này để tạo nhật ký của mình. Sau đó, bạn sẽ có thể yêu cầu chúng trong Logub

    Điều kiện tiên quyết

    • Docker
    • Docker Compose

    Đầu tiên, hãy đảm bảo rằng các cổng nhất định đang mở trên hệ thống của bạn:8080, 8081, 3000 &6379.

    Bước 1:Sao chép kho lưu trữ

    git clone https://github.com/redis-developer/logub

    Bước 2. Khởi động ứng dụng DEMO

    • Đi tới thư mục / demo (cd ./demo)
    • Khởi chạy trình soạn thảo-docker bằng lệnh đã cho:

    Khởi chạy bản trình diễn Logub

    Vào localhost:3000 để khám phá nhật ký.

    Cách xây dựng một ứng dụng để cung cấp năng lượng cho việc phân tích nhật ký của bạn bằng Redis Có thể mất khoảng một phút để bạn thấy nhật ký xuất hiện. Bạn có thể xem nhật ký trên trang bằng cách lọc chúng bằng thanh bên ở bên phải. Ngoài ra, bạn tìm kiếm chúng bằng bộ lọc hoặc truy vấn toàn văn thông qua thanh tìm kiếm ở trên cùng.

    Khi bạn nhấp vào nhật ký, các chi tiết sẽ được hiển thị và bạn sẽ có tùy chọn để lập chỉ mục các thuộc tính của doanh nghiệp. Sau đó, các thuộc tính kinh doanh này có thể được sử dụng làm bộ lọc.

    Cách xây dựng một ứng dụng để cung cấp năng lượng cho việc phân tích nhật ký của bạn bằng Redis Nếu quay lại trang chính, bạn có thể thử tìm kiếm nhật ký mà bạn vừa tạo.

    Lưu ý: Có độ trễ khoảng 1 phút giữa quá trình tạo nhật ký trong vùng chứa và hiển thị nhật ký trong Logub. Độ trễ này là do quá trình thu thập, định dạng và nhập nhật ký vào cơ sở dữ liệu.

    5. Nó hoạt động như thế nào?

    Cách dữ liệu được lưu trữ

    Dữ liệu được lưu trữ bằng Plugin Fluentd Redis. Nó lưu trữ từng bản ghi bằng HSET. Ví dụ:thông báo GỠ LỖI cấp HSET “Hello World” chính trong chuỗi

    Cách dữ liệu được truy vấn

    Đây là đối tượng mà bạn sẽ sử dụng để thao tác nhật ký và truy xuất chúng từ Redis. Thực hiện hành động này sẽ cho phép Giao diện người dùng Logub hiển thị các bản ghi. Để thực hiện các truy vấn phức tạp trong nhật ký của mình, bạn có thể sử dụng RediSearch.

    Vì bạn có thể thay đổi lược đồ RediSearch động, bạn có thể sử dụng cấu trúc dữ liệu 'Danh sách' để theo dõi lược đồ nào được lập chỉ mục.

    Lệnh trên sẽ cho phép bạn tạo một truy vấn RediSearch văn bản thuần túy dựa trên đầu vào của người dùng. Có một loạt các QueryBuilders nhỏ được xây dựng trên đầu thư viện RediSearch. Đó là lệnh tương tự sẽ được gửi bởi Logub UI để thực hiện tìm kiếm toàn diện và hiệu quả trong nhật ký của bạn.

    Bước 2:Cách hoạt động của thanh tìm kiếm

    Bạn có thể thực hiện tìm kiếm theo thẻ hoặc tìm kiếm toàn văn. Dưới đây là một số ví dụ bạn có thể sử dụng làm mô hình nếu bạn gặp khó khăn.

    • env:dev Ut ea vero voluptate * sẽ tìm kiếm tất cả nhật ký trong môi trường dev với thông báo bắt đầu bằng Ut ea vero voluptate
    • -env:prod Ut ea vero voluptate * sẽ tìm kiếm tất cả nhật ký trong tất cả các môi trường ngoại trừ prod với thông báo bắt đầu bằng Ut ea vero voluptate
    • originRequest:France originRequest:USA sẽ tìm kiếm tất cả nhật ký có nguồn gốc trườngRequest với giá trị được đặt tại Pháp hoặc Mỹ
    • “dog” “cat” sẽ tìm kiếm tất cả các nhật ký chứa các từ “dog” và “cat”
    • - “dog” “cat” sẽ tìm kiếm tất cả các nhật ký không chứa “dog” nhưng chứa “cat”

    Để bạn có trải nghiệm thử nghiệm tốt với ứng dụng, chúng tôi thực sự khuyên bạn nên tạo nhật ký của riêng mình với sân chơi, thêm thuộc tính kinh doanh và sau đó thực hiện một số thử nghiệm chỉ để cảm nhận nó.

    Bước 3:Cách tích hợp Logub vào dự án của bạn

    Bạn sẽ yêu cầu danh sách hình ảnh Docker bên dưới để vận hành Logub:

    • Hình ảnh Logub Fluentd để thu thập và gửi nhật ký tới Redis - Hình ảnh Logub Fluentd
    • Redis hình ảnh bằng mô-đun RediSearch Redis Mod Image
    • Hình ảnh bộ điều khiển nhật ký để phục vụ các chức năng khám phá nhật ký - Hình ảnh bộ điều khiển nhật ký
    • Giao diện người dùng Logub để khám phá và truy vấn nhật ký - Hình ảnh Giao diện người dùng Logub

    Định dạng nhật ký ghi nhật ký

    Hiện tại, Logub chỉ có thể xử lý một định dạng nhật ký cụ thể. Trong tương lai, định dạng này sẽ được mở rộng và có thể tùy chỉnh nhiều hơn.

    Đây là định dạng Logub

    Xin lưu ý, những trường này không bắt buộc.

    Nếu bạn muốn thêm thuộc tính doanh nghiệp của mình, bạn sẽ cần thêm một đối tượng JSON lồng nhau có “mdc” làm khóa. Ví dụ:

    Xuất bản nhật ký trong Logub

    Để khám phá nhật ký trong Loghub, vùng chứa của bạn cần sử dụng trình điều khiển ghi nhật ký Docker Fluentd. Dưới đây là một ví dụ cấu hình để tích hợp khách hàng.

    Bước 4:Thiết lập Redis trong Logub

    Tìm kiếm lại

    Logub sử dụng chức năng của RediSearch để xử lý nhật ký ứng dụng. Khi nhật ký được lưu giữ trong cơ sở dữ liệu Redis, chúng sẽ đi kèm với 3 loại trường:

    • Thuộc tính hệ thống: là thông tin mà Docker và Fluentd cung cấp cho chúng tôi khi gửi nhật ký (ví dụ:môi trường, tên vùng chứa, v.v.).
    • Thuộc tính cơ bản: là thông tin cơ bản mà nhật ký có (ví dụ:dấu thời gian, dịch vụ, v.v.). Các thuộc tính này được lập chỉ mục tự động trong RediSearch.
    • Thuộc tính doanh nghiệp: được cung cấp bởi một người dùng logub trong một trường cụ thể. Người dùng ở đây phải tôn trọng định dạng Khóa-Giá trị (Bản đồ). Nhờ các khả năng nâng cao của RediSearch, bạn sẽ có thể lập chỉ mục các 'thuộc tính doanh nghiệp' này nếu bạn muốn thực hiện một số nghiên cứu về chúng.

    Ở đây chúng tôi có một ví dụ về nhật ký mô tả cách công cụ của chúng tôi hoạt động khi Fluentd biến dạng và tồn tại trong cơ sở dữ liệu Redis. API Logub sẽ cho phép người dùng hoặc công ty lập chỉ mục một hoặc tất cả các trường của đối tượng mdc.

    Trong dự án này, Loại dữ liệu thẻ được sử dụng rộng rãi. Nhật ký thường được tìm kiếm dựa trên thuộc tính kinh doanh khi tìm kiếm trong nhật ký (ví dụ:id khách hàng). Hơn nữa, chúng tôi cũng sử dụng TextField Datatype cho các thông báo nhật ký. Điều này cho phép người dùng thực hiện tìm kiếm toàn văn trong trường này.

    Dưới đây là một giản đồ đơn giản của quá trình tìm kiếm:

    Cách xây dựng một ứng dụng để cung cấp năng lượng cho việc phân tích nhật ký của bạn bằng Redis Để theo dõi trường được lập chỉ mục bởi người dùng, bạn cũng có thể thêm đối tượng ‘giản đồ’ sử dụng Loại danh sách của Redis.

    Cách xây dựng một ứng dụng để cung cấp năng lượng cho việc phân tích nhật ký của bạn bằng Redis Ai đã xây dựng ứng dụng này?

    Cách xây dựng một ứng dụng để cung cấp năng lượng cho việc phân tích nhật ký của bạn bằng Redis

    Alexis Gardin

    Alexis là một kỹ sư phần mềm sáng tạo hiện đang làm việc cho Zendoc. Truy cập trang GitHub của anh ấy để xem những dự án khác mà anh ấy đã tham gia.