Cassandra集群搭建(包含监控)

安利一篇我翻译的国外大牛的神经网络入门文章

cassandra是当下流行的nosql数据库,基于google big table的理论。
这篇文章主要是记录自己搭建cassandra集群的过程,更重要的是监控系统的搭建过程,对这种基础设施来说,没有监控就是裸奔,裸奔就相当与定时炸弹

1. 集群搭建:

system-info: ubuntu16.04
这里采用debian二进制包的方式安装,这一步也可以采用源码。
在这之前,需要安装好java8的环境,可以参考我另外一篇博客ubuntu安装jdk7/jdk8的两种方式
环境安装好之后,执行下面的命令进行安装:

echo "deb http://www.apache.org/dist/cassandra/debian 310x main" | sudo tee -a /etc/apt/sources.list.d/cassandra.sources.list

这里的310x可以自行选择,我安装时候官网给的例子是36x
依次执行的下面的命令进行按照

curl https://www.apache.org/dist/cassandra/KEYS | sudo apt-key add -
sudo apt-get update
sudo apt-get install cassandra

官网同时提到了在执行sudo apt-get update时候报错的处理办法,我当时没遇到什么报错。
使用nodetool status可以查看的节点的启动状态
节点的启动/停止/重启命令是sudo service cassandra start/stop/restart

###2. 集群配置
参考上面的步骤初始化两个机器(192.168.1.100, 192.168.1.101)。
分别配置/etc/cassandra/cassandra.yaml进行集群组建。主要涉及下面的几个配置。

192.168.1.100:

seeds: 192.168.1.100
listen_address: 192.168.1.100
rpc_address: 192.168.1.100

192.168.1.101:

seeds: 192.168.1.100
listen_address: 192.168.1.101
rpc_address: 192.168.1.101

配置完之后重启两台机器,集群就配置完成了。

3.监控搭建

下面介绍下集群监控系统的搭建,参考了国外的一篇文章,小伙伴也可以直接去看
监控系统由Graphite和Grafana组成,采用cassandra主动上报状态数据给Graphite,然后Graphite作为Grafana的数据源。因为Grafana的展现给漂亮。

1) 配置cassandra向graphite上报状态统计
  1. 下载metrics-graphite-3.1.0.jar,这需要与你使用的cassandra版本一致。
  2. jar包放入/usr/share/cassandra/lib/
  3. 在 /etc/cassandra/目录下创建一个上报状态的配置文件metrics_reporter_graphite.yaml,文件名可以自己随意指定
graphite:
  -
    period: 30
    timeunit: 'SECONDS'
    prefix: 'cassandra-TestCluster-192.168.1.227'
    hosts:
     - host: 'localhost'
       port: 2003
    predicate:
      color: 'white'
      useQualifiedName: true
      patterns:
        - '^org.apache.cassandra.+'
        - '^jvm.+'
  1. 将下面的内容加入cassandra-env.sh
METRICS_REPORTER_CFG="metrics_reporter_graphite.yaml"
JVM_OPTS="$JVM_OPTS -Dcassandra.metricsReporterConfigFile=$METRICS_REPORTER_CFG"
2) 安装配置Graphite
## Install Graphite-carbon and Graphite-web
sudo apt-get install graphite-web graphite-carbon
 
## Configure Graphite
sudo vi /etc/graphite/local_settings.py
   TIME_ZONE = 'Asia/Shanghai'
 
## Sync Graphite database
sudo graphite-manage syncdb

## Configure Carbon
sudo vi /etc/default/graphite-carbon
#-- CARBON_CACHE_ENABLED=true
 
sudo vi /etc/carbon/carbon.conf
#-- ENABLE_LOGROTATION = True
 
## Configure Carbon storage schema
sudo vi /etc/carbon/storage-schemas.conf
#-- Add a section called "cassandra" before the last default section "default_1min_for_1day"
    [cassandra]
        pattern = ^cassandra\.
        retentions = 10s:10m,1m:1h,10m:1d
 
## Configure metrics storage aggregation method
sudo cp /usr/share/doc/graphite-carbon/examples/storage-aggregation.conf.example /etc/carbon/storage-aggregation.conf
#-- Make any changes if needed
 
## Start carbon-cache service
sudo service carbon-cache start

上面的配置几乎全copy自参考的那篇博客,除了这里没有使用postgresql,而是使用django默认的数据库(sqlite)

3) 安装配置Grafana

grafana这里使用postgresql数据库,首先安装postgresql

## Install Postgres SQL database server
sudo apt-get update
sudo apt-get install postgresql libpq-dev python-psycopg2
sudo -u postgres psql
CREATE USER cassmon WITH PASSWORD 'some_password';
CREATE DATABASE grafana WITH OWNER cassmon;

安装配置grafana

## Install Grafana
sudo apt-get install grafana
 
## Configure Grafana
sudo vi /etc/grafana/grafana.ini
#-- Make the following changes
    [database]
    type = postgres
    host = 127.0.0.1:5432
    name = grafana
    user = cassmon
    password = cassmon

    [security]
    admin_user = admin
    admin_password = admin
    secret_key = xxxxx@xxxxx.com
sudo service grafana start

至此需要配的其实已经都配好了, 此时在8000端口就可以看到graphite的展示,然后在grafana里配置data source,就可以在grafana里看统计了。

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值