기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
빠른 시작: AWS OpsWorks 및 Chef를 사용하여 CloudWatch Logs 에이전트 설치
타사 시스템 및 클라우드 인프라 자동화 도구인 AWS OpsWorks 및 Chef를 사용하여 CloudWatch Logs 에이전트를 설치하고 로그 스트림을 생성할 수 있습니다. Chef는 컴퓨터에 소프트웨어를 설치 및 구성하기 위해 작성하는 "레시피"와 구성 및 정책 배포 작업을 수행하기 위한 레시피 모음인 "쿡북"을 사용합니다. 자세한 내용은 Chef
아래의 Chef 레시피 예제는 각 EC2 인스턴스에서 하나의 로그 파일을 모니터링하는 방법을 보여줍니다. 레시피는 로그 그룹으로 스택 이름을 사용하고 로그 스트림 이름으로 인스턴스의 호스트 이름을 사용합니다. 여러 개의 로그 파일을 모니터링하려면 여러 로그 그룹 및 로그 스트림을 생성하도록 레시피를 확장해야 합니다.
1단계: 사용자 지정 레시피 생성
레시피를 저장할 리포지토리를 생성합니다. Git 및 Subversion을 AWS OpsWorks 지원하거나 Amazon S3에 아카이브를 저장할 수 있습니다. 쿡북 리포지토리의 구조는 AWS OpsWorks 사용 설명서의 쿡북 리포지토리에서 설명합니다. 아래 예제는 쿡북의 이름이 logs
라고 가정합니다. install.rb 레시피는 CloudWatch Logs 에이전트를 설치합니다. 또한 쿡북 예제(CloudWatchLogs-Cookbooks.zip
다음 코드가 포함된 metadata.rb라는 파일을 생성합니다.
#metadata.rb name 'logs' version '0.0.1'
CloudWatch Logs 구성 파일을 생성합니다.
#config.rb template "/tmp/cwlogs.cfg" do cookbook "logs" source "cwlogs.cfg.erb" owner "root" group "root" mode 0644 end
CloudWatch Logs 에이전트를 다운로드하여 설치합니다.
# install.rb directory "/opt/aws/cloudwatch" do recursive true end remote_file "/opt/aws/cloudwatch/awslogs-agent-setup.py" do source "https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py" mode "0755" end execute "Install CloudWatch Logs agent" do command "/opt/aws/cloudwatch/awslogs-agent-setup.py -n -r
region
-c /tmp/cwlogs.cfg" not_if { system "pgrep -f aws-logs-agent-setup" } end
참고
위의 예제에서 다음 리전 중 하나로 region
을 대체합니다. us-east-1, us-west-1, us-west-2, ap-south-1, ap-northeast-2, ap-southeast-1, ap-southeast-2, ap-northeast-1, eu-central-1, eu-west-1 또는 sa-east-1.
에이전트 설치가 실패할 경우 python-dev
패키지가 설치되어 있는지 확인하세요. 설치되어 있지 않은 경우 다음 명령을 사용한 후 에이전트 설치를 다시 시도하세요.
sudo apt-get -y install python-dev
이 레시피는 기록할 파일 같이 다양한 속성을 지정하기 위해 수정이 가능한 cwlogs.cfg.erb 템플릿 파일을 사용합니다. 이들 속성에 대한 자세한 내용은 CloudWatch Logs 에이전트 참조 섹션을 참조하세요.
[general] # Path to the AWSLogs agent's state file. Agent uses this file to maintain # client side state across its executions. state_file = /var/awslogs/state/agent-state ## Each log file is defined in its own section. The section name doesn't ## matter as long as its unique within this file. # #[kern.log] # ## Path of log file for the agent to monitor and upload. # #file = /var/log/kern.log # ## Name of the destination log group. # #log_group_name = kern.log # ## Name of the destination log stream. # #log_stream_name = {instance_id} # ## Format specifier for timestamp parsing. # #datetime_format = %b %d %H:%M:%S # # [<%= node[:opsworks][:stack][:name] %>] datetime_format = [%Y-%m-%d %H:%M:%S] log_group_name = <%= node[:opsworks][:stack][:name].gsub(' ','_') %> file = <%= node[:cwlogs][:logfile] %> log_stream_name = <%= node[:opsworks][:instance][:hostname] %>
템플릿은 스택 구성 및 배포 JSON에서 해당되는 속성을 참조하여 스택 이름과 호스트 이름을 얻습니다. 기록할 파일을 지정하는 속성은 cwlogs 쿡북의 default.rb 속성 파일(logs/attributes/default.rb)에 정의되어 있습니다.
default[:cwlogs][:logfile] = '/var/log/aws/opsworks/opsworks-agent.statistics.log'
2단계: OpsWorks 스택 생성
https://console.aws.amazon.com/opsworks/
OpsWorks 콘솔을 엽니다. -
OpsWorks 대시보드에서 스택 추가를 선택하여 OpsWorks 스택을 생성합니다.
-
Add stack(스택 추가) 화면에서 Chef 11 stack(Chef 11 스택)을 선택합니다.
-
스택 이름에 이름을 입력합니다.
-
Use custom Chef Cookbooks(사용자 지정 Chef 쿡북 사용)에서 예를 선택합니다.
-
Repository type(리포지토리 유형)에서 사용할 리포지토리 유형을 선택합니다. 위의 예제를 사용하는 경우에는 Http Archive(Http 아카이브)를 선택합니다.
-
리포지토리 URL에 이전 단계에서 생성한 쿡북이 저장된 리포지토리를 입력합니다. 위의 예제를 사용하는 경우에는
https://s3.amazonaws.com/aws-cloudwatch/downloads/CloudWatchLogs-Cookbooks.zip
를 입력합니다. -
Add stack(스택 추가)을 선택해서 스택을 생성합니다.
3단계: IAM 역할 확대
OpsWorks 인스턴스에서 CloudWatch Logs를 사용하려면 인스턴스에서 사용하는 IAM 역할을 확장해야 합니다.
-
https://console.aws.amazon.com/iam/
에서 IAM 콘솔을 엽니다. -
탐색 창에서 Policies를 선택한 후 Create Policy를 선택합니다.
-
정책 생성 페이지의 Create Your Own Policy(자체 정책 생성)에서 선택을 선택합니다. 사용자 지정 정책 생성에 대한 자세한 내용은 Amazon EC2 사용 설명서의 Amazon EC2에 대한 IAM 정책을 참조하세요.
-
정책 검토 페이지의 정책 이름에 정책 이름을 입력합니다.
-
정책 문서에 다음 정책을 붙여넣습니다.
-
정책 생성을 선택하세요.
-
탐색 창에서 역할을 선택한 다음 콘텐츠 창의 역할 이름에서 OpsWorks 스택에서 사용하는 인스턴스 역할의 이름을 선택합니다. 스택 설정에서 스택에서 사용되는 역할을 찾을 수 있습니다(기본값
aws-opsworks-ec2-role
).참고
확인란이 아니라 사용자 이름을 선택합니다.
-
권한 탭의 Managed Policies(관리형 정책)에서 정책 연결을 선택합니다.
-
정책 연결 창의 테이블 헤더(필터 및 검색 옆에 있음)에서 정책 유형과 Customer Managed Policies(고객 관리형 정책)를 선택합니다.
-
고객 관리형 정책에서 위에서 생성한 IAM 정책을 선택하고 정책 연결을 선택합니다.
사용자 및 정책에 대한 자세한 내용은 IAM 사용 설명서의 IAM 사용자 및 그룹과 IAM 정책 관리를 참조하세요.
4단계: 계층 추가
https://console.aws.amazon.com/opsworks/
OpsWorks 콘솔을 엽니다. -
탐색 창에서 계층을 선택합니다.
-
콘텐츠 창에서 계층을 선택하고 Add layer(계층 추가)를 선택합니다.
-
OpsWorks 탭의 Layer type(계층 유형)에서 사용자 지정을 선택합니다.
-
이름 및 Short name(짧은 이름) 필드에서 계층의 긴 이름과 짧은 이름을 입력한 다음 Add layer(계층 추가)를 선택합니다.
-
레시피 탭의 사용자 지정 Chef 레시피에는 수명 OpsWorks 주기 이벤트에 해당하는 설정, 구성, 배포, 배포 취소 및 종료라는 여러 제목이 있습니다.는 연결된 레시피를 실행하는 인스턴스 수명 주기의 이러한 키 포인트에서 이러한 이벤트를 OpsWorks 트리거합니다.
참고
위의 제목들이 보이지 않으면 Custom Chef Recipes(사용자 지정 Chef 레시피)로 가서 편집을 선택합니다.
-
설정 옆에 logs::config, logs::install을 입력하고 +를 선택하여 목록에 추가한 다음 저장을 선택합니다.
OpsWorks 는 인스턴스 부팅 직후이 계층의 각 새 인스턴스에서이 레시피를 실행합니다.
5단계: 인스턴스 추가
이 계층은 인스턴스를 구성하는 방법을 제어만 합니다. 해당 계층에 몇몇 인스턴스를 추가하고 이를 시작해야 합니다.
https://console.aws.amazon.com/opsworks/
OpsWorks 콘솔을 엽니다. -
탐색 창에서 인스턴스를 선택한 다음 계층으로 가서 + 인스턴스를 선택합니다.
-
기본 설정을 수락하고 Add Instance(인스턴스 추가)를 선택해서 해당 계층에 인스턴스를 추가합니다.
-
해당 행의 작업 열에서 시작을 클릭해서 인스턴스를 시작합니다.
OpsWorks 는 새 EC2 인스턴스를 시작하고 CloudWatch Logs를 구성합니다. 준비가 되면 인스턴스가 온라인 상태로 바뀝니다.
6단계: 로그 보기
에이전트가 몇 분 동안 실행된 이후에 CloudWatch 콘솔에 새로 생성된 로그 그룹 및 로그 스트림이 나타납니다.
자세한 정보는 CloudWatch Logs로 전송된 로그 데이터 보기 섹션을 참조하세요.