Cassandra监控运维介绍

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
Redis 开源版,标准版 2GB
推荐场景:
搭建游戏排行榜
云原生多模数据库 Lindorm,多引擎 多规格 0-4节点
简介: 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

二.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。下面是grafana的dashboard截图:
_2019_08_30_14_53_20_2019_08_30_14_51_04

部署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

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
目录
相关文章
|
1月前
|
运维 监控 安全
构建高效运维体系:从监控到自动化的全方位实践
本文深入探讨了构建高效运维体系的关键要素,从监控、日志管理、自动化工具、容器化与微服务架构、持续集成与持续部署(CI/CD)、虚拟化与云计算以及安全与合规等方面进行了全面阐述。通过引入先进的技术和方法,结合实际案例和项目经验,为读者提供了一套完整的运维解决方案,旨在帮助企业提升运维效率,降低运营成本,确保业务稳定运行。
|
3天前
|
运维 Prometheus 监控
运维之眼:监控的艺术与实践
在信息技术飞速发展的今天,运维监控已成为保障系统稳定运行的关键。本文将探讨运维监控的重要性,介绍常用的监控工具和方法,并通过实际案例分析,展示如何有效地实施监控策略,以确保系统的高可用性和性能。
|
8天前
|
运维 监控 测试技术
构建高效运维体系:从监控到自动化的实践之路
【10月更文挑战第9天】 在当今信息技术飞速发展的时代,运维作为保障系统稳定性与效率的关键角色,正面临前所未有的挑战。本文将探讨如何通过构建一个高效的运维体系来应对这些挑战,包括监控系统的搭建、自动化工具的应用以及故障应急处理机制的制定。我们将结合具体案例,分析这些措施如何帮助提升系统的可靠性和运维团队的工作效率。
25 1
|
13天前
|
运维 监控 安全
构建高效运维体系:从监控到自动化的全面指南在当今数字化时代,运维作为保障系统稳定性和效率的重要环节,其重要性不言而喻。本文将深入探讨如何构建一个高效的运维体系,从监控系统的搭建到自动化运维的实施,旨在为读者提供一套完整的解决方案。
本文详细介绍了高效运维体系的构建过程,包括监控系统的选择与部署、日志分析的方法、性能优化的策略以及自动化运维工具的应用。通过对这些关键环节的深入剖析,帮助运维人员提升系统的可靠性和响应速度,降低人工干预成本,实现业务的快速发展和稳定运行。
|
1月前
|
存储 弹性计算 运维
自动化监控和响应ECS系统事件
阿里云提供的ECS系统事件用于记录云资源信息,如实例启停、到期通知等。为实现自动化运维,如故障处理与动态调度,可使用云助手插件`ecs-tool-event`。该插件定时获取并转化ECS事件为日志存储,便于监控与响应,无需额外开发,适用于大规模集群管理。详情及示例可见链接文档。
|
1月前
|
存储 运维 监控
构建高效运维体系:从监控到自动化的全方位实践指南
在当今数字化时代,企业对运维(Operations)的需求日益增长。运维不仅仅是保持系统运行那么简单,它涉及到监控、日志管理、故障排除、性能优化和自动化等多个层面。本文将从实际操作的角度出发,详细探讨如何构建一个高效的运维体系。通过具体案例,我们将了解不同运维工具和方法的应用,以及它们是如何帮助企业提高生产效率和降低运营风险的。无论你是刚接触运维的新手,还是经验丰富的专家,这篇文章都将为你提供宝贵的参考和启示。
|
23天前
|
运维 监控 安全
构建高效运维体系:从监控到自动化的实践之路
在当今信息技术飞速发展的时代,运维作为保障企业信息系统稳定运行的关键环节,其重要性日益凸显。本文将探讨如何通过构建高效的运维体系,实现从被动响应到主动预防的转变,以及如何利用自动化工具提升运维效率和质量。我们将从运维的基本概念出发,逐步深入到监控、自动化和安全管理等方面,为企业提供一套实用的运维优化方案。
46 0
|
1月前
|
存储 运维 监控
构建高效运维体系:从监控到自动化的全方位实践
在当今信息技术飞速发展的时代,运维作为保障信息系统稳定运行的关键环节,其重要性不言而喻。本文将围绕如何构建一个高效的运维体系进行深入探讨,内容涵盖从监控、日志分析到自动化运维工具的选择与应用,以及在实际工作中的经验和案例分享。通过本文的介绍,读者将能够了解到如何在复杂多变的技术环境中,确保系统的高可用性、高性能和安全性,为业务连续性提供坚实保障。
|
2月前
|
数据采集 运维 监控
自动化运维:用Python打造简易监控系统
【8月更文挑战第31天】在追求高效的IT世界里,自动化运维不再是奢侈品而是必需品。本文将通过一个Python示例,展示如何构建一个简单的系统监控工具。从数据采集到警报触发,我们将一步步解锁自动化的秘密,让你的服务器管理变得轻松而高效。
|
2月前
|
运维 监控 jenkins
打造高效运维:自动化部署与监控实践
【8月更文挑战第31天】 在数字化浪潮中,运维工作如同航船的舵手,决定着企业信息系统的稳定性和效率。本文将通过浅显易懂的语言,带你了解如何利用自动化工具简化日常运维任务,提升工作效率,并确保系统健康运行。从代码示例到操作流程,我们将一步步构建起你的自动化运维体系。