searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

一种对象存储集群的图表监控方案

2023-05-26 08:39:08
24
0

前言:

用户在使用对象存储集群时,会存在使用大量对象桶或对象用户的情况,而对各个对象桶或对象用户的使用情况进行巡检观测时,便出现了数据不直观、观测数据量太大等问题。针对此巡检观测问题,我们提供一种直观的图表监控方案来解决,下面我们来介绍此监控方案。

观测指标:

  1. 存储容量:当前已用容量。可细分标准-单AZ型、标准-多AZ型、低频-单AZ型、低频-多AZ型、归档型已用容量。
  2. 对象数量:当前已用对象数量。可细分标准型、低频型、归档型已用对象数量。
  3. 公网流出流量:每小时的公网流出流量。可细分标准型、低频型、归档型公网流出流量。
  4. 公网流入流量:每小时的公网流入流量。可细分标准型、低频型、归档型公网流入流量。
  5. 内网流出流量:每小时的内网流出流量。可细分标准型、低频型、归档型内网流出流量。
  6. 内网流入流量:每小时的内网流入流量。可细分标准型、低频型、归档型内网流入流量。
  7. 公网/内网请求次数:每小时的公网/内网请求次数。可细分标准型、低频型、归档型公网/内网请求次数。
  8. 有效请求率:每小时的有效请求次数与总请求次数的比率。可细分标准型、低频型、归档型有效请求率。
  9. 月度公网流出流量:本月公网流出流量总量。可细分标准型、低频型、归档型本月公网流出流量总量。
  10. 月度公网请求次数:本月公网请求次数总量。可细分标准型、低频型、归档型本月公网公网请求次数。
  11. 上传带宽:每秒的公网流入流量+内网流入流量总值。
  12. 下载带宽:每秒的公网流出流量+内网流出流量总值。

方案结构:

用量查询工具radosgw-admin + 轮询进程 + 数据暂存Prometheus + 控制台UI界面工具。

  1. 用量查询工具radosgw-admin主要用于实时查询对象存储集群的使用情况,即上述观测指标。
  2. 轮询进程主要用于触发定时查询功能,也包括执行收集观测指标数值、推送数值到数据暂存Prometheus等主要任务。
  3. 数据暂存Prometheus 主要用于保存由轮询进程推送来的指标数据。
  4. 控制台UI主要用于查询某具体用户、某具体存储桶的历史数据,并绘制曲线坐标图。运行效果如下图所示。

数据采集:

  1. 存储容量:使用命令radosgw-admin user stats --uid=XXXXX查询,摘取返回json字符串中total_bytes字段。

  1. 流量信息:使用命令radosgw-admin usage show --include-inner-request=true --start-date='2023-05-01 00:00:00' --end-date='2023-05-01 01:00:00'查询,其中的始止时间可以随实际时间调整,摘取返回json字符串中bytes_sent/inner_bytes_sent、bytes_received/inner_bytes_received、ops/inner_ops、successful_ops/inner_successful_ops等字段

  1. 轮询进程:轮询进程可设置成由systemd托管的系统服务,部署在存储集群MON节点上,便于对集群信息进行查询。

其伪代码如下:

def service(self, now):
	""" 统计集群、用户、桶的流量并上报 """
	last_hour = now - datetime.timedelta(hours=1)
	stat_time_str = last_hour.strftime('%Y-%m-%d %H:59:00')
	stat_time = datetime.datetime.strptime(stat_time_str, '%Y-%m-%d %H:%M:%S')
	# 获取查询时间段
	start_time_str, end_time_str = get_time_range(stat_time)
	# 查询用户、对象桶流量信息
	tenant_user_usage, tenant_bucket_usage = self.stat_usage(start_time_str, end_time_str)
	# 发送用户、对象桶流量数据到prometheus
	send_tenant_data_to_prometheus(tenant_user_usage, data_type='user')
	send_tenant_data_to_prometheus(tenant_bucket_usage, data_type='bucket')
  1. 数据暂存Prometheus可自行搭建部署
  2. 控制台UI界面可自行搭建部署,或者使用天翼云console控制台

总结:

将上述组件部署搭建后,用户便可以轻松地对存储集群进行巡检观测,极大地提升对存储集群使用情况的掌握,极大地提升对异常情况的分析定位能力。天翼云console控制台已集成相关功能,有相关需求的用户可自行体验。

0条评论
0 / 1000
f****n
2文章数
0粉丝数
f****n
2 文章 | 0 粉丝
f****n
2文章数
0粉丝数
f****n
2 文章 | 0 粉丝
原创

一种对象存储集群的图表监控方案

2023-05-26 08:39:08
24
0

前言:

用户在使用对象存储集群时,会存在使用大量对象桶或对象用户的情况,而对各个对象桶或对象用户的使用情况进行巡检观测时,便出现了数据不直观、观测数据量太大等问题。针对此巡检观测问题,我们提供一种直观的图表监控方案来解决,下面我们来介绍此监控方案。

观测指标:

  1. 存储容量:当前已用容量。可细分标准-单AZ型、标准-多AZ型、低频-单AZ型、低频-多AZ型、归档型已用容量。
  2. 对象数量:当前已用对象数量。可细分标准型、低频型、归档型已用对象数量。
  3. 公网流出流量:每小时的公网流出流量。可细分标准型、低频型、归档型公网流出流量。
  4. 公网流入流量:每小时的公网流入流量。可细分标准型、低频型、归档型公网流入流量。
  5. 内网流出流量:每小时的内网流出流量。可细分标准型、低频型、归档型内网流出流量。
  6. 内网流入流量:每小时的内网流入流量。可细分标准型、低频型、归档型内网流入流量。
  7. 公网/内网请求次数:每小时的公网/内网请求次数。可细分标准型、低频型、归档型公网/内网请求次数。
  8. 有效请求率:每小时的有效请求次数与总请求次数的比率。可细分标准型、低频型、归档型有效请求率。
  9. 月度公网流出流量:本月公网流出流量总量。可细分标准型、低频型、归档型本月公网流出流量总量。
  10. 月度公网请求次数:本月公网请求次数总量。可细分标准型、低频型、归档型本月公网公网请求次数。
  11. 上传带宽:每秒的公网流入流量+内网流入流量总值。
  12. 下载带宽:每秒的公网流出流量+内网流出流量总值。

方案结构:

用量查询工具radosgw-admin + 轮询进程 + 数据暂存Prometheus + 控制台UI界面工具。

  1. 用量查询工具radosgw-admin主要用于实时查询对象存储集群的使用情况,即上述观测指标。
  2. 轮询进程主要用于触发定时查询功能,也包括执行收集观测指标数值、推送数值到数据暂存Prometheus等主要任务。
  3. 数据暂存Prometheus 主要用于保存由轮询进程推送来的指标数据。
  4. 控制台UI主要用于查询某具体用户、某具体存储桶的历史数据,并绘制曲线坐标图。运行效果如下图所示。

数据采集:

  1. 存储容量:使用命令radosgw-admin user stats --uid=XXXXX查询,摘取返回json字符串中total_bytes字段。

  1. 流量信息:使用命令radosgw-admin usage show --include-inner-request=true --start-date='2023-05-01 00:00:00' --end-date='2023-05-01 01:00:00'查询,其中的始止时间可以随实际时间调整,摘取返回json字符串中bytes_sent/inner_bytes_sent、bytes_received/inner_bytes_received、ops/inner_ops、successful_ops/inner_successful_ops等字段

  1. 轮询进程:轮询进程可设置成由systemd托管的系统服务,部署在存储集群MON节点上,便于对集群信息进行查询。

其伪代码如下:

def service(self, now):
	""" 统计集群、用户、桶的流量并上报 """
	last_hour = now - datetime.timedelta(hours=1)
	stat_time_str = last_hour.strftime('%Y-%m-%d %H:59:00')
	stat_time = datetime.datetime.strptime(stat_time_str, '%Y-%m-%d %H:%M:%S')
	# 获取查询时间段
	start_time_str, end_time_str = get_time_range(stat_time)
	# 查询用户、对象桶流量信息
	tenant_user_usage, tenant_bucket_usage = self.stat_usage(start_time_str, end_time_str)
	# 发送用户、对象桶流量数据到prometheus
	send_tenant_data_to_prometheus(tenant_user_usage, data_type='user')
	send_tenant_data_to_prometheus(tenant_bucket_usage, data_type='bucket')
  1. 数据暂存Prometheus可自行搭建部署
  2. 控制台UI界面可自行搭建部署,或者使用天翼云console控制台

总结:

将上述组件部署搭建后,用户便可以轻松地对存储集群进行巡检观测,极大地提升对存储集群使用情况的掌握,极大地提升对异常情况的分析定位能力。天翼云console控制台已集成相关功能,有相关需求的用户可自行体验。

文章来自个人专栏
对象存储流量监控
2 文章 | 1 订阅
0条评论
0 / 1000
请输入你的评论
0
0