글쓴이 : 윤성재 (공작명왕)
E-mail : <gongjak@gmail.com>
Facebook : < https://www.facebook.com/sungjae.yun >
Cassandra Plugin
1.Cassandra 설치와 시작
< Debian 8 >
sudo sh -c "echo 'deb http://www.apache.org/dist/cassandra/debian 37x main' > /etc/apt/sources.list.d/cassandra.list" sudo sh -c "echo 'deb-src http://www.apache.org/dist/cassandra/debian 37x main' >> /etc/apt/sources.list.d/cassandra.list" gpg --keyserver pgp.mit.edu --recv-keys 749D6EEC0353B12C gpg --export --armor 749D6EEC0353B12C | sudo apt-key add - sudo apt-get update sudo apt-get install cassandra sudo service cassandra start
참조 : http://wiki.apache.org/cassandra/DebianPackaging
< CentOS 7 >
cassandra 3.x Repository 를 추가해준다.
/etc/yum.repos.d/datastax.repo: [datastax-ddc] name = DataStax Repo for Apache Cassandra baseurl = http://rpm.datastax.com/datastax-ddc/3.7 enabled = 1 gpgcheck = 0
설치하고 시작해준다.
sudo yum install java-1.8.0-openjdk datastax-ddc sudo /etc/init.d/cassandra start
참조 : http://docs.datastax.com/en/cassandra/3.x/cassandra/install/installRHEL.html
2.사전 준비
노드가 정상 작동중인지 확인한다.
nodetool status
[ 출처: Flickr, gongjak1 ]
Cassandra 는 JMX 를 통해서 모니터링을 하기에, Cassandra에 JMX 설정이 되어야만 하는데, 다행히 localhost 호스트에서의 JMX 설정은 되어 있는 상태이며 기본 포트는 7199이므로 다음 명령어로 확인할 수 있다.
netstat -na| grep 7199
[ 출처: Flickr, gongjak1 ]
3.Plugin 설치
cd /opt/stackdriver/collectd/etc/collectd.d/ && sudo curl -O https://raw.githubusercontent.com/Stackdriver/stackdriver-agent-service-configs/master/etc/collectd.d/cassandra-22.conf
4.Stackdriver Agent 재시작
< Debian 8 >
sudo service stackdriver-agent restart
< CentOS 7 >
sudo systemctl restart stackdriver-agent
5.Monitoring 확인
Monitoring -> Resources -> Instances
각 서버를 클릭해보자. stackdriver agent가 plugin이 정상으로 동작하여 정보를 제대로 가져온다면 Monitoring의 오른쪽 그래프 윗부분에서 다음과 같은 화면을 볼 수 있다.
[ 출처: Flickr, gongjak1 ]
Cassandra는 JVM 기반으로 동작하기에 친절한 Stackdriver는 JVM 모니터링까지 함께 할 수 있게 자료를 수집해서 보여준다.
[ 출처: Flickr, gongjak1 ]
6.현재 모니터링 가능한 항목
JVM
- Active JVM Threads
- JVM Heap memory usage
- JVM Non-Heap memory usage
- JVM Open File Descriptors
- JVM Garbage Collection Count
Cassandra
- Storage Load: The amount of data stored on each Cassandra node.
- Pending Tasks: The number of basic task stages waiting to run.
- Active Tasks: The number of basic task stages currently running.
- Blocked Tasks: The number of basic task stages blocked from running.
- Pending Internal Tasks: The number of internal task stages waiting to run.
- Active Internal Tasks: The number of internal task stages currently running.
- Cassandra Pending Compactions
- Cassandra Pending CommitLog