Cấu hình gửi docker container log lên AWS Cloudwatch Logs

Cấu hình gửi docker container log lên AWS Cloudwatch LogsCuongquach.com | Nếu bạn muốn gửi log stdout/stderr của docker container lên AWS Cloudwatch Log Group từ những máy chủ EC2 Instance, không chạy các Container Orchestrator như ECS/EKS thì docker đã support logging driver awslogs từ lâu hỗ trợ bạn chuyện đó.

Youtube Video

Cấu hình gửi docker container log lên AWS Cloudwatch Logs

Điều kiện:
– Mình giả định các bạn đã biết dịch vụ AWS Cloudwatch Logs dùng để lưu trữ/tìm kiếm các log event được gửi đến dịch vụ này.
EC2 Instance của bạn phải có Instance Profile có IAM policy gửi log lên Cloudwatch Log Group hoặc bạn tự cấu hình IAM AWS Credentials trên OS (case server on-premise). Quyền hạn tối thiểu như sau :

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }
  ]
}

Docker logging drivers

Docker có thể chuyển tiếp các log container stdout/stderr đến các dịch vụ khác nhau với các logdriver tích hợp sẵn trong docker như: json-file, syslog, fluentd, awslogs, splunk,… mà không cần cài đặt thêm các log agent khác trên hệ thống.

Chúng ta sẽ sử dụng logdriver là awslogs để docker tự động gửi log container có cấu hình logdriver awslogs lên AWS Cloudwatch Logs (https://docs.docker.com/config/containers/logging/awslogs/).

Docker run

Bạn có thể chạy lệnh docker để start một container với option logging driver awslogs như sau .

# docker run -d --name cuongquachlab-nginx --log-driver=awslogs --log-opt awslogs-region=ap-southeast-1 --log-opt awslogs-group="/apps/cuongquachlab-nginx" --log-opt awslogs-create-group=true -p 80:80 nginx

Docker-compose

Sử dụng docker-compose để quản lý container của bạn với cấu hình awslogs.

# mkdir /opt/cuongquachlab-nginx
# cd /opt/cuongquachlab-nginx
# vi docker-compose.yaml
version: "3.7"
services:
  cuongquachlab-nginx:
    image: nginx:latest
    restart: always
    ports: 
    - "80:80"
    logging:
      driver: "awslogs"
      options:
        awslogs-region: "ap-southeast-1"
        awslogs-group: "/apps/cuongquachlab-nginx"
        awslogs-create-group: "true"


# docker-compose up -d 

Kiểm tra AWS Cloudwatch Logs

Bạn sẽ thấy Cloudwatch Log Group /apps/cuongquachlab-nginx mà chúng ta đã cấu hình. Bên trong là các container-id tương ứng stream name.

Nguồn: https://cuongquach.com/

Previous articleThực hành viết OPA Gatekeeper Kubernetes Policy
Next articleChỉ từ 89,000 sở hữu VPS tốc độ cao, miễn phí DirectAdmin chính hãng
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !