加入收藏 | 设为首页 | 会员中心 | 我要投稿 漯河站长网 (https://www.0395zz.cn/)- 云服务器、混合云存储、网络、内容创作、云渲染!
当前位置: 首页 > 站长资讯 > 传媒 > 正文

如何为已安装的Nginx动态添加模块?

发布时间:2021-02-19 13:11:59 所属栏目:传媒 来源:互联网
导读:另外,如果系统的监控体系并不完备的话,还需要将问题发生时,操作系统、各第三方组件自带的监控数据快速地通过截图保存下来。 保存监控数据的时候要特别留意一下网络相关的数据。如果发现网络相关的数据有异常,那么再把当下的网络连接情况通过命令保存下来

另外,如果系统的监控体系并不完备的话,还需要将问题发生时,操作系统、各第三方组件自带的监控数据快速地通过截图保存下来。

保存监控数据的时候要特别留意一下网络相关的数据。如果发现网络相关的数据有异常,那么再把当下的网络连接情况通过命令保存下来。因为相对来说,网络出现问题的概率远远大于硬件,不管是程序导致的还是其他原因。规模越大的系统,越是如此。

/02 恢复/

恢复系统访问有很多方法。首先不得不提到一个适用于80%情况的神技了——重启。没错,根据多年的经验来看这招的确在大多数情况下很有效。

也正因为屡试不爽,所以很多人习惯性地会在第一时间去重启,导致现场忘记保存并受到破坏。

重启也分两种,强制重启和自然重启。当然优先考虑自然重启,这样能避免产生一些意料之外的脏数据。但是如果是系统出现资源耗用异常的话,就不要傻傻地等自然重启了,只能强制重启(kill掉进程)。

第二种常见的方法是「回滚」。当然它的前提条件是你判断下来问题的出现是由于最近一次发布。否则盲目的回滚不但起不到作用,还会越弄越乱,特别在分布式系统中。因为在分布式系统中,一旦上下游耦合的地方出现对接不上,轻则报错,重则出现大量的异常数据,够你后续折腾好久的。

第三种方法是「降级」。暂停出问题的模块,停止服务。当然,这个动作需要和业务方做好沟通,是否单独降级某个模块会导致业务不完整之类的问题。

第四种方法是「限流」或者「扩容」。如果你发现是系统扛不住突增的流量,如果有条件的话可以快速扩容几台机器和程序。如果没法扩容的话可以选择限流,将一定百分比的请求直接拒绝服务。毕竟所有无法提供服务和部分无法提供服务相比,肯定还是后者划算。

还有一些比较小众的方法是「切到备机」、「故障隔离」等,这里就不展开了。它们对环境、条件的要求更多一些。

有时候可能系统并未恢复到完全正常的状态,比如,读取数据是OK了,但是某些操作写入数据到时候还是有问题。在这样的情况下,不要着急定位问题,还是先尽最大努力恢复到最大程度的可用状态再进行下一步的动作,毕竟用户第一嘛。

/03 定位/

关于定位问题,如果有dump文件的话最方便了,通过dump文件分析工具来分析dump文件就可以快速定位到出问题的代码行,特别是程序阻塞、内存溢出、cpu100%之类明显是程序本身的问题。

不同的语言有不同的dump分析工具,可以自行网上搜一下教程。最终目的就是定位到异常点的堆栈信息,有了它就相当于直接把问题代码出现在哪里都给定位到了。

如果说分析dump文件是跳过抽丝剥茧的步骤,直击要害的话。通过监控数据、日志层层分析是个慢活。但是如果缺失dump文件或者从dump文件从未能分析出问题的情况下,也只能选择后者。

我们在看日志、监控数据的时候一定要有关联起来看的意识,而不能仅仅在单个维度上看。因为有时候你在单个维度上看到的数据像是正常的,但是你关联起来看就不一定了。比如,tcp连接数降低了一半,但是内存反而涨了100%,为什么?这里面可能就藏着故障的线索。

/04 解决/

定位到了问题,解决起来就很简单了。该改代码的改代码,该改配置的改配置文件。这里就不多说了,毕竟情况太多,大家遇到的可能都不太一样。

/05 复盘/

大家都知道复盘的好处,但是真正做复盘的人真不多。如果你不知道从何下手来做复盘的话,不妨从以下几个问题入手,

  • 这次故障原因是什么?
  • 是否有更快的方式在当时来恢复业务?
  • 如何避免再出类似故障?
  • 当前系统中是否还有类似的潜在风险?

如果你能回答这些问题,我觉得这个复盘就很到位了,剩下的就是执行。

当然了,不管如何优秀的处理故障,最理想的还是不要发生故障。所以我们需要在前期做更多的准备。

/01 了解你的程序/

我们很多人了解自己负责的程序只有通过coding这一种途径。除非该程序是个单体应用,否则这样的方式是远远不够的。

我建议你按照以下清单去了解你的程序:

  • 程序包含有哪些模块,对应使用者是哪些?哪些是核心模块,哪些是可以“弃车保帅”的?
  • 多个模块/系统间如何流转的?(尽量画一个流程图,加深记忆)
  • 依赖了哪些中间件,谁负责维护他们?
  • 依赖了哪些其他的程序,强依赖还是弱依赖,谁负责维护他们?
  • 依赖的存储、消息队列背后又依赖了哪些存储,存储运维负责人是谁?
  • 线上的程序部署在什么环境。你是否有条件独立进行部署并调优?


(编辑:漯河站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读