Skip to content

Commit 877de17

Browse files
authored
Merge pull request MichaelCade#512 from vntechies/main
added vi week 12 posts
2 parents 0e0e66c + 4ce2cd1 commit 877de17

5 files changed

Lines changed: 620 additions & 0 deletions

File tree

2022/vi/Days/day79.md

Lines changed: 83 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,83 @@
1+
---
2+
title: '#90DaysOfDevOps - Bức tranh toàn cảnh: Quản lý log - Ngày 79'
3+
published: false
4+
description: 90DaysOfDevOps - Bức tranh toàn cảnh: Quản lý log
5+
tags: 'devops, 90daysofdevops, learning'
6+
cover_image: null
7+
canonical_url: null
8+
id: 1049057
9+
---
10+
11+
## Bức tranh toàn cảnh: Quản lý Log
12+
13+
Tiếp nối về giải pháp giám sát cơ sở hạ tầng, quản lý log là một mảnh ghép khác về khả năng quan sát tổng thể.
14+
15+
### Quản lý và tổng hợp Log
16+
17+
Hãy nói về hai khái niệm cốt lõi, trong đó khái niệm đầu tiên là tổng hợp log và cách thu thập và gắn tag các log ứng dụng từ nhiều dịch vụ khác nhau trong một bảng điều khiển duy nhất có thể tìm kiếm dễ dàng.
18+
19+
Một trong những hệ thống đầu tiên cần được xây dựng trong một hệ thống quản lý hiệu suất ứng dụng (APM) là tổng hợp log. Quản lý hiệu suất ứng dụng là phần của vòng đời DevOps khi mọi thứ đã được xây dựng và triển khai, bạn cần đảm bảo rằng chúng vẫn hoạt động liên tục, có đủ tài nguyên được phân bổ và lỗi không hiển thị cho người dùng. Trong hầu hết các triển khai trên môi trường sản xuất, nhiều sự kiện liên quan tạo ra log trên các dịch vụ. Ví dụ, với Google, một lần tìm kiếm duy nhất có thể phát sinh truy cập vào mười dịch vụ khác nhau trước khi kết quả được trả về cho người dùng. Nếu bạn nhận được kết quả tìm kiếm không mong đợi, điều đó có nghĩa là có vấn đề logic tại bất kỳ một trong mười dịch vụ đó. Tổng hợp log giúp các công ty như Google chẩn đoán, phát hiện các vấn đề trong môi trường sản xuất. Họ đã xây dựng một bảng điều khiển duy nhất, nơi họ có thể ánh xạ mọi request tới một ID duy nhất. Khi bạn tìm kiếm trên Google, request tìm kiếm của bạn sẽ nhận được một ID duy nhất và sau mỗi lần tìm kiếm đó đi qua một dịch vụ khác nhau, dịch vụ đó sẽ kết nối ID đó với những xử lý trong dịch vụ đó.
20+
21+
Đây là điều cơ bản của một nền tảng tổng hợp log tốt, giúp thu thập log từ mọi nơi tạo ra chúng và có thể dễ dàng tìm kiếm lại trong trường hợp có lỗi phát sinh.
22+
23+
### Ứng dụng ví dụ
24+
25+
Ứng dụng ví dụ của chúng ta là một ứng dụng web gồm có frontend và backend lưu trữ dữ liệu quan trọng trong cơ sở dữ liệu MongoDB.
26+
27+
Nếu một người dùng nói với chúng ta rằng trang web trắng toàn bộ và trả lại một thông báo lỗi, chúng ta sẽ gặp khó khăn trong việc chẩn đoán vấn đề với stack hiện tại. Người dùng sẽ cần phải gửi lỗi một cách thủ công và chúng ta cần phải kết hợp nó với log liên quan trong ba dịch vụ khác.
28+
29+
### ELK
30+
31+
Hãy cùng tìm hiểu về ELK, một stack tổng hợp log mã nguồn mở phổ biến được đặt theo tên ba thành phần của nó là Elasticsearch, Logstash và Kibana. Chúng ta sẽ cài đặt nó trong cùng một môi trường với ứng dụng ví dụ.
32+
33+
Ứng dụng web sẽ kết nối với giao diện frontend trước, sau đó kết nối với backend, backend sẽ gửi log đến Logstash và sau đó ba thành phần này sẽ hoạt động.
34+
35+
### Các thành phần của ELK
36+
37+
Elasticsearch, Logstash và Kibana: tất cả các dịch vụ gửi log đến Logstash, Logstash lấy những log này là văn bản được phát ra bởi ứng dụng. Ví dụ, trong ứng dụng web, khi bạn truy cập vào một trang web, trang web có thể ghi log truy cập của khách truy cập này vào trang này vào thời gian này, và đó là một ví dụ về một thông báo log. Những log đó sẽ được gửi đến Logstash.
38+
39+
Logstash sau đó sẽ trích xuất các thông tin từ chúng. Ví dụ, thông báo log ghi nhận người dùng đã **làm gì** vào **thời gian nào**. Bạn có thể tìm kiếm chúng một cách dễ dàng và tìm tất cả các yêu cầu được thực hiện bởi một người dùng cụ thể.
40+
41+
Logstash không lưu trữ thông tin mà lưu trữ trong Elasticsearch, một cơ sở dữ liệu hiệu quả để truy vấn văn bản. Elasticsearch hiển thị kết quả qua Kibana. Kibana là một máy chủ web kết nối với Elasticsearch và cho phép các quản trị viên hoặc các thành viên trong nhóm, như kỹ sư trực, xem các log trong môi trường sản xuất bất cứ khi nào có lỗi lớn. Bạn, với tư cách là quản trị viên, sẽ kết nối với Kibana, và Kibana sẽ truy vấn Elasticsearch để tìm các log khớp với yêu cầu của bạn.
42+
43+
Bạn có thể nhập vào thanh tìm kiếm của Kibana để tìm lỗi và Kibana sẽ yêu cầu Elasticsearch tìm các thông báo chứa chuỗi "error". Elasticsearch sẽ trả về các kết quả đã được Logstash lưu trữ. Logstash đã nhận những kết quả đó từ tất cả các dịch vụ khác.
44+
45+
### Cách sử dụng ELK để chẩn đoán vấn đề trong môi trường sản xuất
46+
47+
Một người dùng nói rằng họ thấy mã lỗi 1234567 khi họ cố gắng thực hiện một thao tác. Với cấu hình ELK, chúng ta sẽ vào Kibana, nhập 1234567 vào thanh tìm kiếm và nhấn Enter. Kết quả sẽ hiển thị các log tương ứng và một trong số đó có thể hiển thị "internal server error returning 1234567". Chúng ta sẽ thấy dịch vụ nào đã tạo ra log đó, và thời gian log đó được ghi lại. Chúng ta có thể xem các thông báo phía trên và dưới log đó trong backend để hiểu rõ hơn về những gì đã xảy ra với yêu cầu của người dùng. Chúng ta sẽ lặp lại quy trình này với các dịch vụ khác cho đến khi tìm ra nguyên nhân gây ra vấn đề.
48+
49+
### Bảo mật và truy cập vào log
50+
51+
Một phần quan trọng của việc quản lý log là đảm bảo rằng log chỉ hiển thị cho quản trị viên (hoặc những người và nhóm cần truy cập). Log có thể chứa thông tin nhạy cảm như token, chỉ những người dùng đã xác thực mới nên có quyền truy cập. Bạn không nên để Kibana lộ ra ngoài internet mà không có cách nào để xác thực.
52+
53+
### Ví dụ về các công cụ quản lý log
54+
55+
Một số nền tảng quản lý log bao gồm:
56+
57+
- Elasticsearch
58+
- Logstash
59+
- Kibana
60+
- Fluentd - một lựa chọn mã nguồn mở phổ biến
61+
- Datadog - hosted offering, thường được sử dụng tại các doanh nghiệp lớn
62+
- LogDNA - hosted offering
63+
- Splunk
64+
65+
Các nhà cung cấp dịch vụ đám mây cũng cung cấp các công cụ logging như AWS CloudWatch Logs, Microsoft Azure Monitor và Google Cloud Logging.
66+
67+
Quản lý log là một khía cạnh quan trọng của việc quan sát tổng thể các ứng dụng và môi trường cơ sở hạ tầng của bạn để chẩn đoán các vấn đề trong môi trường sản xuất. Việc cài đặt một giải pháp trọn gói như ELK hoặc CloudWatch khá đơn giản và nó giúp việc chẩn đoán và xử lý sự cố trong sản xuất dễ dàng hơn đáng kể.
68+
69+
## Tài liệu tham khảo
70+
71+
- [The Importance of Monitoring in DevOps](https://www.devopsonline.co.uk/the-importance-of-monitoring-in-devops/)
72+
- [Understanding Continuous Monitoring in DevOps?](https://medium.com/devopscurry/understanding-continuous-monitoring-in-devops-f6695b004e3b)
73+
- [DevOps Monitoring Tools](https://www.youtube.com/watch?v=Zu53QQuYqJ0)
74+
- [Top 5 - DevOps Monitoring Tools](https://www.youtube.com/watch?v=4t71iv_9t_4)
75+
- [How Prometheus Monitoring works](https://www.youtube.com/watch?v=h4Sl21AKiDg)
76+
- [Introduction to Prometheus monitoring](https://www.youtube.com/watch?v=5o37CGlNLr8)
77+
- [Promql cheat sheet with examples](https://www.containiq.com/post/promql-cheat-sheet-with-examples)
78+
- [Log Management for DevOps | Manage application, server, and cloud logs with Site24x7](https://www.youtube.com/watch?v=J0csO_Shsj0)
79+
- [Log Management what DevOps need to know](https://devops.com/log-management-what-devops-teams-need-to-know/)
80+
- [What is ELK Stack?](https://www.youtube.com/watch?v=4X0WLg05ASw)
81+
- [Fluentd simply explained](https://www.youtube.com/watch?v=5ofsNyHZwWE&t=14s)
82+
83+
Hẹn gặp lại vào [ngày 80](day80.md).

2022/vi/Days/day80.md

Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
---
2+
title: '#90DaysOfDevOps - ELK Stack - Ngày 80'
3+
published: false
4+
description: 90DaysOfDevOps - ELK Stack
5+
tags: 'devops, 90daysofdevops, learning'
6+
cover_image: null
7+
canonical_url: null
8+
id: 1048746
9+
---
10+
11+
## ELK Stack
12+
13+
Trong buổi này, chúng ta sẽ thực hành với một số tùy chọn mà chúng ta đã đề cập.
14+
15+
ELK Stack là sự kết hợp của 3 công cụ riêng biệt:
16+
17+
- [Elasticsearch](https://www.elastic.co/what-is/elasticsearch) là một công cụ tìm kiếm và phân tích miễn phí và mở rộng cho mọi loại dữ liệu, bao gồm dữ liệu văn bản, số, địa lý, cấu trúc và phi cấu trúc.
18+
19+
- [Logstash](https://www.elastic.co/logstash/) là một đường dẫn xử lý dữ liệu phía máy chủ miễn phí mã nguồn mở, nhận dữ liệu từ nhiều nguồn, chuyển đổi dữ liệu, và sau đó gửi nó đến nơi lưu trữ phù hợp.
20+
21+
- [Kibana](https://www.elastic.co/kibana/) là một giao diện người dùng miễn phí mã nguồn mở cho phép bạn trực quan hóa dữ liệu từ Elasticsearch và điều hướng trong Elastic Stack. Bạn có thể làm mọi thứ từ theo dõi tải truy vấn đến hiểu cách các yêu cầu luân chuyển qua các ứng dụng của bạn.
22+
23+
ELK stack cho phép chúng ta thu thập dữ liệu từ bất kỳ nguồn nào, ở bất kỳ định dạng nào, sau đó tìm kiếm, phân tích và trực quan hóa nó trong thời gian thực.
24+
25+
Ngoài các thành phần đã đề cập, bạn cũng có thể thấy Beats, là những tác nhân nhẹ được cài đặt trên các máy chủ biên để thu thập các loại dữ liệu khác nhau và chuyển tiếp vào stack.
26+
27+
- Logs: Log máy chủ cần được phân tích được xác định.
28+
29+
- Logstash: Thu thập log và dữ liệu sự kiện. Nó thậm chí còn phân tích và chuyển đổi dữ liệu.
30+
31+
- Elasticsearch: Dữ liệu đã được chuyển đổi từ Logstash được lưu trữ, tìm kiếm và lập chỉ mục.
32+
33+
- Kibana sử dụng cơ sở dữ liệu Elasticsearch để khám phá, trực quan hóa và chia sẻ.
34+
35+
![](../../Days/Images/Day80_Monitoring8.png)
36+
37+
[Hình ảnh từ Guru99](https://www.guru99.com/elk-stack-tutorial.html)
38+
39+
Một tài nguyên tốt giải thích về [Hướng dẫn hoàn chỉnh về ELK Stack](https://logz.io/learn/complete-guide-elk-stack/)
40+
41+
Với sự bổ sung của Beats, ELK Stack cũng được gọi là Elastic Stack.
42+
43+
Trong kịch bản thực hành, có nhiều nơi bạn có thể triển khai Elastic Stack nhưng chúng ta sẽ sử dụng docker-compose để triển khai cục bộ trên hệ thống của mình.
44+
45+
[Bắt đầu Elastic Stack với Docker Compose](https://www.elastic.co/guide/en/elastic-stack-get-started/current/get-started-stack-docker.html#get-started-docker-tls)
46+
47+
![](../../Days/Images/Day80_Monitoring1.png)
48+
49+
Bạn sẽ tìm thấy các tệp gốc và hướng dẫn mà tôi đã sử dụng tại đây [deviantony/docker-elk](https://github.com/deviantony/docker-elk)
50+
51+
Bây giờ chúng ta có thể chạy `docker-compose up -d`, lần chạy đầu tiên sẽ yêu cầu tải các images.
52+
53+
![](../../Days/Images/Day80_Monitoring2.png)
54+
55+
Nếu bạn theo dõi repository này hoặc repository mà tôi đã sử dụng, bạn sẽ có mật khẩu là "changeme" hoặc trong repository của tôi là "90DaysOfDevOps". Tên người dùng là "elastic".
56+
57+
Sau vài phút, chúng ta có thể truy cập `http://localhost:5601/` là máy chủ Kibana / container Docker của chúng ta.
58+
59+
![](../../Days/Images/Day80_Monitoring3.png)
60+
61+
Màn hình chính ban đầu của bạn sẽ trông giống như thế này.
62+
63+
![](../../Days/Images/Day80_Monitoring4.png)
64+
65+
Dưới phần "Get started by adding integrations", có một phần "try sample data", nhấp vào đây và chúng ta có thể thêm một trong những dữ liệu mẫu bên dưới.
66+
67+
![](../../Days/Images/Day80_Monitoring5.png)
68+
69+
Tôi sẽ chọn "Sample weblogs" nhưng điều này thực sự chỉ để có cái nhìn và cảm nhận về các tập dữ liệu bạn có thể nhập vào ELK stack.
70+
71+
Khi bạn đã chọn "Add Data", việc này sẽ mất một thời gian để nhập một số dữ liệu đó và sau đó bạn sẽ có tùy chọn "View Data" và danh sách các cách xem dữ liệu có sẵn trong dropdown.
72+
73+
![](../../Days/Images/Day80_Monitoring6.png)
74+
75+
Như được ghi trên bảng điều khiển:
76+
77+
**Dữ liệu Log Mẫu**
78+
79+
> Bảng điều khiển này chứa dữ liệu mẫu để bạn khám phá. Bạn có thể xem, tìm kiếm và tương tác với các trực quan hóa. Để biết thêm thông tin về Kibana, hãy kiểm tra tài liệu của chúng tôi.
80+
81+
![](../../Days/Images/Day80_Monitoring7.png)
82+
83+
Đây là việc sử dụng Kibana để trực quan hóa dữ liệu đã được thêm vào Elasticsearch thông qua Logstash. Đây không phải là tùy chọn duy nhất nhưng tôi muốn triển khai và xem qua nó.
84+
85+
Chúng ta sẽ đề cập đến Grafana vào lúc nào đó và bạn sẽ thấy một số điểm tương đồng trong việc trực quan hóa dữ liệu giữa hai công cụ này, bạn cũng đã thấy Prometheus.
86+
87+
Điểm mấu chốt mà tôi nhận thấy giữa Elastic Stack và Prometheus + Grafana là Elastic Stack hoặc ELK Stack tập trung vào log, còn Prometheus tập trung vào metrics.
88+
89+
Tôi đã đọc bài viết này từ MetricFire [Prometheus vs. ELK](https://www.metricfire.com/blog/prometheus-vs-elk/) để hiểu rõ hơn về các dịch vụ khác nhau.
90+
91+
## Tài liệu tham khảo
92+
93+
- [Understanding Logging: Containers & Microservices](https://www.youtube.com/watch?v=MMVdkzeQ848)
94+
- [The Importance of Monitoring in DevOps](https://www.devopsonline.co.uk/the-importance-of-monitoring-in-devops/)
95+
- [Understanding Continuous Monitoring in DevOps?](https://medium.com/devopscurry/understanding-continuous-monitoring-in-devops-f6695b004e3b)
96+
- [DevOps Monitoring Tools](https://www.youtube.com/watch?v=Zu53QQuYqJ0)
97+
- [Top 5 - DevOps Monitoring Tools](https://www.youtube.com/watch?v=4t71iv_9t_4)
98+
- [How Prometheus Monitoring works](https://www.youtube.com/watch?v=h4Sl21AKiDg)
99+
- [Introduction to Prometheus monitoring](https://www.youtube.com/watch?v=5o37CGlNLr8)
100+
- [Promql cheat sheet with examples](https://www.containiq.com/post/promql-cheat-sheet-with-examples)
101+
- [Log Management for DevOps | Manage application, server, and cloud logs with Site24x7](https://www.youtube.com/watch?v=J0csO_Shsj0)
102+
- [Log Management what DevOps need to know](https://devops.com/log-management-what-devops-teams-need-to-know/)
103+
- [What is ELK Stack?](https://www.youtube.com/watch?v=4X0WLg05ASw)
104+
- [Fluentd simply explained](https://www.youtube.com/watch?v=5ofsNyHZwWE&t=14s)
105+
106+
Hẹn gặp lại vào [ngày 81](day81.md).

0 commit comments

Comments
 (0)