CloudWatch 로그에 들어와보면
현재 갖고있는 모든 로그 그룹을 볼 수 있는데
보시는 것과 같이
어떠한 서비스에 의해 생성된
8개의 로그 그룹입니다
가령, 이건 Lambda로 생성되었고
이것은 datasync로
이것은 glue로, 그리고 이것은 우리가
SSM runCommand를 사용해서
그 결과물이 이 로그 그룹에 채워지길 원했을 때
만들었던 것입니다
예를 들어 이 예시를 보면
6개의 로그 스트림이
우리가 특정 실행명령을 실행한
여러 인스턴스를 각각 나타내고
6개 모두 동일한 실행명령 ID를 갖고있습니다
2개씩은 동일한 인스턴스 ID를 가졌지만
어찌되었든 서로 다른 인스턴스 ID이고
여기를 보시면 stdout과 stderr이 있습니다
stdout을 살펴보면
이 명령어로 생성된 모든 로그들을 볼 수 있고
모든 로그 라인 또한 볼 수 있습니다
이건 정말 무거워 보입니다
여기에서는
로그를 예로 들어서
http를 키워드로 해 살펴보면
http라는 단어가 포함된 모든 로그 라인이
보여질 것입니다
만약 installing이라는 단어를 찾아본다면
해당 단어가 포함된 2-3개 정도의
로그 라인이
보여지게 됩니다
여기에 있는 stdout과 stderr로
여러 로그 스트림 뒤에 있는 아이디어를 볼 수 있습니다
여기에서는 지표 필터를 만들 수 있는데
이 지표 필터로
필터 패턴을 찾을 수 있습니다
예를 들어 installing을 입력하고
그 다음으로는
이 로그 스트림과 같은
사용자 지정 데이터를 선택합니다
이어서 패턴을 테스트해보면
로그 5개 중 3개가 일치하는 것을 보실 수 있습니다
필터 이름 입력으로 가서
이렇게 DemoFilter와
DemoMetricFilter라고 입력합니다
이것은 새로운 네임스페이스입니다
여기에는 DemoMetric...
이쪽이 DemoMetricFilterNamespace고 이쪽이 DemoMetricFilter입니다
다음은 필터 패턴이 일치할 경우의
Metric value인데
예를 들어 1을 써넣어서
installing 라인이 몇인지를
세보는 겁니다
원하신다면 기본 값과 유닛을 선택해주고
Next 버튼을 클릭하고
Create metric filter 버튼을 누르면 새 지표가 제공됩니다
CloudWatch의 Metrics로 가서 이 그래프를 지우고
새 지표를 찾아보겠습니다
페이지 새로고침을 한번 해보면
도움이 될지도 모릅니다
All 네임스페이스로 가서
이 지표 필터가 이렇게 나타나는대로
그것을 시각화할 수 있습니다만
지금은 로그 출력을 보내지 않고 있기에
현재는 볼 수 없는 것입니다
여기에서
이 지표 필터 위에 알람을 생성해 보겠습니다
Create Alarm 버튼을 클릭하면
알람을 생성할 수 있는데
이 알람은
지표가 특정 값을 넘어갈 경우 작동하고
해당 지표는 로그 스트림의 필터를 기반으로
계산되는 것입니다
Subscription 필터도 생성할 수 있는데
보시는 것과 같이
다양한 결과를 위한 필터를 생성할 수 있습니다
Elasticsearch(엘라스틱서치), 키네시스 데이터스트림, 키네시스 파이어호스
또는 사용자 지정 Lambda 펑션으로 데이터를 보내고 싶을 경우
Lambda Subscription 필터도 있습니다
이것에 따라 각 로그 그룹당
2개의 Subscription 필터를 만들 수 있습니다
Retention(보존) 설정도 수정할 수 있습니다
보시면 Never Expire에서 120개월까지
설정할 수 있다는 것을 알 수 있습니다
10년인 거죠
Amazon S3로도 데이터를 내보낼 수 있습니다
데이터 내보내기를 클릭하면
내보내기 할 데이터의 범위를 선택할 수 있고
특정 로그 스트림만을 원할 경우를 위한
스트림 프리픽스 란이 있습니다
S3 버킷과 버킷 프리픽스 란이 있고
이제 다 된 겁니다
마지막으로
여기서 로그 그룹을 만들 수 있는데
demo-log-group 이라고 하겠습니다
그리고 보존 관련 설정을 해주고
로그 그룹을 암호화하고 싶다면 KMS키를 설정한 뒤
Create 버튼을 클릭하면 됩니다
그렇게 하면 암호화 관련 설정이 여기 나타날 것이고
특정 KMS키 ID가 설정되었다면 여기에 보여질 것입니다
마지막으로
CloudWatch 로그 인사이트는
특정 로그 그룹에 쿼리를 날릴 수 있는
휼륭한 쿼리 언어를 사용할 수 있도록 해줍니다
예를 들어 이걸 생성해서
쿼리를 실행해 보겠습니다
어떠한 데이터도 주어지지 않는데
그것은 우리가 지난 한 시간 동안의 데이터를 찾고 있기 때문입니다
하지만 지난 60일간의 데이터를 찾도록 한 뒤에 이 쿼리를 실행하면
뭔가 나올지도 모릅니다
보시는 것처럼 이 쿼리에서
18개의 기록을 찾았습니다
이렇게 로그에 대한 통찰력을 얻을 수 있도록
훌륭한 쿼리 언어를 제공합니다
그뿐 아니라
원한다면 결과를 내보낼 수도 있습니다
오른쪽을 보시면
쿼리를 저장할 수도 있는데
쿼리 후 여기에 저장하거나
단순 쿼리를 살펴보고
로그 통찰력을 상실하는 사용 사례를 살펴볼 수도 있습니다
예시로는 Lambda에서 5분 간격으로
지연 통계를 살펴본다거나
VPC 플로우 로그에서 소스와 목적지 IP주소별
상위 10개의 바이트 전송 등을 살펴보는 것 등이 있습니다
예를 들어
이것을 클릭해보면
CloudWatch 로그 인사이트에서 쿼리 언어가 작동하는 방식에 대한
이해를 돕는 것입니다
CloudWatch 로그를 다뤄보았고
마음에 드셨길 바라며
다음 강의에서 뵙겠습니다