ELK 스택과 REDIS 간단 연동 테스트
[ELK 스택과 REDIS를 사용한 간단 연동]
Elasticksearch, Logstash, Kabina와 REDIS를 간단히 연동해 보았다. 원래 다양한 용도로 사용이 되겠지만 나의 경우 단순히 실시간 출력, 분석결과 출력을 위해서이다. 즉 모니터링 역할로 생각하고 있다.
다음설명은 Ubuntu 16.04 LTS기준으로 설명한다. 그리고 각 Stack은 Command Line으로 실행한 것을 기준으로 한다. 각 Stack 설정은 일단 기본으로 한다.
기본 동작 구성은 다음과 같이 가정한다.
[설치]
1. https://www.elastic.co/kr/products 에 가면 기본 구성 스택을 다운로드 받을 수 있다.
2. https://redis.io/download 에서 Redis를 다운로드 받고 Compile한다. (README.md에 보면 간단히 할 수 있다.)
3. Elasticksearch, Logstash, Kabina를 다운로드 받고 압축을 푼다.
4. elasticksearch 폴더로 가서 다음과 같이 실행한다.
$ bin/elasticksearch |
5. kibana 폴더로 가서 다음과 같이 실행한다.
$ bin/kibana |
6. logstash는 Configuration 파일의 내역을 가지고 실행해야 한다. Configuration 파일을 다음과 같이 제작하고 redis.conf로 저장한다.
input { redis { host => ‘localhost’ data_type => ‘list’ key => ‘logstash:redis-test’ type => ‘redis-input’ codec => ‘json’ } } output { stdout { codec => rubydebug } elasticsearch { hosts => ‘localhost’ } } |
7. logstash 폴더로 가서 다음과 같이 logstash를 실행한다.
$ bin/logstash –f refis.conf |
8. REDIS 폴더로 가서 redis 클라이언트를 실행한다.
$ redis-cli |
9. 데이터를 입력한 후 REDIS까지 잘 들어 가는지 확인한다.
127.0.0.1:6379> lpush “logstash:redis-test” ‘{ “test.value” : 10 }’ (integer) 1 |
“logstash:redis-test”는 logstash 설정에서 “key”이고 뒤의 것은 데이터인데 Json 형식으로 입력해야 한다. 데이터 내에서 “test.value”는 Field 이름이다. 주의 할 점은 값은 반드시 숫자 타입(정수나 더블,...)이어야 한다. 그래야 나중에 kibana에서 그래프로 업데이트 할 수 있다.
물론 lpush를 사용해서 값을 여러 개 입력 할 수도 있을 것이다.
10. http://localhost:5601 로 kibana 콘솔을 연다.
11. elasticsearch 데이터 index를 지정하고 생성한다.
12. Discover 페이지로 간다.
REDIS Client로 데이터를 입력하면 해당 부분이 업데이트 되는지 체크한다. 특히 오른쪽 상단의 시간은 실시간으로 업데이트 가능하도록 설정하면 편할 것이다.
13. 비쥬얼라이즈를 하나 추가한다.
14. 라인그래프를 하나 선택한다.
15. Elasticsearch의 index를 선택한다.
16. 각 Axis를 지정해야 한다.
17. Y-Axis를 설정한다. (일단 평균을 내는 것으로…)
필드는 test.value를 선택했다.
18. X-Axis를 지정한 후 Apply를 해보면 간단히 프리뷰를 볼 수 있다.
시간의 흐름 데로 데이터를 보기 위해서 Timestamp를 지정했다.
19. Visualization을 저장한다.
20. 대시보드를 추가한다.
21. Visualize를 선택한다.
22. 대쉬보드를 저장한다.
23. 다음과 같이 간단한 대시보드 화면을 볼 수 있다.
크흠… Grapana보다는 인상적으로 보이지 않는 건 설정을 빡세게 안해서 일 것 같다.
이제 중요한 건 logstash Configuration 파일 작성법을 익혀야 할 것 같다. 그런 또 담에…