Skip to content

Giám sát, Ghi nhật ký và Cảnh báo

💡 Hướng dẫn học tập: Chương này không yêu cầu nền tảng lập trình, thông qua các minh họa tương tác để giúp bạn hiểu toàn bộ hệ thống kiến thức về vận hành. Từ giám sát và cảnh báo đến khắc phục sự cố, từ lập kế hoạch dung lượng đến vận hành tự động, nắm vững toàn diện kỹ năng vận hành hệ thống trực tuyến.

0. Lời mở đầu: Đưa hệ thống lên production mới chỉ là bắt đầu

Nhiều người mới nghĩ rằng: "Triển khai code lên production là xong nhiệm vụ."

Sai lầm lớn!

Đưa hệ thống lên production chỉ là điểm khởi đầu của công việc vận hành. Cũng giống như mua một chiếc xe mới, việc bảo dưỡng, sửa chữa và đổ xăng sau đó mới là trạng thái bình thường.

Vận hành có ba mục tiêu:

  1. Tính ổn định (Stability): Hệ thống không bị sập, dịch vụ luôn khả dụng
  2. Hiệu năng (Performance): Phản hồi nhanh, trải nghiệm người dùng tốt
  3. Bảo mật (Security): Dữ liệu không bị rò rỉ, ngăn chặn tấn công

1. Hệ thống giám sát (Monitoring)

Giám sát là "đôi mắt" của vận hành. Một hệ thống không có giám sát giống như lái xe bịt mắt, có vấn đề cũng không biết.

1.1 Ba cấp độ giám sát

实时监控面板 (Monitoring Dashboard)
运维的"眼睛" - 让系统状态一目了然
CPU 使用率45%
正常
内存使用率62%
正常
磁盘使用率78%
警告
网络带宽34%
正常
磁盘 I/O55%
正常
负载均衡42%
正常
正常 (Normal)
警告 (Warning)
严重 (Critical)

Giám sát cơ sở hạ tầng: Tập trung vào tài nguyên phần cứng máy chủ

  • Mức sử dụng CPU
  • Mức sử dụng bộ nhớ
  • Dung lượng ổ đĩa và I/O
  • Băng thông mạng

Giám sát ứng dụng: Tập trung vào trạng thái chạy của phần mềm

  • QPS (Số request mỗi giây)
  • Thời gian phản hồi (Độ trễ)
  • Tỷ lệ lỗi
  • Tình trạng gọi dịch vụ phụ thuộc

Giám sát nghiệp vụ: Tập trung vào sức khỏe kinh doanh

  • DAU/MAU (Người dùng hoạt động hàng ngày/hàng tháng)
  • Số lượng đơn hàng
  • Tỷ lệ thanh toán thành công
  • Tỷ lệ giữ chân người dùng

1.2 Bộ công cụ giám sát

Công cụMục đíchĐặc điểm
PrometheusThu thập và lưu trữ chỉ sốCơ sở dữ liệu chuỗi thời gian, phù hợp cho dữ liệu giám sát
GrafanaBảng điều khiển trực quanBiểu đồ và dashboard mạnh mẽ
ZabbixGiám sát tổng hợpCông cụ lâu đời, chức năng toàn diện
DatadogNền tảng giám sát SaaSGiải pháp tất cả trong một, trả phí

Điểm then chốt: Giám sát phải phân tầng, bao phủ toàn diện từ cơ sở hạ tầng đến nghiệp vụ, tránh "điểm mù".


2. Hệ thống cảnh báo (Alerting)

Sau khi giám sát phát hiện vấn đề, cần thông báo kịp thời cho nhân viên vận hành, đây chính là cảnh báo.

2.1 Quy trình cảnh báo

告警流程 (Alerting Flow)
从发现异常到通知运维的自动化流程
1
监控采集
Prometheus 每隔 15s 采集一次指标
2
规则评估
Alertmanager 评估是否满足告警条件
3
告警分组
相似告警合并,避免轰炸
4
静默判断
检查是否在静默时间(如维护窗口)
5
路由分发
根据标签分发到不同接收器
6
发送通知
通过钉钉/邮件/短信通知值班人员
告警级别说明
P0最高优先级,立即处理(如核心服务宕机)
P1高优先级,30分钟内处理(如部分功能异常)
P2中优先级,当天处理(如性能下降)
P3低优先级,本周处理(如资源使用率偏高)

2.2 Thiết kế cấp độ cảnh báo

Phân cấp cảnh báo hợp lý giúp tránh "mệt mỏi cảnh báo":

Cấp độThời gian phản hồiTình huống điển hìnhKênh thông báo
P0Ngay lập tức (trong 5 phút)Dịch vụ cốt lõi bị sập, thanh toán thất bạiĐiện thoại + SMS + DingTalk
P1Trong 30 phútMột số chức năng bất thường, hiệu năng giảm nghiêm trọngSMS + DingTalk + Email
P2Xử lý trong ngàyMức sử dụng tài nguyên cao, lỗi ngẫu nhiênDingTalk + Email
P3Xử lý trong tuầnVấn đề không cốt lõi, đề xuất tối ưuEmail

2.3 Hội tụ và giảm nhiễu cảnh báo

Vấn đề nhức nhối: Một vấn đề nhỏ có thể kích hoạt hàng trăm đến hàng nghìn cảnh báo, khiến nhân viên trực trở nên tê liệt.

Giải pháp:

  1. Nhóm cảnh báo: Gộp các cảnh báo tương tự (ví dụ: nhiều vấn đề trên cùng một máy chủ được gộp thành một)
  2. Ức chế cảnh báo: Nếu vấn đề cha đã được kích hoạt, vấn đề con không lặp lại cảnh báo
  3. Quy tắc tắt tiếng: Tự động tạm dừng cảnh báo trong thời gian bảo trì
  4. Giới hạn tần suất: Cùng một cảnh báo không thông báo lặp lại trong thời gian ngắn

Điểm then chốt: Cảnh báo phải "ít mà chất", mỗi cảnh báo đều đáng để xử lý.


3. Quản lý nhật ký (Logging)

Nhật ký là "hộp đen" để điều tra vấn đề.

3.1 Phân cấp nhật ký

javascript
console.debug('Thông tin debug chi tiết') // Sử dụng khi phát triển
console.info('Thông tin chung') // Ghi lại luồng hoạt động bình thường
console.warn('Thông tin cảnh báo') // Vấn đề tiềm ẩn
console.error('Thông tin lỗi') // Lỗi cần chú ý

3.2 Nhật ký có cấu trúc

Nhật ký truyền thống (không tốt):

2024-01-15 10:23:45 ERROR User john failed to login, attempts=3, ip=192.168.1.100

Nhật ký có cấu trúc (khuyến nghị):

json
{
  "timestamp": "2024-01-15T10:23:45Z",
  "level": "ERROR",
  "message": "User login failed",
  "user": "john",
  "attempts": 3,
  "ip": "192.168.1.100",
  "service": "auth-service"
}

3.3 ELK Stack nhật ký

ELK = Elasticsearch + Logstash + Kibana

  • Logstash: Thu thập và lọc nhật ký
  • Elasticsearch: Lưu trữ và tìm kiếm nhật ký
  • Kibana: Truy vấn trực quan nhật ký

Thực tiễn tốt nhất:

  • ✅ Thông tin nhạy cảm (mật khẩu, token) không được ghi vào nhật ký
  • ✅ Thao tác quan trọng (đăng nhập, thanh toán, thay đổi quyền) phải được ghi lại
  • ✅ Nhật ký phải bao gồm ngữ cảnh (ID người dùng, ID request, timestamp)
  • ✅ Định kỳ dọn dẹp nhật ký hết hạn, tránh đầy ổ đĩa

4. Theo dõi liên kết (Tracing)

Trong kiến trúc microservice, một request có thể đi qua hàng chục service, làm thế nào để theo dõi đường dẫn đầy đủ của nó?

Trace ID và Span ID

  • Trace ID: Định danh duy nhất của toàn bộ chuỗi request (giống như mã vận đơn)
  • Span ID: Định danh của một lần gọi service đơn lẻ (giống như mỗi trạm trung chuyển)

4.1 Minh họa theo dõi phân tán

分布式链路追踪 (Distributed Tracing)
一个请求在微服务间流转的完整路径
Trace ID:a1b2c3d4-e5f6-7890-abcd-ef1234567890
总耗时:450ms
调用服务数:6
0ms
45ms
90ms
135ms
180ms
225ms
270ms
315ms
360ms
405ms
450ms
API Gateway
POST /api/order/create
450ms
User Service
验证用户身份
45ms
Product Service
查询商品信息
85ms
Inventory Service
扣减库存
120ms
Payment Service
创建支付订单
95ms
Order Service
保存订单记录
25ms
正常 (≤200ms)
慢调用 (>200ms)
错误
💡 观察要点
  • 点击"性能瓶颈"查看数据库查询慢导致的延迟
  • 点击"错误追踪"查看库存服务异常如何影响整个链路
  • 每个 Span 都有唯一的 Span ID,通过 Trace ID 关联
  • 时间条越长,表示该服务耗时越长

4.2 Tiêu chuẩn OpenTelemetry

OpenTelemetry (OTel) là tiêu chuẩn ngành cho theo dõi liên kết, cung cấp API và SDK thống nhất.

javascript
// Ví dụ: Sử dụng OpenTelemetry để ghi lại Span
import { trace } from '@opentelemetry/api'

const tracer = trace.getTracer('my-service')

async function processOrder(orderId) {
  // Tạo một Span
  const span = tracer.startSpan('processOrder')

  try {
    // Đặt thuộc tính
    span.setAttribute('order.id', orderId)

    // Logic nghiệp vụ...
    await validateOrder(orderId)
    await saveToDatabase(orderId)

    span.setStatus({ code: SpanStatusCode.OK })
  } catch (error) {
    span.recordException(error)
    span.setStatus({ code: SpanStatusCode.ERROR, message: error.message })
  } finally {
    span.end() // Kết thúc Span
  }
}

Điểm then chốt: Theo dõi liên kết giúp nhanh chóng xác định điểm nghẽn hiệu năng và điểm lỗi, là công cụ thiết yếu cho microservice.


5. Quy trình khắc phục sự cố

Sự cố trực tuyến là không thể tránh khỏi, điều quan trọng là phản hồi nhanh, khôi phục nhanh.

5.1 Quy trình xử lý sự cố

故障响应流程 (Incident Response)
专业团队如何处理线上故障
1
故障发现
T+0 分钟
监控系统自动发现异常指标
关键动作:
  • 监控检测到订单服务错误率从 0.1% 飙升到 8.5%
  • Alertmanager 立即触发 P1 告警
  • 值班人员收到钉钉和短信通知
常用工具:
PrometheusGrafanaAlertmanager
2
快速响应
T+3 分钟
值班人员确认故障并启动应急流程
3
故障定位
T+8 分钟
通过日志和追踪系统分析根因
4
故障修复
T+18 分钟
实施临时解决方案恢复服务
5
恢复验证
T+21 分钟
确认服务完全恢复正常
6
故障复盘
T+48 小时
总结经验教训,制定改进计划
🎯 故障处理最佳实践
快速响应
建立 15 分钟响应机制,P0 故障立即电话通知
📢
信息同步
定期向用户和内部同步故障进展,避免猜测
🔍
保留现场
故障现场数据(日志、监控)完整留存,便于分析
📝
blameless 文化
复盘对事不对人,聚焦流程改进而非个人责任

5.2 Công cụ điều tra thường dùng

Công cụMục đíchTình huống điển hình
tcpdumpPhân tích bắt gói tinMạng không thông, mất gói dữ liệu
straceTheo dõi system callTiến trình bị treo, vấn đề quyền file
ArthasChẩn đoán JavaCPU tăng cao, rò rỉ bộ nhớ, deadlock
top/htopGiám sát tài nguyên hệ thốngCPU/Bộ nhớ chiếm dụng cao
netstatXem kết nối mạngCổng bị chiếm, số lượng kết nối bất thường
lsofXem file đang mởFile bị chiếm, ổ đĩa đầy

Ví dụ Arthas (công cụ chẩn đoán Java mã nguồn mở của Alibaba):

bash
# Xem 5 thread chiếm CPU cao nhất
$ top -H -p 12345

# Xem thời gian gọi của một phương thức
$ trace com.example.OrderService createOrder

# Xem trường tĩnh của lớp
$ getstatic com.example.Config MAX_CONNECTIONS

# Hot deploy code (không cần khởi động lại)
$ mc /tmp/Test.java
$ redefine /tmp/Test.class

5.3 Tổng kết sau sự cố (Post-mortem)

Tổng kết sau sự cố không phải là cuộc họp truy cứu trách nhiệm!

Mục đích của tổng kết sau sự cố là:

  1. Sắp xếp dòng thời gian sự cố
  2. Tìm ra nguyên nhân gốc rễ (Root Cause Analysis)
  3. Tổng kết bài học kinh nghiệm
  4. Xây dựng biện pháp cải tiến

Phương pháp phân tích 5 Why:

Hỏi "tại sao" ít nhất 5 lần để tìm ra nguyên nhân gốc rễ:

  • Tại sao dịch vụ bị sập?
    • Vì tràn bộ nhớ
  • Tại sao tràn bộ nhớ?
    • Vì dữ liệu cache quá nhiều
  • Tại sao dữ liệu cache quá nhiều?
    • Vì không đặt thời gian hết hạn
  • Tại sao không đặt thời gian hết hạn?
    • Vì đã bỏ sót khi phát triển
  • Nguyên nhân gốc rễ: Thiếu code review và test case

Điểm then chốt: Xây dựng văn hóa blameless, tập trung vào cải tiến quy trình thay vì trách nhiệm cá nhân.


6. Tối ưu hiệu năng

6.1 Phân tích điểm nghẽn hiệu năng

Tư duy tối ưu từ trên xuống dưới:

Người dùng cảm nhận

Tối ưu frontend (giảm request, CDN, lazy loading)

Tối ưu mạng (HTTP/2, nén, kết nối dài)

Tối ưu backend (cache, bất đồng bộ, xử lý hàng loạt)

Tối ưu cơ sở dữ liệu (chỉ mục, tối ưu truy vấn, sharding)

Tối ưu hệ thống (tham số kernel, JVM tuning)

6.2 Tối ưu cơ sở dữ liệu

Tối ưu chỉ mục:

sql
-- Truy vấn chậm (không có chỉ mục)
SELECT * FROM orders WHERE user_id = 12345;

-- Sau khi tạo chỉ mục, nhanh hơn 100 lần
CREATE INDEX idx_user_id ON orders(user_id);

Tối ưu truy vấn:

sql
-- ❌ Tránh SELECT *
SELECT * FROM users WHERE id = 123;

-- ✅ Chỉ truy vấn các trường cần thiết
SELECT id, name, email FROM users WHERE id = 123;

-- ❌ Tránh IN clause quá nhiều
SELECT * FROM orders WHERE user_id IN (1, 2, 3, ..., 10000);

-- ✅ Sử dụng JOIN hoặc truy vấn hàng loạt
SELECT * FROM orders o JOIN user_ids u ON o.user_id = u.id;

6.3 Tối ưu cache

Kiến trúc cache đa cấp:

Cache trình duyệt (CDN)

Cache cục bộ (Bộ nhớ/Guava)

Cache phân tán (Redis/Memcached)

Cơ sở dữ liệu (MySQL/PostgreSQL)

Chiến lược cập nhật cache:

Chiến lượcƯu điểmNhược điểmTình huống phù hợp
Cache-AsideĐơn giản, đáng tin cậyTruy vấn đầu tiên chậmĐọc nhiều ghi ít
Write-ThroughTính nhất quán dữ liệu tốtGhi chậmĐọc ghi cân bằng
Write-BehindGhi cực nhanhCó thể mất dữ liệuGhi nhiều đọc ít, chấp nhận không nhất quán tạm thời

Điểm then chốt: Cache không phải là viên đạn bạc, cần xem xét các vấn đề như tính nhất quán, avalanche, penetration (tham khảo chương "Thiết kế cache hệ thống").


7. Lập kế hoạch dung lượng

7.1 Đánh giá dung lượng

容量规划计算器 (Capacity Planning)
估算系统需要多少台服务器才能满足需求
📊 业务指标
%
次/秒
💡 通常高峰期流量是平均流量的 2-3 倍,建议预留 50-100% 冗余应对突发流量
📈 容量评估结果
日均总请求量
5,000,000 次/天
高峰期 QPS (目标)
75 次/秒
理论所需服务器
1 台
推荐配置 (含冗余)
2 台
💰 月成本估算 (云服务器)
阿里云 (4核8G)
¥600/月
腾讯云 (4核8G)
¥560/月
AWS (t3.xlarge)
¥1,000/月
🎯 容量规划要点
1️⃣
以峰值为核心
不能按平均流量规划,必须按高峰期流量(通常是平均的 2-3 倍)来准备
2️⃣
预留冗余空间
至少预留 50% 冗余,用于应对突发流量、服务器故障、维护窗口
3️⃣
定期压测验证
每季度进行压力测试,验证实际容量是否满足预估
4️⃣
弹性扩缩容
结合云服务的自动扩缩容,在高峰期自动增加实例
📐 计算公式
日均请求量:DAU × 人均请求次数
平均 QPS:日均请求量 ÷ 86400 秒
高峰 QPS:平均 QPS × 高峰系数 (2-3 倍)
所需服务器:高峰 QPS × 冗余系数 ÷ 单机 QPS

7.2 Kiểm tra áp lực (Stress Testing)

Lựa chọn công cụ:

Công cụĐặc điểmTình huống phù hợp
JMeterChức năng mạnh, trực quan hóaKiểm tra áp lực HTTP API
wrk/abNhẹ, dòng lệnhBenchmark nhanh
LocustPython script, phân tánKiểm tra áp lực tình huống phức tạp
K6Hiện đại, JS scriptTích hợp CI/CD

Ví dụ wrk:

bash
# Cài đặt wrk
$ brew install wrk  # macOS
$ apt install wrk   # Ubuntu

# Kiểm tra áp lực HTTP API (10 thread, chạy 30 giây)
$ wrk -t10 -c100 -d30s http://example.com/api/users

# Đầu ra:
# Running 30s test @ http://example.com/api/users
#   10 threads and 100 connections
#   Thread Stats   Avg      Stdev     Max   +/- Stdev
#     Latency    45.32ms   12.45ms 120.50ms   87.56%
#     Req/Sec     2.12k   123.45    3.45k    89.01%
#   632450 requests in 30.00s, 1.23GB read
# Requests/sec:  21081.67

7.3 Tự động mở rộng và thu hẹp linh hoạt

Tự động mở rộng trong thời đại cloud native:

yaml
# Kubernetes HPA (Horizontal Pod Autoscaler)
apiVersion: autoscaling/v2
kind: HorizontalPodAutoscaler
metadata:
  name: my-app-hpa
spec:
  scaleTargetRef:
    apiVersion: apps/v1
    kind: Deployment
    name: my-app
  minReplicas: 2
  maxReplicas: 10
  metrics:
    - type: Resource
      resource:
        name: cpu
        target:
          type: Utilization
          averageUtilization: 70

Khi mức sử dụng CPU vượt quá 70%, tự động mở rộng Pod (tối đa 10 pod)

Điểm then chốt: Kết hợp với dự đoán nghiệp vụ (như Double 11) để mở rộng trước, tránh không kịp.


8. Vận hành bảo mật

8.1 Kiểm soát truy cập

Nguyên tắc quyền tối thiểu:

  • Nhà phát triển chỉ được truy cập môi trường phát triển
  • Nhân viên vận hành chỉ được truy cập môi trường production và cần phê duyệt
  • Thao tác nhạy cảm với cơ sở dữ liệu cần xác nhận lần hai

Máy chủ bastion (Jump Server):

Tất cả thao tác vận hành được thực hiện qua máy chủ bastion, ghi lại nhật ký thao tác đầy đủ.

8.2 Sao lưu dữ liệu

Nguyên tắc sao lưu 3-2-1:

  • 3 bản sao dữ liệu (1 bản gốc + 2 bản sao lưu)
  • 2 loại phương tiện lưu trữ khác nhau (ổ đĩa cục bộ + lưu trữ đám mây)
  • 1 bản sao lưu ngoại vi (phòng chống thảm họa đơn điểm)

Chiến lược sao lưu:

LoạiTần suấtThời gian giữRTORPO
Sao lưu toàn phầnHàng tuần1 tháng4 giờ24 giờ
Sao lưu tăng dầnHàng ngày1 tuần2 giờ1 giờ
Sao lưu thời gian thựcTheo giây7 ngàyVài phútVài giây

RTO (Recovery Time Objective): Mục tiêu thời gian khôi phục (dịch vụ bị gián đoạn tối đa bao lâu) RPO (Recovery Point Objective): Mục tiêu điểm khôi phục (mất tối đa bao nhiêu dữ liệu)

8.3 Quét lỗ hổng

Quét định kỳ:

  • Quét mã nguồn: SonarQube, ESLint (phát hiện lỗ hổng tiềm ẩn)
  • Quét phụ thuộc: npm audit, Snyk (phát hiện lỗ hổng thư viện bên thứ ba)
  • Quét container: Trivy, Clair (phát hiện lỗ hổng image)
bash
# Ví dụ npm audit
$ npm audit

found 3 vulnerabilities (1 moderate, 2 high)

Package         Severity  Vulnerable versions
lodash          high      <4.17.21
express         moderate  4.0.0 - 4.18.2

# Tự động sửa
$ npm audit fix

9. Vận hành tự động (DevOps)

9.1 CI/CD Pipeline

yaml
# Ví dụ .gitlab-ci.yml
stages:
  - test
  - build
  - deploy

test:
  stage: test
  script:
    - npm install
    - npm test
  tags:
    - docker

build:
  stage: build
  script:
    - docker build -t myapp:$CI_COMMIT_SHA .
    - docker push registry.example.com/myapp:$CI_COMMIT_SHA
  only:
    - main

deploy:
  stage: deploy
  script:
    - kubectl set image deployment/myapp myapp=registry.example.com/myapp:$CI_COMMIT_SHA
  environment:
    name: production
  when: manual # Kích hoạt triển khai thủ công

9.2 Cơ sở hạ tầng dưới dạng mã (IaC)

Ví dụ Terraform (quản lý tài nguyên đám mây):

hcl
# main.tf
resource "aws_instance" "web" {
  ami           = "ami-0c55b159cbfafe1f0"
  instance_type = "t2.micro"

  tags = {
    Name = "WebServer"
    Env  = "production"
  }
}

resource "aws_security_group" "web" {
  name = "web-sg"

  ingress {
    from_port   = 80
    to_port     = 80
    protocol    = "tcp"
    cidr_blocks = ["0.0.0.0/0"]
  }
}

Ưu điểm:

  • ✅ Quản lý phiên bản: Tất cả cấu hình trong Git
  • ✅ Có thể lặp lại: Tính nhất quán giữa các môi trường
  • ✅ Có thể kiểm toán: Lịch sử thay đổi rõ ràng
  • ✅ Có thể rollback: Nhanh chóng khôi phục về phiên bản trước

9.3 Thực hành GitOps

GitOps = Git + IaC + Automation

Ý tưởng cốt lõi: Kho Git là nguồn chân lý duy nhất của cơ sở hạ tầng

Quy trình làm việc:

1. Sửa file cấu hình (push lên Git)

2. Thay đổi kho Git kích hoạt CI/CD

3. Tự động thực thi terraform apply/kubectl apply

4. Cơ sở hạ tầng tự động cập nhật

5. Giám sát đối chiếu trạng thái thực tế với trạng thái mong đợi

Công cụ: ArgoCD, Flux (triển khai Kubernetes)


10. Tổng kết và thực tiễn tốt nhất

Vận hành là một hệ thống rộng lớn, nhưng cốt lõi có thể tóm tắt như sau:

10.1 Mô hình trưởng thành vận hành

Cấp độĐặc điểmThực hành
Sơ cấpPhản ứng thụ động, thao tác thủ côngCó vấn đề mới xử lý, triển khai thủ công
Trung cấpTự động hóa, tiêu chuẩn hóaCI/CD, giám sát cảnh báo, tài liệu hóa
Cao cấpPhòng ngừa là chính, tự phục hồiLập kế hoạch dung lượng, diễn tập sự cố, tự động mở rộng
Chuyên giaThông minh hóa, không cần giám sátAIOps, Chaos Engineering, Serverless

10.2 Một ngày của kỹ sư vận hành

09:00 - Xem cảnh báo ban đêm, xác nhận trạng thái hệ thống
10:00 - Xử lý vấn đề người dùng phản hồi
11:00 - Tham gia họp hàng tuần với đội phát triển, đánh giá rủi ro vận hành của giải pháp mới
14:00 - Tối ưu truy vấn chậm, nâng cao hiệu năng
15:00 - Code Review
16:00 - Viết tài liệu triển khai, cập nhật quy tắc giám sát
17:00 - Diễn tập sự cố (Chaos Engineering)
18:00 - Bàn giao ca trực

10.3 Lộ trình học tập

Giai đoạn nhập môn (1-3 tháng):

  • Học các lệnh Linux thường dùng
  • Hiểu hệ thống giám sát (Prometheus + Grafana)
  • Nắm vững truy vấn nhật ký (ELK)

Giai đoạn nâng cao (3-6 tháng):

  • Hiểu sâu về công nghệ container (Docker + K8s)
  • Nắm vững một công cụ chẩn đoán (Arthas, tcpdump)
  • Thực hành CI/CD pipeline

Giai đoạn cao cấp (6-12 tháng):

  • Tinh chỉnh hiệu năng (cơ sở dữ liệu, JVM, mạng)
  • Lập kế hoạch dung lượng và tối ưu chi phí
  • Tổng kết sự cố và cải tiến quy trình

Giai đoạn chuyên gia (trên 1 năm):

  • Thiết kế kiến trúc (tính sẵn sàng cao, khắc phục thảm họa)
  • Chaos Engineering (chủ động tiêm lỗi)
  • AIOps (vận hành thông minh)

11. Bảng tra cứu thuật ngữ (Glossary)

Thuật ngữTên đầy đủGiải thích
Monitoring-Giám sát, quan sát trạng thái chạy của hệ thống theo thời gian thực.
Alerting-Cảnh báo, thông báo cho nhân viên liên quan khi có bất thường.
Logging-Nhật ký, ghi lại các sự kiện trong quá trình hệ thống chạy.
Tracing-Theo dõi liên kết, theo dõi đường dẫn đầy đủ của request trong hệ thống phân tán.
QPSQueries Per SecondSố request mỗi giây, đo lường thông lượng hệ thống.
Latency-Độ trễ, thời gian từ khi request được gửi đi đến khi nhận phản hồi.
RTORecovery Time ObjectiveMục tiêu thời gian khôi phục, dịch vụ bị gián đoạn tối đa bao lâu.
RPORecovery Point ObjectiveMục tiêu điểm khôi phục, mất tối đa bao nhiêu dữ liệu.
Post-mortem-Tổng kết sau sự cố, phân tích nguyên nhân sự cố và biện pháp cải tiến.
CI/CDContinuous Integration/DeliveryTích hợp liên tục và phân phối liên tục, tự động hóa kiểm thử và triển khai.
IaCInfrastructure as CodeCơ sở hạ tầng dưới dạng mã, quản lý máy chủ, mạng và các tài nguyên khác bằng code.
GitOps-Vận hành Git, kho Git là nguồn chân lý duy nhất của cơ sở hạ tầng.
ELKElasticsearch + Logstash + KibanaBộ ba thu thập, lưu trữ và trực quan hóa nhật ký.
SLAService Level AgreementThỏa thuận cấp độ dịch vụ, cam kết về tính khả dụng của dịch vụ (ví dụ: 99.9%).
Blameless-Văn hóa không đổ lỗi, tổng kết sau sự cố tập trung vào cải tiến quy trình thay vì trách nhiệm cá nhân.

12. Đọc thêm