Mất hàng giờ debug container crash vì không có log? Logging cho biết đã xảy ra gì, monitoring cho biết đang xảy ra gì — thiếu cả hai bạn như mù trong production. Giám sát với cAdvisor, Prometheus.
10 phút đọc•
Mục lục bài viết22
Bạn có biết?
Bạn có bao giờ mất hàng giờ để debug một container bị crash mà không có log không? Hoặc tự hỏi "sao container này chạy chậm quá vậy?" mà không có metrics?
Logging và monitoring là two sides of the same coin — logging cho biết đã xảy ra gì, còn monitoring cho biết đang xảy ra gì. Không có cả hai, bạn như mù trong production!
Docker Logging
1. Docker Logs Command
Cách đơn giản nhất để xem logs:
# Xem logs củacontainer
$ docker logs my-container
# Xem logs theo thời gian thực
$ docker logs -f my-container
# Xem logs với timestamps
$ docker logs -t my-container
# Xem số dòng cuối cùng
$ docker logs --tail100 my-container
# Xem logs từ thời điểm cụ thể
$ docker logs --since2024-01-01T00:00:00 my-container
$ docker logs --since 30m my-container
2. Logging Drivers
Docker hỗ trợ nhiều logging drivers khác nhau:
# Kiểm tra logging drivers được hỗ trợ
$ docker info --format'{{.LoggingDriver}}'# Các drivers có sẵn:# - json-file (mặc định)# - syslog# - journald# - gelf# - fluentd# - awslogs# - cloudwatch# - splunk
Bạn đã đi qua gần hết series Docker — giờ là lúc tổng hợp mọi kiến thức cho production! Checklist bảo mật, tối ưu hiệu năng, monitoring, chiến lược deploy và troubleshooting các lỗi thường gặp.
Quản lý container bằng tay trên nhiều server thật mệt mỏi? Docker Swarm biến nhiều host thành một cluster duy nhất — tự động phân phối, scale và tự phục hồi. Khởi tạo Swarm và deploy service.
Thay vì một tòa nhà khổng lồ, microservices xây mỗi chức năng một tòa nhà riêng — Docker là hệ thống đường xá kết nối chúng. Tìm hiểu microservices với Compose, API Gateway và Message Queue.
3. Cấu hình Logging Driver
# Chỉ định logging driver khi chạy container
$ docker run
--log-driver json-file
--log-opt max-size=10m
--log-opt max-file=3
-d myapp:latest
# Cấu hình global trong daemon.json# /etc/docker/daemon.json
{
"log-driver": "json-file",
"log-opts": {
"max-size": "10m",
"max-file": "3"
}
}
0 bình luận
Đang tải bình luận...
Để lại bình luận