2

최근 테스트 서버 중 하나에 AWS 로그 에이전트를 설정했습니다. 우리의 로그 파일에는 대개 여러 줄의 이벤트가 들어 있습니다. 우리의 로그 이벤트의 예 : 하나입니다AWS는 에이전트 설정을 기록합니다.

[10-Jun-2016 07:30:16 UTC] SQS Post Response: Array 
(
    [Status] => 200 
    [ResponseBody] => <?xml version="1.0"?><SendMessageResponse xmlns="http://queue.amazonaws.com/doc/2009-02-01/"><SendMessageResult><MessageId>053c7sdf5-1e23-wa9d-99d8-2a0cf9eewe7a</MessageId><MD5OfMessageBody>8e542d2c2a1325a85eeb9sdfwersd58f</MD5OfMessageBody></SendMessageResult><ResponseMetadata><RequestId>4esdfr30-c39b-526b-bds2-14e4gju18af</RequestId></ResponseMetadata></SendMessageResponse> 
) 

로그 에이전트 참조 문서는 로그 'multi_line_start_pattern'옵션을 사용했다. AWS 로그 에이전트 구성은 다음과 같습니다.

[httpd_info.log] 
file = /var/log/httpd/info.log* 
log_stream_name = info.log 
initial_position = start_of_file 
log_group_name = test.server.name 
multi_line_start_pattern = '(\[)+\d{2}-[a-zA-Z]{3}+-\d{4}' 

그러나 로그 에이전트보고는 앞에서 설명한 것과 유사한 이벤트에서 중단됩니다. 다음과 같이이 CloudWatch를 로그에보고되고있는 방법은 다음과 같습니다

이벤트 1 :

[10-Jun-2016 11:21:26 UTC] SQS Post Response: Array 

이벤트 2 :

([Status] => 200 [ResponseBody] => <?xml version="1.0"?><SendMessageResponse xmlns="http://queue.amazonaws.com/doc/2009-02-01/"><SendMessageResult><MessageId>053c7sdf5-1e23-wa9d-99d8-2a0cf9eewe7a</MessageId><MD5OfMessageBody>8e542d2c2a1325a85eeb9sdfwersd58f</MD5OfMessageBody></SendMessageResult><ResponseMetadata><RequestId>4esdfr30-c39b-526b-bds2-14e4gju18af</RequestId></ResponseMetadata></SendMessageResponse> 

이벤트 3 :

) 

의에도 불구하고 사실 그 하나의 사건. 여기에 무슨 일이 일어나는가?

답변

1

내가 추가하는 데 필요한 모든이

datetime_format = %d-%b-%Y %H:%M:%S UTC 
time_zone = UTC 
multi_line_start_pattern = {datetime_format} 

http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html

multi_line_start_pattern 당신의 awslogs.conf에 다음은 로그 메시지의 시작을 식별하기위한 패턴을 지정합니다 생각합니다. 로그 메시지는 패턴과 일치하는 행과 패턴과 일치하지 않는 다음 행으로 구성됩니다. 유효한 값은 정규 표현식 또는 {datetime_format}입니다. {datetime_format}을 사용할 때는 datetime_format 옵션을 지정해야합니다. 기본값은 '^ [^ \ s]'이므로 비 공백 문자로 시작하는 모든 행은 이전 로그 메시지를 닫고 새 로그 메시지를 시작합니다.

datetime 형식이 작동하지 않으면 특정 datetime과 일치하도록 정규식을 업데이트해야합니다. 위 목록에있는 형식이 실제로 주어진 형식으로 작동하지 않는다고 생각합니다.

당신은 예를 들어이 시도 할 수 :

[\ d를 {2} - [\] {3} w - \ d를 {4} \의 {1} \ d를 {2} : \ d를 {2 } : \ d를 {2} \의 {1} \ + ▼]

는 않습니다 일치

[10 6 월 - 2016 세계 협정시 11시 21분 26초]

여기를 참조하십시오 : http://www.regexpal.com/?fam=96811

완료되면 서비스를 다시 시작하고 구문 분석이 올바르게 수행되는지 확인하십시오.

$ sudo service awslogs restart