Cassandra监控运维工具

cassandra是一个去中心的分布式数据库,且每个节点都是对等,那么如果需要获取得到整个集群的状态或者是说对cassandra集群进行监控或者维护有什么方式可以进行呢?一般进行监控的话,大概获取得到集群的状态、指标等信息即可,如果要进行运维就需要输入一些命令或通过行为让cassandra获取到相关信号进而执行相关命令。

这里我们分2个方面进行介绍:命令行、图文介绍

命令行

我们知道cassandra的每个节点都是对等的,所以这里提供了各个节点都可以执行的nodetool命令,下面列下所有的nodetool的命令以及给出相关的介绍(版本3.11.4):

assassinate :             强制的将某个节点remove掉,但是不会把节点上的数据进行摆放到移除节点后的新环的数据节点上
bootstrap : 
cleanup : 会触发马上的清理操作,清理的目标主要是不属于这个节点的数据
clearsnapshot : 清楚本机上的snapshot,如果没有提供keyspace等信息,就清理本机全部的snapshot
compact : 触发major compaction
compactionhistory : 打印compaction的历史
compactionstats : 打印compaction的状态
decommission : decommission连接的node, 把节点从环中移除
describecluster :打印cluster的信息,包括clustername, snitch信息,partitionr信息,schema信息等
describering : 给出一个keyspace以及对应的token环信息
disableautocompaction : 关闭minor compaction
disablebackup : 关闭备份
disablebinary : disable native transport(默认的9042端口服务)
disablegossip : 关闭gossip
disablehandoff : 关闭hinthandoff
disablehintsfordc : 关闭为某dc的hint
disablethrift :关闭thrift服务,默认(9160端口)
drain : drain 掉node,暂停很多操作,比如数据节点的写,counter,view写等操作,flush 表以及disable minor compaction

enableautocompaction : 开启minor compaction
enablebackup : 开启自动incremental backup
enablebinary : 开启native transport
enablegossip : 开启gossip
enablehandoff : 开启hinthandoff :
enablehintsfordc : 开启for dc的hint handoff
enablethrift : 开启thrift
failuredetector : 集群的failure 探测的信息
flush : 强制执行flush操作
garbagecollect : 清除表中删除的数据
gcstats :打印gc信息
getcompactionthreshold : 获取compact的阈值
getcompactionthroughput : 获取compact吞吐
getconcurrentcompactors : 获取系统中的并发compact的数目
getendpoints : 获取拥有partition key(hash计算前)的节点
getinterdcstreamthroughput : 集群内部dc stream阈值
getlogginglevels :log的level
getsstables : 打印key属于的sstable
getstreamthroughput : 系统内部stream阈值
gettimeout : 超时时间
gettraceprobability : trace的可能值
gossipinfo : gossip的信息
help
info : 集群的信息
invalidatecountercache : 让counter cache无效
invalidatekeycache : 让keycache无效
invalidaterowcache : 让rowcache无效
join : join 环
listsnapshots : 列出snapshot
move : 把这个token对应的节点换成别的token相应会移动数据
netstats :打印网络信息
pausehandoff : 暂停hint的传递进程
proxyhistograms : 打印网络直方图
rangekeysample : 所有keyspace的抽样key信息
rebuild :从别的节点托数据
rebuild_index : rebuild 本地二级索引
refresh : 无需重启,直接把本地的sstable进行加载
refreshsizeestimates : 重建system.size_estimates表,主要是对应节点多少数据
reloadlocalschema : 从本地重新load schema表
reloadtriggers : reload trigger 类
relocatesstables : 搬迁sstable
removenode :展示当前remove node的状态;force完成阻塞的remove操作;remove 提供的token
repair : 执行副本间数据修复的repair操作
replaybatchlog : 开始batch log replay以及等待完成
resetlocalschema :重置本地的schema
resumehandoff :恢复hinthandof的传递程序
ring : 打印集群的ring信息
scrub : 清理本节点无效的数据
setcachecapacity : 设置cache的容量
setcachekeystosave :设置每个cache的保留容量
setcompactionthreshold :这只compaction阈值
setcompactionthroughput : 设置compaction吞吐
setconcurrentcompactors : 设置compact的并发数
sethintedhandoffthrottlekb : 设置hint的阈值
setinterdcstreamthroughput : 设置dc stream的吞吐
setlogginglevel :设置log的level
setstreamthroughput : 设置stream的阈值
settimeout : 设置超时
settraceprobability : 设置执行trace的概率值
snapshot: 打快照
status: 集群的状态
statusbackup : 备份的状态
statusbinary : native transport的状态
statusgossip : gossip的状态
statushandoff : hinthandoff的状态
statusthrift  : thrift的状态
stop : 停止compaction
stopdaemon :停止cassandra deamon
tablehistograms ;表直方图
tablestats : 表状态
toppartitions : 抽样并给出某个表的活跃partition
tpstats :打出thread pool的状态
truncatehints : 给出节点的所有hint 放弃掉
upgradesstables :对应的表的sstable执行upgrade(实际上就是读出来,写入新sstable)
verify:验证表的数据checksum
version :cassandra version
viewbuildstatus : viewbuild的状态

上述的命令,有的是输出集群节点的现有信息的,比如status,ring等,也有是控制集群节点的状态的,比如setcachecapacity,setcompactionthreshold,至于是控制哪个节点,就需要在nodetool后面跟上:

./nodetool -h hosta -p port(default is 7199) command

此外如果需要执行获取remote节点信息的话,需要在cassandra-env.sh 里面设置下LOCAL_JMX参数,让为false,此外也要设置下-Dcom.sum.management.jmxremote.authenticate=true,这里如果不修改下,就需要输入账户和密码了,如果不想有账户密码可以注释掉或者为fals

页面系统

我们会比较喜欢页面系统进行操作,这里大概列出4种可以执行页面操作的东西:

一.MX4J

这个是cassandra自己就有支持的,但是需要从网上下载一个mx4j的jar包,直接丢到cassandra的lib目录下面,且在cassandra-env.sh下面需要修改下MX4J_ADDRESS的地址,然后直接在页面进行访问这个地址以及端口是8081(默认),就可以了,如下图:

可以展示,也可以设置,但是有2点需要说,所有本地访问的ip要可以通,此外就是每次只能看到一个节点的信息,没有汇总的一个地方做操作;

1559289259102-33b4e27f-1ec3-4425-b116-d08e663283b9.png
二.jolokia + telegraf

下载jolokia的agent jar包,然后放到cassandra 的lib下面,此外修改下cassandra-en.sh,在JVM_OPT里面加上我们需要的那个jokolia的jar依赖,然后重启下集群,完事以后就可以每个集群访问自己本地的jolokia的agent,拿到对应的数据,此外部署下telegraf就可以把数据获取得到,这个网上有很多例子,坑不多;主要是展示相关的metric指标

三.grafana + promethus + jmx_exporter

首先在每一个cassandra节点的lib下面需要部署下jmx_exporter的相关的jar包,然后在cassandra的cassandra-env.sh下面修改相应的配置,参考:https://github.com/prometheus/jmx_exporter ,此外这里要在一个特定的目录下面方式需要收集的metric的yam文件参考这里 https://github.com/prometheus/jmx_exporter/blob/master/example_configs/cassandra.yml ,并在cassandra-env.sh 配置下,然后重启下cassandra集群。 然后除此之外需要在一个特定的机器上面部署下promethus的server,以及grafana的server。

部署promethus的server以及grafana server的话可以对应参考网上部署方式。这里需要注意下,grafana的cassandra metric dashboard的json(https://grafana.com/grafana/dashboards/5408)有一些不正确的地方,需要人为修改下;

四.opscenter

可以参考 datastax的文档:https://docs.datastax.com/en/opscenter/6.1/opsc/install/opscInstallOpsc_g.html

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,133评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,682评论 3 390
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,784评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,508评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,603评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,607评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,604评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,359评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,805评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,121评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,280评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,959评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,588评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,206评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,442评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,193评论 2 367
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,144评论 2 352