Redis Monitoring Tool: RedisLive 설치하기

해당 블로그는 KT UCloud의 지원을 받고 있습니다.

페이스북의 고수 공지훈님께서 좋은 툴을 소개해주셨습니다.  그래서 간단하게 설치해보고 해당 설치기를 올릴려고 합니다.

일단 https://github.com/kumarnitin/RedisLive 여기에서 받으실 수 있습니다. 제 설치 환경은 다음과 같습니다.

  • OS: Ubuntu 12.04 64bit
  • Python: 2.7.3(기본 설치 버전)

설치 방법은 간단합니다.(사실 -_- README.md 에 다 있습니다만)

  1. git clone https://github.com/kumarnitin/RedisLive.git
  2. sudo pip install tornado
  3. sudo pip install redis
  4. pip install python-dateutil
다음과 같이 설치가 되었다면 redis-live.conf 를 살펴보시면 됩니다.
{
 "RedisServers":
 [
 {
 "server": "127.0.0.1",
 "port" : 6379
 }
 ],

"DataStoreType" : "redis",

"RedisStatsServer":
 {
 "server" : "127.0.0.1",
 "port" : 6381
 }
}

기본적으로 RedisLive 는 두 개의 Redis 서버가 필요합니다. 하나는 모니터링 할 대상이고 나머지 하나는 모니터링 결과를 저장할 Redis 입니다. 파일을 보면 redis-live.py 와 redis-monitor.py 가 있는데 redis-monitor.py가 실제로 모니터링 정보를 저장하는 역활을 하고 redis-live.py 가 리포팅의 역할을 해줍니다. 위의 설정을 보시면 모니터링 대상은 6379포트(이게 왜 6379인지는 재미난 얘기가 있지만 일단은 패스를) 그리고 모니터링 정보를 저장할 서버가 6381 포트로 설정되어 있습니다.

다만 Redis를 두 개 설정하면 귀찮을 수 있으므로 중간의 “DataStoreType” : “redis” 에서 redis를 sqlite 로 바꿔주시면 sqlite 에 저장하게 됩니다. 다만 이때는 추가로 sqlite3 관련 python library를 설치하셔야 합니다.

주의하셔야 할 것은 redis-monitor.py 에 duration을 주게 되는데 그거 하고 나면 곧 shutdown 되었다는 얘기가 나옵니다. 그래서 주기적으로 제대로 모니터링 하기 위해서는 -_- cron job 등에서 정기적으로 돌려줘야 합니다.( Monitoring 인데 왜 이렇게 설계했는지는 아직 잘 모르겠습니다만 -_-, 2012/06/21 수정: redis의 MONITOR 명령을 사용하고 있는데 해당 명령이 debug용 명령이라 사용했을 때 성능이 절반 이하로 떨어지게 됩니다. 이에 대한 자세한 내용은 redis의 MONITOR 명령을 찾아보시면 됩니다 . 그리고 이걸 만든 친구한테도 물어보니 다음과 같은 답변을 줬습니다. )

[tweet https://twitter.com/nkrode/status/215556787674415105] [tweet https://twitter.com/nkrode/status/215557126117011456] [tweet https://twitter.com/nkrode/status/215557441985855489]

 

실행 순서는 다음과 같습니다.

  1. redis-server redis.conf
  2. python redis-monitor.py(요건 cron 에 넣어서 정기적으로 시간마다 돌려주셔야 합니다.)
  3. python redis-live.py

그리고 http://127.0.0.1:8888/index.html 로 접속하시면 다음과 같이 결과를 보실 수 있습니다. 이제 막 시작하는 프로젝트 같으니 여러가지 contribution도 가능할 듯 합니다.