前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >我们需要更好的 NGINX 统计和监控

我们需要更好的 NGINX 统计和监控

作者头像
温铭@APISIX
发布2020-02-24 11:57:52
9230
发布2020-02-24 11:57:52
举报

我们是 OpenResty/NGINX 的重度使用者,产品是基于 OpenResty 开发的,其中包括木马云查杀、终端通信、用户认证以及各种复杂的业务逻辑。

在这个过程中,遇到了很多 OpenResty 的使用问题,去年的时候,我们在 Github 上面写了《OpenResty 最佳实践》,把遇到的坑写下来。同时我们也逐渐遇到一些 NGINX 自身的限制。

NGINX 的桎梏

动态调整

NGINX 开源版本的参数都需要通过配置文件来修改,然后 reload 才能生效,没法做到实时和动态调整。为了解决这些问题,让 NGINX 更加灵活,有不少开源项目都借助 OpenResty 来让 NGINX 变得更好用,比如 VeryNginx 和 Orange。

而更多不熟悉 OpenResty 的开发者,就会寻找 NGINX 世界之外的解决方案,比如和 consul 配合来实现动态 upstream。

监控和统计

NGINX 的开源版本只有一个非常简单的 http_stub_status_module 模块,提供 5、6 个监控数据。你想知道更详细的数据?只能自己修改源码,或者用 SystemTap 工具链探测一下。

对于业务 API 的统计,现有方案大都类似 ngxtop:打开 NGINX 的访问日志,后台程序来进行分析。即使把访问日志丢到远端,避免磁盘压力,也会造成性能的下降,或者因为网络的问题丢失数据,而且,这些方案都是有延时的。

而详细的实时的监控和统计数据,我觉得是业务决策的关键数据,没有完备数据支撑的开发和运维,如同盲人摸象,无法了解到业务的实时健康状况,更谈不上动态调整 NGINX 的各种参数和规则了。

如何解决?

收费的 NGINX Plus 版本可以部分的解决上面几个问题,它提供有限的动态调整 API,并内置了近百个监控数据。当然价格有点儿贵,每年每台服务器 1999 刀起步。

现在,我们开源出来一个小项目 Mio(https://github.com/iresty/Mio),它短期对标的是 NGINX Plus,Mio 100% 兼容 NGINX Plus 的 API,并新增三类 summary API, 提供非常详细的实时统计和监控数据。长期目标希望通过这些数据,能够为拦截恶意访问、流量限速限流、定位业务代码bug等方面,提供有用的建议。

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

本文分享自 第二层思考 微信公众号,前往查看

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

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

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • NGINX 的桎梏
    • 动态调整
      • 监控和统计
      • 如何解决?
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档