做么自己做一个网站,做网站服务器要什么系统,58同城成都网站建设名录,江苏天矗建设集团网站本文介绍在使用阿里云的对象存储 OSS服务过程中#xff0c;外网流量消耗异常增多并导致异常的费用支出这一情况的问题发现、问题定位与几种不同的问题解决方法。 细细数来#xff0c;写博客已经有近3的历史了#xff0c;这成为了一项已经陪伴我大半人生的工作#xff1b;也… 本文介绍在使用阿里云的对象存储 OSS服务过程中外网流量消耗异常增多并导致异常的费用支出这一情况的问题发现、问题定位与几种不同的问题解决方法。 细细数来写博客已经有近3的历史了这成为了一项已经陪伴我大半人生的工作也因此对于文案尤其是图片的存储需求愈发提升。一开始因为博客都是首发在CSDN所以就直接默认用CSDN的服务器作为图床然而在今年3月份CSDN应该是对服务器中的图片文件加了防盗链导致我在其他平台发表文章后出现无法显示图片的情况。针对这一问题也是先后尝试了包括GitHub在内的多种免费、付费图床具体搭建图床的方法大家可以查看文章GitHub与PicGo搭建免费稳定图床并实现Typora内复制自动上传https://blog.csdn.net/zhebushibiaoshifu/article/details/129455228。最终确定使用阿里云的对象存储 OSS服务作为搭建图床的平台——一方面是稳定另一方面主要还是它很便宜。 但是就在几天前发现了由于对象存储 OSS服务中外网流量异常导致的阿里云余额高速消耗情况。本文就对这一个问题的发现、定位与解决方法加以介绍。
1 发现问题 周四大雪居家办公但我还是去单位了时收到阿里云的短信我本还开心地以为是收到他们家秋招Offer了结果仔细一看是在提醒余额不足如下图所示。 当时就很奇怪——明明几天前刚续费按照我当前云上的数据规模怎么可能这么快就只剩下这么点钱了所以赶紧到工作台中查看情况。 如下图所示可以看到在12月开始至今也就是收到上述提示短信的前2周的时间范围内无论是已消耗的成本还是预测的未来成本确实环比上升了很多当然这也没多少钱但是和过往比起来确实上升了很多。而且下图还是我在解决本文所述问题后截取的最初收到短息、发现问题的那一天即截图的前大概2天环比上升的数值更高。 从下图的消费趋势也可以看出来从11月开始费用就已经不太正常了和之前的几个月比起来高了很多尤其是12月才刚刚过半就又比11月明显高出来一截了。 从下图也可以看出来最开始几个月的费用平均下来每个月也就是几块钱但是最近的两个月消费翻了5倍甚至10倍。 再从我的充值记录中看一看如下图所示。可以看到之前充一次能用半年现在充了同样的钱但是1个月不到就又要付费了。由此可知这个消费确实是有异常情况的。 所以首先定位一下是哪里出了问题。
2 定位问题 首先从服务的角度来说在阿里云我只开通了对象存储 OSS这1个需要付费的服务如下图所示也就是说出问题的话一定是对象存储 OSS服务导致的。 随后进入对象存储 OSS服务的管理界面。对象存储 OSS服务主要有2个方面的计费因素——一个是容量也就是存储的文件大小还有一个是流量就是调取其中某个或某些文件时所用到的传输流量。如下图所示可以看到对象存储 OSS服务中我的容量是没有问题的——因为每个月都会写新的博客图床会有新的文件进入所以这个同比增长10%左右的数据还是应该没问题的。但是流量中的外网流出流量明显超出了上一个月——而且本月12月还只是刚刚过半并没有完全结束此时就比上个月多出来了这么多流量显然是有问题的。 基于上述分析大概率知道是对象存储 OSS服务中外网流出流量这里出了一些问题。接下来针对这一假设加以进一步验证。如下图所示在存储数据的文件大小上可以看到最近2个月内并没有发生明显的变化。 然而在使用的流量方面可以看到最近2个月内出现了极端的上升如下图所示且这一极值就出现在感觉费用出现异常的那几天里。 其中导致流量出现异常的就是“公网流出”这一项如下图所示。由此几乎可以确定就是对象存储 OSS服务中流出流量这里导致的费用消耗异常。 既然知道了是对象存储 OSS服务的问题就深入到其中探究一下是哪个环节导致了流出流量出现异常极值。在我的对象存储 OSS服务中只创建了一个Bucket如下图所示所以如果是对象存储 OSS服务的问题那么就一定是这个Bucket的问题。 在这个Bucket中也可以看到确实是外网流出流量有问题如下图所示。但是由此首先可以确定访问端口都是正常的。 随后看一下这个Bucket中存储容量和流量也就是下图中的“使用带宽”随时间变化的情况如下图所示。可以看到同样的还是容量没有问题但是流量出现异常增长的情况。 从“使用流量”界面可以更清晰地看到这一突变值的存在如下图所示。 其中出现突变值情况的访问多数都是GET请求而PUT请求看起来还是正常的如下图所示那么说明我的图片上传操作是没有问题的都是在自己或他人对图片加以获取、下载操作时出了问题。 此外将访问次数最多的请求的Referer头对比一下如下图所示发现Referer头最多的是为空的情况其次都是几个自己常用的博客平台的请求——这个也就很正常了毕竟在不同平台发布时都需要从这个Bucket中获取图片文件。但是这里可以注意到除了Referer头为空接下来最多的情况则是来自www.cnblogs.com的请求表示这些请求是来自博客园的而我确实也会在博客园中不定时发布一些文章。 此外将访问次数最多的IP地址对比一下如下图所示可以看到访问最多的IP地址其使用的流量远远超出其他的IP地址为断层第一。 通过搜索发现这个IP地址是来自于浙江省杭州市的某个地方如下图所示。 从这个Bucket的统计信息中也可以看到是来自浙江省的访问次数最多如下图所示。 通过上述分析只能知道这个大概率出现异常的访问是来自于浙江省的但是依然不确定它到底是谁。此时想到了可以通过这个Bucket中被访问次数最多的文件来定位可能的访问来源。 如下图所示这里发现在最近的1周内访问次数最多的几个文件都有着相同的文件名称前缀而我每一次传图到图床时都是用时间戳来给文件命名的——也就是说如果是同一篇博客文章中的图片那么其在这个Bucket中的文件名就会非常接近即其各自的文件名称前缀就是表示日期和小时的那几位数字自然就会一致或者说比较接近。那么下图这种情况表明大概率是我的某一篇文章被多次访问导致其中所有具有相似文件名称前缀的图片都被多次访问了。 那么就复制一下上图中被访问次数最多的那一个文件的名称然后到这个Bucket中按照文件名称搜索一下——发现它是和一篇空间点云数据三维建模相关的博客中的配图如下图所示。 因此就到我发表博客的各类平台中逐一搜索看看到底哪一个平台最近发布了有关上述这一篇点云数据的博客那么这个平台或许就是这些异常访问的源头。
3 确定问题 经过对比发现原来是博客园导致的这一问题。如下图所示我在11月底、12月初的这一段时间里不仅发布了上述空间点云数据三维建模相关的博客还发布了另外2篇和空间三维建模相关的博客而这3篇文章下图中3个紫色框对应的文章因为都和空间建模有关所以其中均有着大量的图片确实难免会出现更高的访问流量。 其次对比上图中和空间建模有关的3篇文章可以发现其各自的发布时间也就是上图中3个紫色框内的时间正好对应了使用流量出现快速上升情况的3个关键时间节点如下图所示。 再最后直接打开博客园文章的后台发现确实其中的图片URL都没有上传到博客园的服务器上而都还是指向我这里阿里云的对象存储 OSS服务的这个Bucket如下图所示。 那么很显然了只要每有1位用户打开我在博客园中发布的博客那么博客园就会以客户端的角色访问我的阿里云服务器并获取其中的图片文件而在获取下载图片的过程中都是走的我对象存储 OSS服务的流量。 至此就已经明确了我们的问题所在。值得一提的是前段时间也看到博客园说他们换到了杭州办公如下图所示那么这也和前面那个来自浙江省杭州市的高访问次数的IP地址对应起来了。 明确了问题就可以尝试解决了。
4 解决问题 在这里因为本文出现的这个问题只是简单地由于其他博客网站中图片没有上传到第三方服务器导致的所以解决方法很简单——将这些图片传到第三方服务器就行了如果大家无法通过这种情况来解决那么本文还提供了其他2种方法大家可以参考。
4.1 上传至第三方服务器 这个方法很简单既然之前写博客的时候没有将自己的图片上传到博客园的服务器主要是我在这些非首发平台发布文章的话都选择直接复制.md文件来发布所以如果博客平台不自动转存图片的话我自己也没意识到图片没有上传那么就手动上传一下就好。如下图所示博客园也是有这个自动上传的功能的在编辑文章的界面点击右下角的“提取图片”即可。 这样操作之后我这里外网流量消耗异常增多并导致异常的费用支出的情况就得到解决了。
4.2 设置Bucket权限 如果大家的情况不能用上述方法来解决那么还可以考虑通过配置Bucket的访问控制列表Access Control ListACL给自己的Bucket设置读写权限如下图所示如果设置了“私有”那么就只有自己可以访问这个Bucket其他人就不行了。但是这样的话需要注意——如果有其他网站中图片的URL是指向这个Bucket的那么那个网站中的图片自然也都会打不开了因为只有你的云平台账户可以访问这个Bucket其他第三方平台或个人都访问不了自然也就显示不出来你的图片。 如下图所示我一开始也尝试着将权限设置为“私有”发现随后就出现了许多绿色的4XX请求如下图所示这表明设置了权限后很多第三方访问我的图片的请求都获取不到数据了。 4.3 设置防盗链 此外大家也可以给自己的Bucket设置防盗链。防盗链相当于就是在所有访问你文件的请求中只允许或不允许带有特定Referer头的请求获取数据其他网站都不允许或允许如下图所示。 如果大家明确知道有哪些第三方平台会正常地访问自己的Bucket那么就设置防盗链的白名单即可相反如果大家只希望不让哪些第三方平台访问自己的Bucket那么设置防盗链的黑名单即可。 至此大功告成。
欢迎关注疯狂学习GIS