1. OpsCenter简介
- 添加扩展集群
- 配置nodes
- 查看性能指标
- 修复问题
- 监控集群情况
- 主要功能
2. 安装OpsCenter 2.1. 准备 最小的硬件环境:
- 2 CPU cores
- 2 GB of RAM available to OpsCenter
- 如果希望对配置的values加密,需安装pycryptolibrary
- 安装JRE或JDK。
- 建议使用最新版本的浏览器。OpsCenter不支持InternetExplorer和 Microsoft Edge。
- Python 2.6+
1、下载OpsCenter
- Root或sudo安装agents。
- JMX连接可用在集群节点上。
- SSH可用。
- OpsCenter诊断tarball特性需要GNU1.16版本以上。CentOS/RHEL需要6以上。
6、在Node SSH Credentials,输入username和其他验证信息,点击Done。
7、在Install Node Agent对话框,点击Install on all nodes。
8、如果提示,点击Accept Fingerprint添加节点主机。
3.3. 结果
- Cassandra或DataStax Enterprise集群正在运行。
- OpsCenter已经安装。
- 集群节点JMX可用。
- OpsCenter诊断tarball特性需要GNU1.16版本以上。CentOS/RHEL需要6以上。
- SYSSTAT工具(用来手机I/O指标,yuminstall –y sysstat)
- 下载DataStax agent tarball
- 切入到agent目录
- 在address.yaml中设置stomp_interface为OpsCenter的IP地址(需要手动创建此文件)
- 如果在opscenterd.conf中开启了SSL,则在address.yaml添加SSL。
- 开启agent
1、启动opscenterd:
- 找出opscenterd进程ID(pid),kill掉进程
- 启动opscenterd:
1、启动agent:
- l 找出agent进程ID(pid),kill掉进程
- 启动opscenterd:
- DEBUG (0)
- INFO (1)
- WARN (2)
- ERROR (3)
- CRITICAL (4)
- ALERT (5)
- 在OpsCenter主机上打开email.conf文件
- 设置enabled为1
- 提供有效的SMTP的主机、端口号、用户名和密码
- 提供有效的邮箱地址,to_addr和from_addr。to_addr值为接受告警帐号
- 可选的:设置发送告警级别。默认为监听所有基本
- 可选的:自定义发送主题
- 保存<config_location>/event-plugins/email.conf。重启OpsCenter。
4.1.1.3. 案例 [email]# set to 1 to enable emailenabled=1# levels can be comma delimited list of any of the following:# DEBUG,INFO,WARN,ERROR,CRITICAL,ALERT# If left empty, will listen for all levelslevels=WARNsmtp_host=smtp.gmail.comsmtp_port=465smtp_user=mercury@gmail.comsmtp_pass=*********smtp_use_ssl=1smtp_use_tls=0smtp_retries=1smtp_timeout=5to_addr=cassandra_admin@acme.comfrom_addr=mercury@gmail.com# Customizable subject for email. The key specified in {}'s must map to the items provided in json map at the end of# the emails. For example, some available keys are:# node, cluster, datetime, level_str, message, target_node, event_source, success, api_source_ip, user, source_node# more advanced formatting options explained here: https://docs.python.org/2/library/string.html#formatspecsubject= [{level_str}] OpsCenter Event on {cluster} - {message} 4.2. 配置文件
-
opscenterd.conf:配置OpsCenter daemon属性,路径install_location/conf/opscenterd.conf
-
cluster_name.conf:配置OpsCenter集群监控属性,路径install_location/conf/clusters/cluster_name.conf
-
address.yaml:配置DataStaxagent属性,路径install_location/conf/address.yaml。
从主菜单访问OpsCenter以下功能:
- New Cluster – 创建一个新的cluster或添加已经存在的cluster。
- Alerts – 配置告警阀值。只有DataStax Enterprise可用
- Settings – 访问编辑ClusterConnections和User Roles:
-
- Cluster Connections – 修改集群设置或移除集群
- Cluster Connections – 修改集群设置或移除集群
-
- Users & Roles – 管理用户基于角色认证
- Users & Roles – 管理用户基于角色认证
- Help – OpsCenter资源信息
- Overview – 提供OpsCenter实例的集群概览。
- Dashboard –查看OpsCenter集群信息,监控Cassandra集群性能指标。
- Nodes – 从不同的角度查看集群(Ring or List View),执行集群节点的维护操作
- Activities – 展示集群运行的任务,查看OpsCenter日志事件,比如在Eventlog中的OpsCenter启动停止。查看Spark jobs状态。查看那Hadoop Jobs状态。
- Data – 管理keyspaces和tables
5.2. 节点监控和管理
5.2.1. Ring View
- 健康概览。监控图标从左到右:Normal,Medium,High load,节点down
- 颜色表示节点健康状态,由系统负载决定。0–0.999为Normal (green),1–5 Medium (yellow),5+ High (red),down(gray)
5.2.2. List View
查看节点详情:
5.2.3. 节点管理操作 5.2.3.1. 管理单个节点 从List View或Ring View点击节点,从Actions菜单中选择action
5.2.3.2. 操作详情 1、View Metrics
1、点击左边导航窗口中的Data。展示Keyspaces列表
2、选择Keyspaces列表中的一个keyspace
3、在keyspace settings中,点击Edit
4、点击Delete Keyspace,删除keyspace
5.3.2. 管理tables 步骤:
- 点击左边导航窗口中的Data。展示Keyspaces列表
- 选中tables列表中的table,将会展示table的CQL statement
- l Delete:从keyspace中删除此表
- l View Metrics:展示table的指标
- l Truncate:删除此表的所有数据
- 从主菜单上,点击Settings >Cluster Connections
5.4.2. 重启集群 步骤:
- 点击ClusterActions菜单中的Restart
3、可选的:选择是否执行Drain在停止之前。
4、点击Restart Cluster
5.4.3. 产生PDF报告
- 集群性能指标
- Task指标
- Table指标
2、点击Add Graph
3、在Add Metric对话框,选择指标
5、可选的:点击table,选择特定的表
6、点击Add Metric
7、点击Save Graph展示指定的指标图表
8、点击图标右上角的title,点击Edit Graph可以编辑图表
3、点击Make Default,设置为默认
4、点击Rename,可以重命名
5、点击Delete,可以删除
5.5.1.3. 导出导出dashboard
1、点击Dashboard,点击Export
2、点击Import连接
5.5.2. 集群性能指标 CassandraJVM memory usage
WriteRequests
WriteRequest Latency
Client写响应平均时长(以毫秒为单位)。依赖于consistencylevel和replication factor,也包含了写replicas的网络延迟
Read Requests
在coordinator节点上每秒的读请求数,类似与client读请求
ReadRequest Latency
Client读响应平均时长(以毫秒为单位)。read latency受到硬盘,网络和应用程序读的方式等影响。比如,使用二级索引,读请求数据大小,client需要的consistency level都将影响read latency。I/O的争用也会增加read latency。当SSTables有很多碎片,compaction跟不上写负载则读也会变慢。
JVMCMS Collection Count
JVM每秒并发标记-清除(CMS)垃圾的数量。
JVMCMS Collection Time
CMS垃圾收集时间(ms/sec)
JVMParNew Collection Count
JVM每秒并行执行的新一代垃圾收集的数量
JVMParNew Collection Time
ParNew垃圾收集时间(ms/sec)
DataSize
Cassandra存储数据的大小。建议不超过磁盘的70%,留一些空间维护compaction和repair操作。
Totalbytes compacted
SSTable每秒数据压缩的字节数
Totalcompactions
每秒压缩的数量
5.5.3. Pending任务指标 Pending tasks常常是由缺少集群资源引起,比如磁盘带宽,网络带宽和内存。
5.5.3.1. Pending task metrics forwrites(写等待任务指标) FlushesPending
Flush进程flush memtables到SSTables。这个指标展示了flushmemtables队列的数量。最优数量为0(或较少数量)。值大于0表示有I/O竞争,降低了磁盘性能
Repl.(Replicate) on Write TasksPending (复制等待任务指标)
当插入或修改一行时,此行将会复制到其他节点。调用的是ReplicateOnWriteStage。这个指标跟踪了写进程阶段。在一个低或适中的写负载时,你应该看到0 pending replicate在写任务上(或比较低的数字)。持续的高值表示需要检查下磁盘I/O或网络连接问题
5.5.3.2. Pending task metrics forreads(读等待任务指标) ReadRequests Pending
到达集群等待处理的读请求的数量。在一个低或适中的写负载时,你应该看到0 pending read在写任务上(或比较低的数字)。持续的高值表示需要检查下磁盘I/O或网络连接问题。Pending reads也可能表示应用设计没有以有效的方式来访问数据
ReadRepair Tasks Pending
读修复操作队列,等待系统资源的数量。最优数量为0(或比较低的数字)。值大于0表示读修复操作与其他操作存在I/O竞争。对于表来说,降低此table参数read_repair_chance,你需要容忍一定程度的旧数据。
CompactionsPending
Compactions队列的数量,等待系统资源。最优数量为0(或比较低的数字)。值大于0表示读操作与compaction操作竞争I/O连接,表示读性能下降。这种情况常常是由于执行频繁的small writes和持久的reads。如果一个节点或集群展示了pending compactions,表示你可能需要增大I/O能力,通过添加节点到集群。你也可以减少I/O连接,通过减少插入/更新请求(比如批量写入)。或则减少SSTables创建的数量,通过增大memtable大小,flush频率。
5.5.3.3. Pending task metrics forcluster operations(集群操作等待任务指标) Manualrepair tasks pending
Repair操作数量。Repair是一个资源敏感操作,需要执行:比较副本间的数据,发送改变的row到副本来保证数据的一致性,删除过期的tombstones,重建索引和bloom filters。跟踪这个指标的状态可以帮助你确定repaire操作的过程。它常常不会出现很大的值。
Gossiptasks pending
Cassandra使用gossip协议来发现其他节点的位置和状态信息。每个节点每秒发送一次gossip,与其他节点交换状态信息。Gossip tasks pending表示gossip messages等待发送或接受的数量。最优数量为0(或比较低的数字)。值大于0表示网络可能有问题。
Hintedhandoff pending
当一个节点offline,其他节点在节点不可用期间将会保存rows更新的提示。当节点重新online,它对应的副本将会修复。hinted handoff pending指标表示等待发送给failed节点hints的数量。查看这个指标可以确定failed节点数据是否恢复。Hinted handoff是Cassandra可选的功能。Hints可以配置保存周期(默认1小时)。
Miscellaneoustasks pending
系统修改schema后的等待任务数量。Schema修改需要传播给所有的节点,所以这个指标能够表示schema 不一致的错误。
5.5.4. Table性能指标 TBL:Local Writes表的写负载。指标包含所有的写请求到此table,包含来自其他节点的写请求。
TBL:Local Write Latency
成功写入表后的响应事件,单位毫秒。writelatency受到硬盘,网络和写入性质影响(比如consistency levels)
TBL:Write Latency (Stacked)
写数据的响应事件,包含min,median, max, 90%和99%
TBL:Local Reads
读负载
TBL:Local Read Latency
成功读取数据后的响应事件
ReadLatency (Stacked)
读数据的响应事件,包含min, median, max, 90%和99%
TBL:Live Disk Used
存活的SSTables使用的磁盘空间,不包含过时的SSTables
TBL:Total Disk Used
SSTables使用的磁盘空间,包含过时的SSTables
TBL:SSTable Count
SSTables当前数量
TBL:SSTables per Read (Stacked)
读取多少SSTables:包含min,median, max, 90%和99%
TBL:Cell Count
表在分区中存在多少个cells:包含min,median, max, 90%和99%
TBL:Partition Size
表的分区大小:包含min, median,max, 90%和99%
TBL:Pending Reads/Writes
表的读写等待数量。
TBL:Bloom Filter Space Used
bloomfilter文件在磁盘的大小。
TBL:Bloom Filter False Positives
bloom filter误报的数量,比如bloomfilter表示row存在,但实际上不存在的数量
TBL:Bloom Filter False Positive Ratio
bloomfilter误报的百分比
TBL:Bloom Filter Off Heap
bloomfilters使用的heap memory
TBL:Index Summary Off Heap
索引使用的heapmemory
TBL:Compression Metadata Off Heap
compressionmetadata使用的heap memory
TBL:Memtable Off Heap
表当前的memtable使用的heapmemory
TBL:Total Memtable Size
所有的memtables使用内存的空间
TBL:Key Cache Requests
在row key cache读请求的数量
TBL:Key Cache Hits
在row keycache读请求命中的数量
TBL:Key Cache Hit Rate
在row keycache读请求命中的比率
TBL:Row Cache Requests
在row key cache读请求的数量,这个指标只是展示配置的row caching(row caching默认不可用)
TBL:Row Cache Hits
在row key cache读请求命中的数量,这个指标只是展示配置的row caching(row caching默认不可用)
TBL:Row Cache Hit Rate
在row key cache读请求命中的比率,这个指标只是展示配置的row caching(row caching默认不可用)
TBL:SSTable Size
表当前SSTables当前大小
5.5.5. 操作系统性能指标 OS:Memory展示系统内存的使用:cached,buffered和free
OS:CPU
系统和用户进程使用CPU的时间
OS:Load
系统work数量
OS:Disk usage (GB)
Cassandra使用磁盘空间
OS:Disk Usage (percentage)
Cassandra使用磁盘空间的百分比
OS:Disk Throughput
读写操作的百分比,通过测量每秒的MB
OS:Disk Rates
磁盘对于读写操作的平均速度
OS:Disk Latency
磁盘查找消耗的平均时间,单位毫秒
OS:Disk Request Size
请求的平均大小
OS:Disk Queue Size
请求队列的平均数量,对于磁盘延迟问题
OS:Disk Utilization
磁盘I/O消耗CPU时间的百分比