前言:
用户在使用对象存储集群时,会存在使用大量对象桶或对象用户的情况,而对各个对象桶或对象用户的使用情况进行巡检观测时,便出现了数据不直观、观测数据量太大等问题。针对此巡检观测问题,我们提供一种直观的图表监控方案来解决,下面我们来介绍此监控方案。
观测指标:
- 存储容量:当前已用容量。可细分标准-单AZ型、标准-多AZ型、低频-单AZ型、低频-多AZ型、归档型已用容量。
- 对象数量:当前已用对象数量。可细分标准型、低频型、归档型已用对象数量。
- 公网流出流量:每小时的公网流出流量。可细分标准型、低频型、归档型公网流出流量。
- 公网流入流量:每小时的公网流入流量。可细分标准型、低频型、归档型公网流入流量。
- 内网流出流量:每小时的内网流出流量。可细分标准型、低频型、归档型内网流出流量。
- 内网流入流量:每小时的内网流入流量。可细分标准型、低频型、归档型内网流入流量。
- 公网/内网请求次数:每小时的公网/内网请求次数。可细分标准型、低频型、归档型公网/内网请求次数。
- 有效请求率:每小时的有效请求次数与总请求次数的比率。可细分标准型、低频型、归档型有效请求率。
- 月度公网流出流量:本月公网流出流量总量。可细分标准型、低频型、归档型本月公网流出流量总量。
- 月度公网请求次数:本月公网请求次数总量。可细分标准型、低频型、归档型本月公网公网请求次数。
- 上传带宽:每秒的公网流入流量+内网流入流量总值。
- 下载带宽:每秒的公网流出流量+内网流出流量总值。
方案结构:
用量查询工具radosgw-admin + 轮询进程 + 数据暂存Prometheus + 控制台UI界面工具。
- 用量查询工具radosgw-admin主要用于实时查询对象存储集群的使用情况,即上述观测指标。
- 轮询进程主要用于触发定时查询功能,也包括执行收集观测指标数值、推送数值到数据暂存Prometheus等主要任务。
- 数据暂存Prometheus 主要用于保存由轮询进程推送来的指标数据。
- 控制台UI主要用于查询某具体用户、某具体存储桶的历史数据,并绘制曲线坐标图。运行效果如下图所示。
数据采集:
- 存储容量:使用命令radosgw-admin user stats --uid=XXXXX查询,摘取返回json字符串中total_bytes字段。
- 流量信息:使用命令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等字段
- 轮询进程:轮询进程可设置成由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')
- 数据暂存Prometheus可自行搭建部署
- 控制台UI界面可自行搭建部署,或者使用天翼云console控制台
总结:
将上述组件部署搭建后,用户便可以轻松地对存储集群进行巡检观测,极大地提升对存储集群使用情况的掌握,极大地提升对异常情况的分析定位能力。天翼云console控制台已集成相关功能,有相关需求的用户可自行体验。