EC2에서 CloudWatchLog로 전송

3941 단어 CloudWatchAWS

IAM Role 설정


/etc/awslogs/awscli.conf 에 비밀 정보를 유지하고 연계하는 방법도 있습니다만, 안티 패턴이므로, 롤을 설정해 EC2에 할당합니다.

IAM에서 역할 만들기



역할 만들기 버튼을 클릭합니다.



EC2에 역할을 할당하려면 EC2를 선택합니다.



여기서는 CloudWatchLogFullAccess를 정책으로 역할로 설정합니다.



적절한 역할 이름을 설정하여 역할을 만듭니다.



EC2 생성 시 역할 할당



위에서 EC2에 생성한 역할을 할당합니다.



에이전트 설치



방금 만든 EC2 인스턴스에 에이전트를 설치합니다.
sudo yum install  -y awslogs

설정 파일 편집



구성 파일을 편집합니다.

/에tc/아wsぉgs/아wscぃ. 곤 f


[plugins]
cwlogs = cwlogs
[default]
region = ap-northeast-1

/ 에 tc / 아 wsぉgs / 아wsぉgs. 곤 f



참고) CloudWatch Logs 에이전트 참조
[general]
state_file = /var/lib/awslogs/agent-state

[/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 = /var/log/messages

# 追加したセクション
[/logs/MyProject]
datetime_format = %Y-%m-%d %H:%M:%S # ログの日時フォーマット
file = /logs/MyProject/app.log # ログファイルパス
buffer_duration = 5000
encoding = utf_8
log_stream_name = {instance_id}
initial_position = start_of_file # 初期ポジション
log_group_name = /logs/MyProject

[항목 설명]
  • datetime_format : 로그의 날짜와 시간 형식
  • file: 로그 파일 경로
  • buffer_duration : 로그 전송 간격
  • log_group_name : CloudWatch Log의 로그 그룹 이름
  • log_stream_name : 로그 그룹의 스트림 이름
  • encoding: 인코딩

  • 에이전트 시작



    에이전트를 시작합니다.
    sudo systemctl start awslogsd
    sudo systemctl enable awslogsd
    

    로그 연동 확인



    적당한 로그가 없었기 때문에, CLI로 로그를 출력해 보겠습니다.
    # CloudWatchにログを連携できるか確認する
    date '+%Y-%m-%d %H:%M:%S Message from EC2' >> /logs/MyProject/app.log
    date '+%Y-%m-%d %H:%M:%S Message from EC2' >> /logs/MyProject/app.log
    date '+%Y-%m-%d %H:%M:%S Message from EC2' >> /logs/MyProject/app.log
    date '+%Y-%m-%d %H:%M:%S Message from EC2' >> /logs/MyProject/app.log
    date '+%Y-%m-%d %H:%M:%S Message from EC2' >> /logs/MyProject/app.log
    

    CloudWatch 콘솔에서 로그를 확인할 수 있으면 괜찮습니다.





    좋은 웹페이지 즐겨찾기