前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >搞事 | 这个周末我对落灰的云服务器做了什么?

搞事 | 这个周末我对落灰的云服务器做了什么?

作者头像
咸鱼学Python
发布2019-09-03 19:04:38
1.3K0
发布2019-09-03 19:04:38
举报
文章被收录于专栏:咸鱼学Python咸鱼学Python

原文:https://zhuanlan.zhihu.com/Ehco-python

作者:Ehco

编辑:咸鱼

今天折腾啥呢?

上个月(201908)低价薅的华为云加上上次薅的腾讯云,手上已经有三台云服务器落灰了。

这玩意儿还不如 Kindle 呢,至少 Kindle 还能盖个泡面。

而由于备案相关的问题 个人小站一般不会托管在国内的服务器上(仅仅是我)

所以这台服务器很长时间以来只跑了:

  • 微信公众号的后端项目
  • 上学那会给女票做的小说网站(没有域名直接ip解析过去的 就没备案)

总觉得不能就这样浪费 那么做什么好呢?

写代码的怎么能没有点自己的 side project ? 我当然也不例外

我一直维护着一个叫『谜之屋』的开源项目:

https://github.com/Ehco1996/django-sspanel

所以我决定为这个项目搭一套的监控系统

这个系统主要分为3个部分:

  • sentry (bug跟踪管理)
  • prometheus (metrics / node数据监控)
  • grafana (数据监控仪表盘)

所以这台服务器就又活了过来。

sentry

首先是sentry,谜之屋就有一些bug尚未解决

Sentry不仅仅能告诉你哪些代码片段出了问题,还能展示出完整的错误栈,帮你快速定位bug

举个例子「URLError」点进去是这样的

通过观察,我们发现是在调用支付宝api的时候发生了网络的错误,我们甚至能在右侧看到有多少用户遇上了这个错,包括:

  • 他们用的系统是什么
  • 浏览器是什么…

清楚了问题发生的原因和过程,我就可以很快的做出解决方案:

  • 请求失败的时候 retry
  • 用定时任务去处理失败的消息
prometheus

接着是prometheus(普罗米修斯),这个名字很酷炫有没有,实际上普罗米修斯的功能也很酷炫,我这里只做简单的展示:

普罗米修斯可以收集和管理不同server的metrics。

metrics 数据大概是这样的

通过这些数据,我们就能查看得到这些node的:

  • 健康状态
  • 负载状态
  • 错误信息
  • 报警规则等等等
grafana

最后是 grafana,利用 prometheus是可以收集到很多的数据,但是没有一个图形化的展示,我们人类很难真的看出其中的某些变化。

grafana 就是来帮助我们解决这个问题,他提供了很多dashboard(也可以自己设计),来展示这些数据

比如我们来看一下谜之屋的 api server

可以清楚的看到 cpu 内存 网络 等重要指标的使用状态

谜之屋的访问量很小 所以只用了一台1核1g的vps在跑 不过可以看到,内存已经比较吃紧了

再来挑一个节点node观察一下

可以发现在夜里1点左右,内存的使用有了一次很夸张的增长,然后又迅速跌了下来.

凭借我的经验,这一定事发生了 「memory leak 内存泄露」,我上服务器一看,本来一直在跑的代码果然挂了,爆出了一个大大的 Memory Error.

下面我们来尝试找到发着这次内存爆炸增长的原因

首先是 cpu 的使用状况

仔细观察一下图表,发现cpu的使用还算比较稳定,负载甚至连20%都没上个,那么问题基本不出在 cpu 上.

再看看网络相关?

看了这个图之后,一下就明白了,在内存爆掉的那个时刻

  • tcp 的连接数量有了一次猛增
  • 伴随着socket用的内存也涨了上去

当新的连接不断的建立 旧的又不断开时,我这台只有500m内存的小vps自然撑不住挂了。

最后的发一波参考的安装文档:

sentry: https://docs.sentry.io/ prometheus: https://prometheus.io/docs/ grafana: http://docs.grafana.org/

PS: 推荐全部用docker安装,会减少很多麻烦。

如果安装有困难可以。。。等等,之后会出系列教程。

先预祝各位等等党大获全胜

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-09-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 咸鱼学Python 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 今天折腾啥呢?
  • sentry
  • prometheus
  • grafana
相关产品与服务
Grafana 服务
Grafana 服务(TencentCloud Managed Service for Grafana,TCMG)是腾讯云基于社区广受欢迎的开源可视化项目 Grafana ,并与 Grafana Lab 合作开发的托管服务。TCMG 为您提供安全、免运维 Grafana 的能力,内建腾讯云多种数据源插件,如 Prometheus 监控服务、容器服务、日志服务 、Graphite 和 InfluxDB 等,最终实现数据的统一可视化。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档