Linux

Real-time visitor analysis with Logstash + ElasticSearch + Kibana

맨끌 2014. 4. 25. 03:26

* yum 을 통한 nginx 삭제 및 설치


yum shell
 
remove nginx12
install nginx14
run

* CentOS 5/6 에 nginx 설치


CentOS/RHEL 6.x:

rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm

CentOS/RHEL 5.x:

rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm

Now you can install Nginx 1.4 by doing:

yum install nginx14


1. Nginx 설치
Nginx의 저장소 추가하여 설치를 진행합니다.

 

- nginx.conf 설정
Access 로그가 JSON 포멧 방식으로 저장 되도록 설정합니다.

 

JSON 포멧의 Access 로그는 아래와 같이 저장이 됩니다. (원래는 한줄로 기록 됩니다.)



2. Redis 설치

 

- Redis 실행

 

3. JDK 설치
JDK (Java Development Kit)을 적절한 곳에 설치 합니다.

http://www.oracle.com/technetwork/java/javase/downloads/index.html

 

4. ElasticSearch 설치

http://www.elasticsearch.org/

ElasticSearch의 모니터링을 위한 필수 Plugin 설치 (head, bigdesk)

- ElasticSearch 실행

* 1.x 버전대에는 -f 옵션 대신 -d 옵션으로 데몬으로 띄울수가 있습니다.

 

5. Logstash 설치

http://logstash.net/

 

- Logstash log shipper 설정 파일
가져올 로그를 지정하고 Redis로 데이터를 저장 합니다.

 

- Logstash 실행

위와 같이 로그를 가져옴과 동시에 Redis로 저장이 됩니다.

 

- Logstash Indexer 설정 파일
Redis에 저장 된 데이터를 ElastaicSearch로 전송 합니다.

 

- Logstash Indexer 실행

이제 Indexer가 Redis에 저장 된 데이터를 읽어와서 ElasticSearch로 저장합니다.

ElasticSearch의 head 플러그인을 통해 logstash index가 생성 되어 데이터가 들어가 있는지 확인 해봅니다.


5. Kibana 설치
Kibana는 Logstash를 logstash-web으로 구동했을때와 ElasticSearch의 Plugin으로 설치 했을때 모두 사용이 가능합니다.
Nginx 웹서버를 이미 사용중이므로 가상호스트 사용자의 public_html 디렉토리에 바로 넣어 설치 하겠습니다.

 

- Kibana 설정
config.js에서 ElasticSearch의 서버 아이피와 kibana_index를 수정합니다.
kibana_index는 logstash-indexer가 index를 logstash-2013.11.04 형태로 생성 하므로 와일드 카드로 주면 날짜와 상관 없이 불러 올수 있습니다.

 

- Kibana 웹으로 확인
http://your-domain.com/kibana/ 에 접속해서 실시간으로 로그를 분석할수 있게 됩니다.



출처 : http://www.yongbok.net/blog/real-time-visitor-analysis-with-logstash-elasticsearch-kibana/