Cách gửi nhật ký ứng dụng Linux đến AWS CloudWatch

theanh

Administrator
Nhân viên
AWS CloudWatch là dịch vụ giám sát do đám mây AWS cung cấp. AWS cung cấp dịch vụ giám sát mặc định cho các thông số máy chủ như Sử dụng CPU, Mạng vào, Mạng ra, v.v. AWS CloudWatch có thể được sử dụng để giám sát tùy chỉnh như sử dụng đĩa và sử dụng bộ nhớ (RAM). Đối với giám sát tùy chỉnh, chúng ta cần thực hiện một số bước để giám sát.

Tương tự như vậy, AWS CloudWatch có thể được sử dụng để giám sát nhật ký máy chủ hoặc ứng dụng. Vì đây không phải là tính năng mặc định của AWS vì những lý do hiển nhiên, chúng ta có thể định cấu hình theo yêu cầu của mình. Tùy thuộc vào người dùng mà chúng ta cần gửi nhật ký nào đến AWS CloudWatch để theo dõi.

Không giới hạn ở tài nguyên AWS​

Ngay cả khi AWS CloudWatch là dịch vụ AWS, điều đó không có nghĩa là nó chỉ có thể được sử dụng cho các phiên bản EC2, nó cũng có thể được cấu hình để gửi nhật ký ứng dụng hoặc máy chủ từ các máy ảo từ các nhà cung cấp đám mây khác và từ các máy ảo trên ổ đĩa vật lý.

Cách gửi nhật ký ứng dụng hoặc máy chủ đến AWS CloudWatch​

Để gửi nhật ký ứng dụng hoặc máy chủ đến AWS CloudWatch, chúng ta cần cài đặt tác nhân CloudWatch trên máy chủ tương ứng. Chúng ta sẽ sử dụng phiên bản AWS EC2 để đạt được mục tiêu trong blog này.

Các bước​

  1. Vai trò thích hợp được đính kèm vào phiên bản để giao tiếp với AWS CloudWatch
  2. Cài đặt tác nhân AWS CloudWatch
  3. Cấu hình tác nhân AWS CloudWatch
  4. Kiểm tra nhật ký trong cổng thông tin AWS CloudWatch

Vai trò IAM​

Để gửi nhật ký ứng dụng hoặc máy chủ đến AWS CloudWatch, chúng ta cần đính kèm một vai trò vào phiên bản EC2 với các quyền thích hợp. Vai trò này sẽ cho phép thực hiện các thay đổi trong AWS CloudWatch.

Nó phải chứa các chính sách bên dưới.
  • CreateLogStream
  • DescribeLogStream
  • CreateLogGroup
  • PutLogEvents
Chúng ta hãy tạo một vai trò trong AWS IAM.

Đi tới phần IAM từ Serviceslist trên bảng điều khiển AWS. Nếu bạn chưa có tài khoản AWS, hãy tạo một tài khoản từ tại đây.



Trên bảng điều khiển IAM, hãy đi tới Chính sách rồi Tạo chính sách.





Trên trang "Tạo chính sách", chọn "JSON" từ tab và dán chính sách JSON bên dưới bằng cách xóa chính sách mặc định.
Mã:
{ "Phiên bản": "17-10-2012", "Câu lệnh": [ { "Hiệu ứng": "Cho phép", "Hành động": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Tài nguyên": [ "arn:aws:logs:*:*:*" ] } ]}
Chính sách của bạn sẽ trông như bên dưới. Sau khi hoàn tất, hãy nhấp vào nút "Xem lại Chính sách" ở cuối trang.



Ở trang tiếp theo, bạn cần cung cấp tên cho chính sách.



Sau khi hoàn tất, hãy nhấp vào nút "Tạo Chính sách" ở cuối trang.

Sau khi tạo chính sách, bạn sẽ được chuyển hướng đến trang vai trò IAM. Vì chúng ta đã tạo chính sách bắt buộc, nên chúng ta sẽ tạo một vai trò sẽ được đính kèm vào phiên bản.





Trên trang "Tạo Vai trò", hãy chọn "EC2". Vì chúng ta sẽ đính kèm vai trò vào phiên bản EC2.



Nhấp vào nút "Tiếp theo: Quyền" ở cuối trang bên trái.

Ở trang tiếp theo, bạn sẽ được nhắc đính kèm chính sách vào vai trò. Tìm kiếm tên của chính sách bạn đã cung cấp ở bước trước. Sau khi tìm thấy, hãy chọn chính sách từ danh sách.





Sau khi hoàn tất, hãy nhấp vào nút "Tiếp theo: Thẻ" ở cuối trang.

Ở trang tiếp theo, bạn sẽ được yêu cầu cung cấp một số thẻ cho vai trò. Vì đó là bước tùy chọn, nên tôi không cung cấp bất kỳ thẻ nào cho vai trò và bỏ qua bước này.

Sau khi nhấp vào tiếp theo, bạn sẽ được nhắc đặt tên cho vai trò.



Vai trò của bạn sẽ được tạo trong vài giây.





Bây giờ chúng ta đã hoàn tất thiết lập bắt buộc từ phía cơ sở hạ tầng, hãy định cấu hình AWS CloudWatch Agent trên phiên bản EC2.

Đối với bước này, bạn cần một phiên bản EC2 đang chạy. Kết nối với phiên bản theo cách bạn muốn. Có nhiều cách để kết nối với phiên bản. Bạn có thể kiểm tra chúng tại đây.

Nếu bạn có phiên bản Amazon Linux, hãy làm theo các bước được đề cập bên dưới.

Nếu bạn đăng nhập vào phiên bản đó lần đầu tiên, hãy đảm bảo bạn chạy lệnh cập nhật bên dưới.

Các bước bên dưới, bạn có thể làm theo cho máy Amazon Linux.
Mã:
sudo yum update -y
Sau khi cập nhật hoàn tất, hãy thực hiện lệnh bên dưới để cài đặt gói awslogs.
Mã:
sudo yum install -y awslogs
Sau khi gói được cài đặt, bạn có thể thay đổi vùng trong tệp /etc/awslogs/awscli.conf.

Bây giờ, để cấu hình các bản ghi mà bạn muốn gửi trên AWS CloudWatch, hãy mở tệp /etc/awslogs/awslogs.conf và kiểm tra các dòng sau.
Mã:
[/var/log/messages]
datetime_format = %b %d %H:%M:%S
file = /var/log/messages
buffer_duration = 5000
log_stream_name = {instance_id}
initial_position = start_of_file
log_group_name = Amazon-Linux-2
Cấu hình trên cho biết đường dẫn tệp nhật ký từ hệ thống /var/log/messages của bạn sẽ được tải lên AWS CloudWatch. Cấu hình trên sẽ tạo một nhóm nhật ký trong AWS CloudWatch với tên được đề cập trong tham số log_group_name. Ngoài ra, nó sẽ có hệ thống phân cấp được đề cập trong log_stream_name.Đối với thời gian đệm, chúng ta có thể thay đổi giá trị của buffer_duration.Giá trị mặc định của buffer_duration là 5000ms.

Sau khi thực hiện các thay đổi, hãy khởi động lại ứng dụng bằng cách thực thi lệnh bên dưới. Nó sẽ khởi động lại ứng dụng awslog và tác nhân sẽ bắt đầu tải nhật ký lên AWS CloudWatch.
Mã:
$ sudo service awslogsd start
Để cài đặt và cấu hình AWS CloudWatch Agent trên RHEL hoặc CentOS, bạn có thể làm theo các bước dưới đây.

Thực hiện lệnh dưới đây để tải xuống gói.
Mã:
curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O
Bạn sẽ tìm thấy một tệp có tên awslogs-agent-setup.py ở vị trí hiện tại. Vì tệp đã tải xuống là một tập lệnh python, bạn cần cài đặt python trên máy của mình cho bước tiếp theo. Đảm bảo rằng bạn đã cài đặt một gói python và sau đó thực hiện lệnh dưới đây. Bạn cần chỉ định vùng trong lệnh dưới đây. Bạn cũng có thể thay đổi tương tự trong cấu hình sau nếu muốn.
Mã:
python ./awslogs-agent-setup.py --region ap-south-1
Sau khi bạn chạy lệnh trên, nó sẽ yêu cầu bạn nhập một số thông tin đầu vào. Hãy đề cập đến các thông tin tương tự theo yêu cầu.





Tập lệnh trên sẽ tạo tệp cấu hình/var/awslogs/etc/awslogs.conf. Các chi tiết bạn đã cung cấp trong tập lệnh sẽ được lưu trong tệp cấu hình.

bạn vẫn có thể sửa đổi tệp cấu hình theo yêu cầu của mình.

Sau khi hoàn tất mọi thay đổi, hãy khởi động lại tác nhân bằng cách thực hiện lệnh bên dưới.
Mã:
# systemctl start awslogs

Xác minh thiết lập đã cấu hình​

1. Đăng nhập lại vào tài khoản AWS của bạn.

2. Tìm kiếm CloudWatch trong danh sách Dịch vụ.

3. Chọn tùy chọn Nhóm nhật ký từ menu bên trái.

4. Tìm kiếm giá trị bạn đã cung cấp trong tham số log_stram_name trong cấu hình.

5. Bạn sẽ thấy các bản ghi đang được đẩy từ máy chủ đến AWS CloudWatch.

Kết luận​

Bạn có thể thiết lập bất kỳ tệp nhật ký nào từ máy chủ của mình để được đẩy đến AWS CloudWatch. Điều này có thể được cấu hình cho các máy chủ không nằm trên đám mây AWS. Nghĩa là, bạn có thể đẩy các bản ghi từ bất kỳ máy chủ nào của mình được lưu trữ trên Azure, GCP hoặc bất kỳ nhà cung cấp đám mây nào khác hoặc thậm chí là máy chủ tại chỗ.
 
Back
Bên trên