AWS에서의 중앙 집중식 로깅 시스템 구축

클라우드 시스템은 위임이다. 컴퓨팅, 메모리, 디스크와 같은 하드웨어 외에도 로드밸런서, 메시지큐, 로깅, 모니터링, 배포, 확장, 데이터 수집 등을 IaaS, PaaS, SaaS 형태로 비즈니스로직으로 부터 분리하여 위임하는 시스템이다. 따라서 개발조직은 다른 것들에 신경쓰지 않고 서비스 개발에만 집중 할 수 있다. 클라우드에 대한 다양한 관점이 있겠는데...

Golang Middleware

미들웨어(Middleware)는 소프트웨어 구성요소의 입력과 출력 사이에서 데이터를 처리하는 시스템이다. 따라서 개발자는 응용 프로그램의 목적에만 집중 할 수 있다. 웹 서버의 경우에는 데이터베이스 액세스, 보안, 인증, 로깅과 같은 작업을 처리하기 위해서 사용한다. 이들 기능은 모든 서비스에 공통적으로 사용되기 마련이다. 이런 작업들을 미들웨어에서 대신 ...

Opsgenie를 이용한 AWS 인프라 이벤트 관리 시스템 구성

나는 인터넷 서비스의 품질을 확보하기 위한 가장 중요한 활동을 아래와 같이 정의 한다. 문서화 테스트가 포함된 모니터링, 관제 시스템 및 장애(인시던트)관리 프로세스 모니터링 결과는 결국 알람과 인시던트의 형태로 출력된다. 알람과 인시던트는 업무처리 시스템에 따라서 처리를 해야 한다 대략적인 프로세스는 아래와 같을 것이다. 이벤트, 경고(alert),...

CloudWatch

CloudWatch는 1. AWS 클라우드 리소스와 1. AWS에서 실행되는 애플리케이션을 위한 모니터링 서비스다. 나는 특히 2번에 관심이 많다. 애플리케이션 로그는 보통 ELK 스택을 이용하기 마련이다. ELK는 매우 훌륭한 툴이긴 한데, 인프라 구성이 다양해 지면서 통합관리하는데 어려움을 느끼고 있다. 예컨데 EC2 기반으로만 한다면, 인스턴스 실...

Fluentd

로그 분석 시스템으로는 ELK(ElasticSearch Logstash, Kibana)가 아마 가장유명 할 것이다. 로그 색인으로는 ElasticSearch, 대쉬보드 구성은 kibana로 구정된 것 같고, 결국 남는 선택지는 로그수집툴을 무얼로 할 것이냐 하는 거다. 나는 logstash 대신에, fluentd를 선택하기로 했다. 무슨 대단한 이유가 있어...

웹 애플리케이션에서의 로깅

웹 애플리케이션 서버는 웹 엑세스로그와 애플리케이션 로그다. 웹 엑세스 로그는 NginX와 Apache 웹 서버가 남기는 , 메서드(GET, POST, PUT, DELETE), HTTP Status Code, 접근 시간, 클라이언트 애플리케이션 정보등을 포함한다. Combined 로그 형식을 널리 사용한다. 127.0.0.1 - frank (Win98; I...

logrotate를 이용한 로그 파일 관리

백앤드 애플리케이션의 대부분이 REST 방식의 웹 애플리케이션이다. 애플리케이션들은 모두 아파치 웹 서버 방식의 엑세스로그를 남긴다. 일반유저들이 사용하는 API들이다 보니 상당한 크기의 로그파일들이 만들어진다. 일주일만 그냥 둬도 파일의 크기가 수 기가바이트를 넘어갈 판이다. 모든 로그 파일들은 ELK로 어차피 색인이 되기 때문에, 굳이 시스템에 남겨두거...

분산 모니터링 시스템 계획

분산 모니터링 시스템 계획이전에는 몇 개의 강력함 컴퓨터로 데이터를 처리했기 때문에, 이들 컴퓨터를 제어하는 것도 큰 문제가 되지 않았다.하지만 클라우드 컴퓨팅 시대의 돌입한 지금은 상황이 좀 다르다. 우리나라는 약 3년전인 2008년쯤 부터 공개소프트웨어를 중심으로 이 분야에 관심을 가지기 시작해서, 지금은 응용 단계에 이른 것으로 보인다. 관련 제품을...

Apache log rotation

Apache log rotation을 위해서 아파치 로그파일을 분석해왔다. 그동안은 하나의 로그파일로 관리를 해왔었는데, 관리하는게 보통 짜증나는게 아니였다. 일단 파일의 크기가 크니, 분석하는데에도 많은 시간이 걸리고 분석 프로그램을 개발하고 테스트하는 것역시 까다뤘기 때문이다.그래서 일단위로 로테이션 시키기로 했다. 일단위로 로테이션 시키면, 로그분석...