ELK + Apache Kafka 활용한 로그 모니터링

개발/검색2016. 1. 25. 14:17
728x90




데이터 흐름도

1. Apache 서버 2대의 로그데이터를 수집한다.

2. 각 Apache 로그를 수집하기 위해 Logstash(Collection용)를 활용한다.

3. 대량의 로그데이터를 대비해 Apache-kafka 에 쌓는다. (필수 아님)

4. Apache-kafka에 쌓인 로그데이터를 logstash를 통해 elastic으로 indexing 한다

5. elastic 데이터를 Kibana를 통해 모니터링 한다.


설치

1. logstash - 각 Apache 서버 Collection용 , 데이터 흐름도 4) index 용

2. elasticsearch - 2대 cluster 구성 (1대로 구성해도 문제 없음)

3. Apache-kafka - 1대 구성 (Cluster 구성 가능) 내장된 zookeeper 사용 (Kafka 사용시에 zookeeper 필수) * Redis , RabbitMQ를 사용해도 무방하다.

4. kibana 설치

5. 모니터링용 1) ES 모니터링 head 2) Apache-kafka

설치의 어려움은 없다.압축만 풀면 된다.


Logstash 설정 및 실행

unzip logstash-2.1.1.zip ./logstash -f apache.conf


elasticsearch 설정 및 실행(기존 설치가 되어 있어서 예전 버젼임)

unzip elasticsearch-1.7.1.zip ./elasticsearch


Apache-kafka 설정 및 실행

tar zxvf kafka_2.11-0.9.0.0.tgz

bin/zookeeper-server-start.sh ../config/zookeeper.properties (zookeepr 실행) bin/kafka-server-start.sh ../config/server.properties (kafka 실행) Kafka 내에 TOPIC 생성 필요.

bin/kafka-topics.sh --create --zookeeper localhost:2181 \ --replication-factor 2 --partions 10 --topic log(topic 이름)




kibana 설정 및 실행

/config/kibana.yml elasticsearch_url: "http://localhost:8200" (세팅) /bin/kibana (실행)



kafka 모니터링(http://quantifind.github.io/KafkaOffsetMonitor/)

java -cp KafkaOffsetMonitor-assembly-0.2.1.jar \ com.quantifind.kafka.offsetapp.OffsetGetterWeb \ --zk zk-server1,zk-server2 \ --port 7180 \ (원하는 Port) --refresh 10.seconds \ --retain 2.days



전체적인 구조에 대해서만 작성해 놓았다. 상세 설정에 대해선 시간 날 때마다 정리해 볼 예정이다. 



728x90

작성자

Posted by 일퍼센트

관련 글

댓글 영역