본문 바로가기

전체 글

(148)
6. ECS Log 수집 - S3 (Fluent.D)
5. ECS Log 수집 - Cloudwatch ECS Container의 로그를 수집하는 방법에 대해 알아보겠습니다. 먼저 컨테이너에서 돌아가는 서비스의 로그 중 STDOUT, STDEER I/O 스트림에 대한 부분을 전송해준다고 합니다. 로그는 아래와같이 구성하시면 됩니다. 위와 같은 구성으로 전달할 수 있으나, STDOUT, STDERR외에 Custom하게 생성된 로그에 대해서는 전달 할 방법이 없게됩니다. 따라서 저는 기존에 EC2 로그 수집방법을 활용하여서 Cluster Logs 폴더를 만들고 이를 Conatiner에 매핑한 후 Logs를 해당 폴더에 쌓아서 수집하는 형태로 구성하시는 것이 더 좋을 것이라고 판단됩니다. 이러한 구성을 만들어보도록 하겠습니다.
2. EC2 Linux Command Log 수집 - CW Agent CloudWatchAgentServerPolicy를 가진 Role을 EC2에 준 후, Cloudwatch Agent를 설치하고 어떠한 로그를 수집할지 정한 후 Agent를 실행시켜주면 됩니다. 하지만 Amazon Linux2에서는 세팅이 안 되기 때문에, CWAgent를 통해 수집해야합니다. 기본적으로 CWAgent 설치 및 세팅까지의 과정은 CWAgent Metric 수집과 동일합니다. 또한, CMD로그 세팅은 이전 CloudWatch Logs Agent글을 참고해주세요. 이 과정을 하나씩 진행해보도록 하겠습니다. 먼저, IAM에서 CloudWatchAgentServerPolicy을 가진 Role을 구성해보도록 하겠습니다. 사용 서비스는 EC2를 선택해주시고 다음으로 넘어가주시면 됩니다. 그 다음에는 ..
1. EC2 Linux Command Log 수집 - CloudWatch Logs Agent CloudWatch Logs 에이전트 필수 조건 CloudWatch Logs 에이전트에는 Python 버전 2.7, 3.0 또는 3.3과 다음과 같은 버전의 Linux가 필요합니다. Amazon Linux 버전 2014.03.02 이상. Amazon Linux 2는 지원되지 않습니다. Ubuntu Server 버전 12.04, 14.04 또는 16.04 CentOS 버전 6, 6.3, 6.4, 6.5 또는 7.0 Red Hat Enterprise Linux(RHEL) 버전 6.5 또는 7.0 Debian 8.0 먼저 서버에 CloudWatchAgentServerPolicy를 붙여줍니다. 서버에서 CMD Log를 쌓도록 세팅하는 명령어입니다. 아래 명령어를 수행해주세요 sudo bash -c 'echo "..
Grafana Mornitoring - 4. ECS Cluster & Container Cluster의 지표는 EC2에서 NodeExporter를 통해 Metric을 수집하는 방법과 동일합니다. Container의 각 지표를 수집하는 방법은 생각 외로 매우 간단합니다. CAdvisor를 그냥 서비스로 하나 띄워주기만 하면 되기 때문입니다. 먼저 아래 명령어를 수행해서 직접 CAdvisor를 띄워서 테스트해보도록 하겠습니다. docker run --volume=/:/rootfs:ro --volume=/var/run:/var/run:ro --volume=/sys:/sys:ro --volume=/var/lib/docker/:/var/lib/docker:ro --volume=/dev/disk/:/dev/disk:ro --publish=8080:8080 --detach=true --name=cadv..
Grafana Mornitoring - 3. 윈도우 서버 WMI Exporter 세팅 리눅스 서버가 아닌 윈도우 서버에서는 WMI Exporter를 통해 Prometheus가 메트릭을 수집할 수 있습니다. 윈도우 서버에서 WMI Exporter를 설치하겠습니다. WMI Release 페이지를 참고해주세요. 현재 글 작성 기준으로 0.9 버전이 최신버전입니다. 해당 파일을 설치하면 아래와 같이 정상적으로 잘 작동하는 것을 확인할 수 있습니다. 이제 프로메테우스 yaml파일을 수정하고 잘 수집이 되는지 확인해보도록 하겠습니다. 아래와 같이 수정한 후 리로드 하면 Prometheus에서도 잘 수집되고 있는 것을 볼 수 있습니다. 그라파나 대시보드 2129번을 통해서 아래와 같이 모니터링을 할 수 있습니다.
Grafana Mornitoring - 2. Node Exporter, Prometheus, Grafana 세팅 Node Exporter의 최신 Release는 여기에서 확인하실 수 있습니다. 위의 링크를 참조하여 모든 서버에 아래 버전을 수정해서 설치해주시면 됩니다. #!/bin/bash wget https://github.com/prometheus/node_exporter/releases/download/v0.18.1/node_exporter-0.18.1.linux-amd64.tar.gz tar -xvf node_exporter-0.18.1.linux-amd64.tar.gz sudo mv node_exporter-0.18.1.linux-amd64/node_exporter /usr/local/bin/ sudo cat > node_exporter.service &1 & yaml을 따로 수정하지 않았다면 Localh..
Grafana Mornitoring - 1. Intro Grafana를 통해 모니터링 하기 위해 세가지 요소를 사용합니다. 1. Grafana (모니터링 시각화 오픈소스) 2. Prometheus (시계열 DB) 3. NodeExporter (메트릭 수집 Agent) Grafana, Prometheus, NodeExporter의 구성을 보면 다음과 같습니다. 기본적으로 NodeExporter는 각 인스턴스에 설치되어 9100 Port로 메트릭을 뿌리게 됩니다. 그리고 Prometheus는 자신의 yaml파일에 설정된 IP들의 NodeExporter에서 메트릭을 수집하게되고 그라파나는 9090포트로 열려있는 프로메테우스에 수집된 Metric들을 가져와서 대시보드를 구성하게 됩니다. 그러나 만약 서버에 컨테이너 기반으로 돌아가고, 컨테이너에 대한 Metric을 ..