Để sử dụng AWSCLI (một đồng bằng cũng như với cwlogs
plugin) thấy http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/SearchDataFilterPattern.html
Đối với cú pháp mẫu (plain text
, [space separated]
như như {JSON syntax}
) xem: http://docs.aws.amazon.com/AmazonCloudWatch/latest/DeveloperGuide/FilterAndPatternSyntax.html
Đối với tiện ích dòng lệnh python awslogs
thấy https://github.com/jorgebastida/awslogs.
AWSCLI: bản ghi AWS lọc-log-sự kiện
AWSCLI là CLI chính thức cho các dịch vụ AWS và bây giờ nó hỗ trợ các bản ghi quá.
Để hiển thị trợ giúp:
$ aws logs filter-log-events help
Bộ lọc có thể dựa trên:
- tên nhóm log
--log-group-name
(chỉ người cuối cùng được sử dụng)
- log tên dòng
--log-stream-name
(có thể được quy định nhiều lần)
- thời gian bắt đầu
--start-time
- cuối thời gian
--end-time
(không --stop-time
)
- lọc patter
--filter-pattern
Chỉ --log-group-name
là bắt buộc.
Thời gian được biểu thị bằng thời gian sử dụng mili giây (không phải giây).
Cuộc gọi có thể trông như thế này:
$ aws logs filter-log-events \
--start-time 1447167000000 \
--end-time 1447167600000 \
--log-group-name /var/log/syslog \
--filter-pattern ERROR \
--output text
It in 6 cột của tab tách văn bản:
- 1:
EVENTS
(để biểu thị, dòng là một bản ghi log và thông tin không khác)
- 2nd:
eventId
- 3rd:
timestamp
(thời gian được ghi bởi hồ sơ là thời gian sự kiện)
- 4:
logStreamName
- 5th:
message
- 6:
ingestionTime
Vì vậy, nếu bạn có Linux tiện ích dòng lệnh trong tầm tay và chỉ quan tâm đến các thông điệp ghi lại log cho khoảng thời gian từ 2015-11-10T14:50:00Z
để 2015-11-10T15:00:00Z
, bạn có thể làm cho nó như sau:
$ aws logs filter-log-events \
--start-time `date -d 2015-11-10T14:50:00Z +%s`000 \
--end-time `date -d 2015-11-10T15:00:00Z +%s`000 \
--log-group-name /var/log/syslog \
--filter-pattern ERROR \
--output text| grep "^EVENTS"|cut -f 5
AWSCLI với cwlogs cắm
Các cwlogs
Plugin AWSCLI là đơn giản để sử dụng:
$ aws logs filter \
--start-time 2015-11-10T14:50:00Z \
--end-time 2015-11-10T15:00:00Z \
--log-group-name /var/log/syslog \
--filter-pattern ERROR
Nó hy vọng con người có thể đọc được ngày-thời gian và luôn luôn trả về đầu ra văn bản với (không gian giới hạn) cột:
- 1:
logStreamName
- 2nd:
date
- 3rd:
time
- 4th till Cuối cùng:
message
Mặt khác, nó là khó khăn hơn một chút để cài đặt (vài bước nữa để làm cộng hiện pip
đòi hỏi phải khai báo lĩnh vực cài đặt như là một đáng tin cậy).
$ pip install awscli-cwlogs --upgrade \
--extra-index-url=http://aws-cloudwatch.s3-website-us-east-1.amazonaws.com/ \
--trusted-host aws-cloudwatch.s3-website-us-east-1.amazonaws.com
$ aws configure set plugins.cwlogs cwlogs
(nếu bạn thực hiện typo trong lệnh cuối cùng, chỉ cần sửa nó trong ~/.aws/config
tập tin)
awslogs
lệnh từ jorgebastida/awslogs
này trở thành của tôi yêu thích một - dễ dàng để cài đặt, mạnh mẽ, dễ sử dụng .
Cài đặt:
$ pip install awslogs
Để liệt kê các nhóm log sẵn:
$ awslogs groups
Để liệt kê log suối
$ awslogs streams /var/log/syslog
Để có được hồ sơ và theo họ (xem mới như họ đến):
$ awslogs get --watch /var/log/syslog
Và bạn có thể lọc các hồ sơ của phạm vi thời gian:
$ awslogs get /var/log/syslog -s 2015-11-10T15:45:00 -e 2015-11-10T15:50:00
Kể từ phiên bản 0.2.0 bạn có cũng có tùy chọn --filter-pattern
.
Sản lượng có các cột:
- 1: đăng nhập tên nhóm
- 2: đăng nhập tên dòng
- 3rd:
message
Sử dụng --no-group
và --no-stream
bạn có thể chuyển hai đầu cột tắt.
Sử dụng --no-color
bạn có thể loại bỏ các ký tự điều khiển màu trong đầu ra.
EDIT: như awslogs
phiên bản 0.2.0 thêm --filter-pattern
, văn bản được cập nhật.
Tôi đã làm rõ câu hỏi của mình. Chúng tôi không muốn hoặc cần số liệu và mỗi dòng đăng nhập là một chuỗi biểu mẫu miễn phí. Tôi không cố gắng đếm thông tin đăng nhập hoặc mã trả lại. Tôi đang cố gắng để gỡ lỗi một vấn đề cụ thể từ một điểm cụ thể trong thời gian mà đầu ra gỡ lỗi được xen kẽ trên nhiều kết quả đầu ra khác. Và vấn đề tồn tại trong vài phút vì vậy chỉ cần đi qua và sao chép ra khỏi xem web không phải là một giải pháp khả thi nói chung. – Zach