Quản lý log cần thiết cho nhà phát triển

Nội dung đề cập đến toàn bộ chu kỳ từ việc bắt đầu xác định nên lưu lại những nhật ký (log) nào cho đến việc thu thập và sử dụng chúng.

(4.9) 88 đánh giá

1,256 học viên

Độ khó Cơ bản

Thời gian Không giới hạn

Elasticsearch
Elasticsearch
logback
logback
Logstash
Logstash
Kibana
Kibana
Spring Boot
Spring Boot
Elasticsearch
Elasticsearch
logback
logback
Logstash
Logstash
Kibana
Kibana
Spring Boot
Spring Boot

Đánh giá từ những học viên đầu tiên

Đánh giá từ những học viên đầu tiên

4.9

5.0

Sang Do Park

100% đã tham gia

3 giờ là thời gian lý tưởng để thư giãn đầu óc, vì vậy tôi đã bắt đầu học để có thể xem như là học văn hóa vào cuối tuần. ^^ Tôi nhớ lại thời còn là sinh viên, tôi đã phải vật lộn với việc phân biệt log4j, logback và slf4j và phải vật lộn để thiết lập, vì vậy tôi đã mua và xem để nhiều nhà phát triển khác cũng có thể xem. Nội dung được sắp xếp và trình bày theo cách sử dụng và theo dõi theo cách kể chuyện, vì vậy tôi thấy hấp dẫn hơn nhiều so với các khóa học khác giải thích từng phần. Tôi nghĩ như thể mình là một sinh viên mới vào nghề đang học hỏi kinh nghiệm từ người hướng dẫn và khi xem các mẹo phát triển xuất hiện ở giữa, tôi thấy 3 giờ trôi qua thật nhanh chóng .. Nếu bạn mới bắt đầu phát triển ~ Hãy xem tất cả và xem lại ^^ Đôi khi, nhật ký sẽ cứu mạng bạn. (Đôi khi, nó cũng bị đứt ... )

5.0

요니

100% đã tham gia

Tôi đã nghe giảng rất tốt! Tôi đã dùng logback, @Sl4jf mà không thực sự hiểu rõ về chúng, nhưng giờ thì tôi đã nắm được các khái niệm! Tuy nhiên, bài giảng này không chỉ dừng lại ở các nguyên lý hay kiến thức đơn thuần mà còn đề cập đến việc xử lý log, và nếu bạn đã có kinh nghiệm xử lý log với mục đích như phản hồi CS, v.v. thì có rất nhiều điểm bạn có thể thực sự đồng cảm khi nghe. Vì vậy, tôi nghĩ tôi đã gật gù rất nhiều khi nghe giảng. Dù sao thì bài giảng cũng đã giúp ích rất nhiều cho tôi, và tôi hy vọng bạn sẽ làm thêm các bài giảng về nhiều chủ đề đa dạng hơn nữa 😊😊 (Hoặc sẽ tốt hơn nữa nếu đó là bài giảng về toàn bộ một domain cụ thể, nơi tích hợp nhiều công nghệ khác nhau.)

5.0

smh1205

100% đã tham gia

Có vẻ có thể quản lý log chủ động hơn.

Bạn sẽ nhận được điều này sau khi học.

  • Bí quyết về việc nên lưu lại những loại log nào trong ứng dụng

  • Thu thập và khai thác log sử dụng ELK Stack

Bạn vẫn đang truy cập vào máy chủ bằng SSH để xem log à?

Phương pháp đăng nhập trực tiếp vào máy chủ để kiểm tra các tệp nhật ký (log) có nhiều hạn chế. Thứ nhất, khi vận hành nhiều máy chủ, việc phải truy cập vào từng máy chủ một sẽ gây tốn nhiều thời gian và khiến việc quản lý trở nên phức tạp. Thứ hai, rất khó để theo dõi log theo thời gian thực, dẫn đến khó khăn trong việc ứng phó nhanh chóng khi có sự cố xảy ra. Ngoài ra, vì việc tìm kiếm và phân tích log được thực hiện thủ công nên có thể bỏ lỡ các thông tin quan trọng hoặc mất nhiều thời gian để phát hiện lỗi. Phương pháp này đặc biệt kém hiệu quả trong các hệ thống phân tán quy mô lớn và có thể gây ảnh hưởng tiêu cực đến tính ổn định của dịch vụ cũng như trải nghiệm người dùng. Do đó, việc áp dụng một phương pháp quản lý log có hệ thống và tự động hóa hơn là điều vô cùng cần thiết.

Quản lý log không chỉ đơn thuần là ghi lại lỗi, mà còn là một công cụ quan trọng để thấu hiểu "nhịp đập" của ứng dụng và dự đoán trước các vấn đề. Đặc biệt trong các hệ thống phân tán phức tạp hiện nay, việc quản lý log có thể quyết định đến tính ổn định của dịch vụ và trải nghiệm người dùng. Trong thực tế, khả năng nhanh chóng nắm bắt và giải quyết vấn đề giữa vô vàn dữ liệu và lưu lượng truy cập là điều vô cùng thiết yếu.

Trong bài giảng lần này "Quản lý log cần thiết cho nhà phát triển", chúng ta sẽ cùng tìm hiểu về nhiều chiến lược và mẹo có thể áp dụng ngay vào thực tế, từ việc nên để lại những loại log nào cho đến cách khai thác log. Bạn sẽ được học một cách hệ thống toàn bộ quy trình quản lý log từ đầu đến cuối và trực tiếp trải nghiệm cách log được ứng dụng trong vận hành dịch vụ như thế nào.

Đầu tiên, chúng ta sẽ tìm hiểu về những kiến thức cơ bản về log. Trong bài giảng này, bạn sẽ được hiểu về khái niệm cơ bản và tầm quan trọng của log, những thông tin nào cần được lưu lại dưới dạng log, cách sử dụng log khi xử lý ngoại lệ, cũng như ý nghĩa và cách sử dụng các cấp độ log (log level) khác nhau. Thông qua đó, bạn sẽ nhận thức được tầm quan trọng của log trong quá trình phát triển và nắm vững phương pháp ghi log hiệu quả.

Thứ hai là về thiết lập Logback. Chúng ta sẽ tìm hiểu các khái niệm cơ bản của Logback, mối liên hệ với Slf4j và học cách viết tệp cấu hình Logback thực tế thông qua thực hành. Bạn có thể nắm vững các kỹ thuật thiết lập cần thiết trong thực tế như sử dụng các Appender khác nhau để tách log thành nhiều tệp, quản lý log theo ngày và nén các tệp log. Ngoài ra, bạn cũng sẽ học cách triển khai quản lý log linh hoạt bằng cách áp dụng các thiết lập Logback khác nhau cho từng môi trường phát triển.

Tiếp theo, tôi sẽ giới thiệu về tầm quan trọng của việc thu thập log và cách sử dụng các công cụ như Elasticsearch và Logstash. Chúng ta sẽ thực hành cài đặt Elasticsearch và Logstash bằng Docker, đồng thời thực hiện quy trình chuyển log đến Elasticsearch thông qua LogstashAppender. Bạn sẽ được học cách thu thập và quản lý log hiệu quả trong môi trường phân tán, cũng như nắm vững cách kiểm tra các log đã được thu thập trong Elasticsearch một cách hiệu quả.

Cuối cùng, chúng ta sẽ tìm hiểu về phương pháp trực quan hóa và khai thác nhật ký (log). Bạn sẽ học cách sử dụng Kibana để trực quan hóa dữ liệu log và giám sát log theo thời gian thực thông qua bảng điều khiển (dashboard). Chúng ta cũng sẽ học cách nâng cao khả năng đọc hiểu log bằng cách thêm thông tin dịch vụ và máy chủ vào dữ liệu log, đồng thời xây dựng hệ thống có thể ứng phó nhanh chóng khi phát sinh lỗi thông qua việc thiết lập cảnh báo. Ngoài ra, thông qua bài thực hành kết nối với Jenkins để nhận thông báo qua Slack, bạn có thể xây dựng môi trường giám sát log có thể áp dụng ngay vào công việc thực tế.

Khóa học này cung cấp những nội dung thiết yếu cho các nhà phát triển và kỹ sư muốn học tập một cách hệ thống từ cơ bản đến nâng cao về quản lý log. Đây sẽ là trợ thủ đắc lực cho tất cả những ai muốn nâng cao tính ổn định của hệ thống thông qua việc quản lý log hiệu quả và phát triển năng lực ứng phó nhanh chóng khi có sự cố xảy ra.


Ví dụ về tệp cấu hình Logback

<configuration> <property name="LOG_FILE" value="application.log"/> <!-- Appender để gửi đến Logstash --> <appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender"> <destination>localhost:5044</destination> <encoder class="net.logstash.logback.encoder.LogstashEncoder" /> </appender> <!-- Xuất ra Console --> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- Xuất ra File --> <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> <file>${LOG_FILE}</file> <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> <fileNamePattern>application.%d{yyyy-MM-dd_HH-mm}.log.gz</fileNamePattern> <maxHistory>5</maxHistory> </rollingPolicy> <encoder> <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level [%thread] %logger{36} - %msg%n</pattern> </encoder> </appender> <!-- Cấu hình Logger --> <root level="trace"> <appender-ref ref="CONSOLE" /> <appender-ref ref="FILE" /> <appender-ref ref="LOGSTASH" /> </root> </configuration>


Ví dụ về trực quan hóa nhật ký (log)



Bạn sẽ học được những nội dung này

Tìm hiểu cơ bản về log

Bạn sẽ được học về việc nên lưu lại thông tin gì trong log, vai trò của log khi xử lý ngoại lệ, ý nghĩa và cách sử dụng các cấp độ log khác nhau để xây dựng nền tảng cho việc ghi log hiệu quả.

Logback

Nội dung này bao gồm một cách hệ thống từ các thiết lập cơ bản đến cách sử dụng Logback. Thông qua việc liên kết với Slf4j, bạn sẽ học cách quản lý log hiệu quả và thực hành các phương pháp sử dụng nhiều Appender khác nhau để tách log thành nhiều tệp hoặc quản lý log theo đơn vị ngày.

ELK Stack

Bạn sẽ được học cách thu thập và phân tích log bằng cách sử dụng ELK Stack bao gồm Elasticsearch, Logstash và Kibana. Từ việc cài đặt bằng Docker, bạn sẽ nắm vững kỹ thuật chuyển log đến Elasticsearch thông qua LogstashAppender, đồng thời sử dụng Kibana để trực quan hóa dữ liệu log và giám sát theo thời gian thực.

Lưu ý trước khi khóa học bắt đầu

Môi trường thực hành

  • Hệ điều hành và phiên bản (OS): Windows 10

  • Công cụ sử dụng: Intellij Community 2023.2, Google Chrome

Tài liệu học tập

Kiến thức tiên quyết và lưu ý

  • Khóa học này được thực hiện dựa trên ứng dụng Java và Spring Boot. Tuy nhiên, vì nội dung chính của bài giảng tập trung vào việc giải thích các khái niệm về log hơn là ở cấp độ mã nguồn, nên ngoại trừ phần 'Thiết lập Logback', bạn vẫn có thể theo dõi khóa học mà không gặp vấn đề gì ngay cả khi thực hành bằng các ngôn ngữ hoặc framework khác.

  • Bài thực hành sẽ không được thực hiện bằng cách đưa lên máy chủ mà chỉ tiến hành trên môi trường phát triển local. Mặc dù thực hành trên local, nhưng tôi có hướng dẫn cách thay đổi thiết lập khi đưa lên máy chủ thực tế, vì vậy bạn có thể thiết lập với quy trình tương tự khi triển khai lên máy chủ.

  • Nếu có bất kỳ thắc mắc nào trong quá trình học, vui lòng để lại câu hỏi. Nếu có nội dung nào cần cập nhật, tôi sẽ tiến hành cập nhật.

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Người muốn biết nên để lại những loại log nào trong ứng dụng

  • Người đã mệt mỏi với việc mỗi lần đều phải truy cập vào máy chủ thông qua SSH để xem log

Cần biết trước khi bắt đầu?

  • Kinh nghiệm phát triển ứng dụng Spring Boot

Xin chào
Đây là foo

6,194

Học viên

322

Đánh giá

117

Trả lời

4.9

Xếp hạng

9

Các khóa học

Xin chào.

Tôi là Foo, một người luôn trăn trở về việc làm thế nào để có thể truyền đạt những khái niệm mà các lập trình viên cấp dưới (junior) cảm thấy khó khăn một cách dễ hiểu nhất trong quá trình cố vấn (mentoring).

Rất mong nhận được sự giúp đỡ của mọi người.


Lịch sử

  • 08/2019 ~ Hiện tại : Nhà phát triển Java Backend tại Kakao

  • 2021. 08 ~ hiện tại : Mentor khóa học Backend DevCourse tại programmers

  • 2021. 12 ~ Hiện tại : Mentor Java Backend tại F-Lab

Sách

  • Đây là Phát triển Backend để xin việc với Java (Link)

 

Các lịch sử khác và bài giảng trên các nền tảng khác có thể được kiểm tra tại liên kết GitHub bên dưới.

GitHub - https://github.com/lleellee0

Thêm

Chương trình giảng dạy

Tất cả

17 bài giảng ∙ (3giờ 27phút)

Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

88 đánh giá

4.9

88 đánh giá

  • khd16927573님의 프로필 이미지
    khd16927573

    Đánh giá 12

    Đánh giá trung bình 5.0

    Đã chỉnh sửa

    5

    100% đã tham gia

    Tôi đã nghe giảng rất tốt! Tôi đã dùng logback, @Sl4jf mà không thực sự hiểu rõ về chúng, nhưng giờ thì tôi đã nắm được các khái niệm! Tuy nhiên, bài giảng này không chỉ dừng lại ở các nguyên lý hay kiến thức đơn thuần mà còn đề cập đến việc xử lý log, và nếu bạn đã có kinh nghiệm xử lý log với mục đích như phản hồi CS, v.v. thì có rất nhiều điểm bạn có thể thực sự đồng cảm khi nghe. Vì vậy, tôi nghĩ tôi đã gật gù rất nhiều khi nghe giảng. Dù sao thì bài giảng cũng đã giúp ích rất nhiều cho tôi, và tôi hy vọng bạn sẽ làm thêm các bài giảng về nhiều chủ đề đa dạng hơn nữa 😊😊 (Hoặc sẽ tốt hơn nữa nếu đó là bài giảng về toàn bộ một domain cụ thể, nơi tích hợp nhiều công nghệ khác nhau.)

    • foo
      Giảng viên

      Cảm ơn Yoni đã lắng nghe bài giảng kỹ lưỡng! Vui quá khi bạn chia sẻ những điểm bạn thích trong bài giảng. :) Các khóa đa dạng bạn nói có lẽ gồm cả khóa mới mở ( https://inf.run/XHEvJ ), tôi sẽ cố gắng làm thêm bài giảng chủ đề khác! Cảm ơn bạn~!

  • parksangdonews님의 프로필 이미지
    parksangdonews

    Đánh giá 17

    Đánh giá trung bình 4.8

    5

    100% đã tham gia

    3 giờ là thời gian lý tưởng để thư giãn đầu óc, vì vậy tôi đã bắt đầu học để có thể xem như là học văn hóa vào cuối tuần. ^^ Tôi nhớ lại thời còn là sinh viên, tôi đã phải vật lộn với việc phân biệt log4j, logback và slf4j và phải vật lộn để thiết lập, vì vậy tôi đã mua và xem để nhiều nhà phát triển khác cũng có thể xem. Nội dung được sắp xếp và trình bày theo cách sử dụng và theo dõi theo cách kể chuyện, vì vậy tôi thấy hấp dẫn hơn nhiều so với các khóa học khác giải thích từng phần. Tôi nghĩ như thể mình là một sinh viên mới vào nghề đang học hỏi kinh nghiệm từ người hướng dẫn và khi xem các mẹo phát triển xuất hiện ở giữa, tôi thấy 3 giờ trôi qua thật nhanh chóng .. Nếu bạn mới bắt đầu phát triển ~ Hãy xem tất cả và xem lại ^^ Đôi khi, nhật ký sẽ cứu mạng bạn. (Đôi khi, nó cũng bị đứt ... )

    • foo
      Giảng viên

      Cảm ơn Sang Do Park đã dành thời gian để đánh giá khóa học! Bạn đã nêu rõ những điểm mạnh của khóa học hơn cả phần giới thiệu khóa học 😊😊😊😊 Cảm ơn bạn đã lắng nghe khóa học!! Những nội dung bạn đã viết cũng sẽ rất hữu ích cho những người khác~

  • smh12052571님의 프로필 이미지
    smh12052571

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Có vẻ có thể quản lý log chủ động hơn.

    • kduoh님의 프로필 이미지
      kduoh

      Đánh giá 39

      Đánh giá trung bình 5.0

      5

      100% đã tham gia

      • foo
        Giảng viên

        Cảm ơn Dudu vì đánh giá khóa học nhé. ^^ Chúc bạn một ngày tốt lành~

    • thirsthay님의 프로필 이미지
      thirsthay

      Đánh giá 3

      Đánh giá trung bình 4.7

      5

      41% đã tham gia

      • foo
        Giảng viên

        Cảm ơn 떨스티님 đã để lại nhận xét về khóa học!!

    Khóa học khác của foo

    Hãy khám phá các khóa học khác của giảng viên!

    Khóa học tương tự

    Khám phá các khóa học khác trong cùng lĩnh vực!

    625.613 ₫