怎样监测微型的网站服务

news/2024/5/12 5:53:13/文章来源:https://blog.csdn.net/yaxuan88521/article/details/126015048
最终我意识到,我所要写的任何服务器的风险都很低,如果它们偶尔宕机 2 小时也没什么大不了的,我只需设置一些非常简单的监控来帮助它们保持运行。

你好! 我最近又开始运行一些服务器(​​nginx playground​​​、​​mess with dns​​​、​​dns lookup​​),所以我一直在考虑监控问题。

最初我并不完全清楚如何监控这些网站,所以我想快速写下我是如何做到的。

我根本不打算谈如何监控大型的、严肃的关键任务网站,只谈微型的不重要的网站。

目标:在操作上几乎不花时间

我希望网站大部分时间都能正常工作,但我也希望不用在持续的运营上花费时间。

我最初对运行服务器非常警惕,因为在我的上一份工作中,我是 24/7 轮流值班,负责一些关键的服务,在我的印象中,“负责服务器”意味着“在凌晨 2 点被叫起来修理服务器”和“有很多复杂的仪表盘”。

所以有一段时间我只做静态网站,这样我就不用考虑服务器的问题。

但最终我意识到,我所要写的任何服务器的风险都很低,如果它们偶尔宕机 2 小时也没什么大不了的,我只需设置一些非常简单的监控来帮助它们保持运行。

没有监控很糟糕

起初,我根本没有为我的服务器设置任何监控。这样做的结果是非常可预见的:有时网站坏了,而我却没有发现,直到有人告诉我!

步骤 1:uptime 检查器

第一步是建立一个 uptime 检查器。外面有很多这样的东西,我现在使用的是 ​​updown.io​​ 和 ​​uptime robot​​。我更喜欢 updown 的用户界面和 ​​定价​​ 结构(它是按请求而不是按月收费),但 uptime 机器人有一个更慷慨的免费套餐。

它们会:

  1. 检查网站是否正常
    如果出现故障,它会给我发电子邮件

我发现电子邮件通知对我来说是一个很好的通知级别,如果网站宕机,我会很快发现,但它不会吵醒我或做其它的什么打扰。

步骤 2:端到端的健康检查

接下来,让我们谈谈“检查网站是否正常”到底是什么意思。

起初,我只是把我的健康检查端点之一变成一个函数,无论如何都会返回 ​​200 OK​​。

这倒是挺有用的 – 它告诉我服务器是启动着的!

但不出所料,我遇到了问题,因为它没有检查 API 是否真的在 工作 – 有时健康检查成功了,尽管服务的其他部分实际上已经进入了一个糟糕的状态。

所以我更新了它,让它真正地发出 API 请求,并确保它成功了。

我所有的服务都只做了很少的事情(nginx playground 只有一个端点),所以设置一个健康检查是非常容易的,它实际上贯穿了服务应该做的大部分动作。

下面是 nginx playground 的端到端健康检查处理程序的样子。它非常基本:它只是发出一个 POST 请求(给自己),并检查该请求是成功还是失败。

        func healthHandler(w http.ResponseWriter, r *http.Request) {// make a request to localhost:8080 with `healthcheckJSON` as the body// if it works, return 200// if it doesn't, return 500client := http.Client{}resp, err := client.Post("http://localhost:8080/", "application/json", strings.NewReader(healthcheckJSON))if err != nil {log.Println(err)w.WriteHeader(http.StatusInternalServerError)return}if resp.StatusCode != http.StatusOK {log.Println(resp.StatusCode)w.WriteHeader(http.StatusInternalServerError)return}w.WriteHeader(http.StatusOK)}

现在,我大部分健康检查每小时运行一次,有些每 30 分钟运行一次。

我每小时运行一次,因为 ​​updown.io​​ 的定价是按健康检查次数计算的,我正在监控 18 个不同的 URL,而且我想把我的健康检查预算保持在 5 美元/年的最低水平。

花一个小时来发现这些网站中的一个出现故障,对我来说是可以的 – 如果有问题,我也不能保证能很快修复它。

如果可以更频繁地运行它们,我可能会每 5-10 分钟运行一次。

步骤 3:第三步:如果健康检查失败,自动重新启动

我的一些网站在 ​​fly.io​​ 上,fly 有一个相当标准的功能,我可以为一个服务配置一个 HTTP 健康检查,如果健康检查失败,就重新启动服务。

“经常重启”是一个非常有用的策略来弥补我尚未修复的 bug,有一段时间,nginx playground 有一个进程泄漏,​​nginx​​ 进程没有被终止,所以服务器的内存一直在耗尽。

通过健康检查,其结果是,每隔一天左右就会发生这样的情况:

  1. 服务器的内存用完了
    健康检查开始失败
    它被重新启动
    一切又正常了
    几个小时后再次重复整个传奇

最终,我开始实际修复进程泄漏,但很高兴有一个解决方法可以在我拖延修复 bug 时保持运行。

这些用于决定是否重新启动服务的运行状况检查更频繁地运行:每 5 分钟左右。

这不是监控大型服务的最佳方式

这可能很明显,我在一开始就已经说过了,但是“编写一个 HTTP 健康检查”并不是监控大型复杂服务的最佳方法。 但我不会深入讨论,因为这不是这篇文章的主题。

到目前为止一直运行良好!

我最初在 3 个月前的四月写了这篇文章,但我一直等到现在才发布它以确保整个设置正常工作。

这带来了很大的不同 – 在我遇到一些非常愚蠢的停机问题之前,现在在过去的几个月里,网站的运行时间达到了 99.95%!

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_700948.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

关于mouseenter、mouseover、mouseout、mouseleave的理解

先说结论:enter、leave是元素区域上的进入和离开,over、out是逻辑上的进入和离开。 enter和leave只在离开元素区域时触发,比如下面这个子元素在父元素的区域中,那么进入、离开子元素是不会触发的,因为子元素在父元素的…

php网站首页点击更多时获取数据,jQuery+PHP实现点击按钮加载更多,不刷新页面加载更多数据!附:可用源码+demo...

先上效果:刚打开页面的时候,只显示部分数据,点击加载更多的时候,就会加载我们预先定义的加载数量显示出来!当数据库里面的所有数据都显示出来,就提示全部加载了!新建index.phpjQueryphp实现点击…

整理一周的Python资料,包含各阶段所需网站、项目,2020燥起来!

回复“pythonpdf“,立刻领取100本全品类Python电子书不知怎么的,最近不少关注我的读者都开始私信我怎么学好python?零基础转行是不是合适,还有希望吗?今年30了,还能不能转IT?其实关于零基础转型…

深度学习三巨头也成了大眼萌,这个一键转换动画电影形象的网站竟因「太火」而下线...

机器之心报道作者:魔王、杜伟想不想在动画电影中拥有自己的角色?这个网站一键满足你的需求,不过竟因流量太大成本过高而下线。近期热映的电影《花木兰》总是让人回想起 1998 年上映的同名动画电影。说起来,动漫真人化或动画版翻拍…

网站位置服务器,如何查看网站的服务器位置

如何查看网站的服务器位置 内容精选换一换华为云主机迁移服务帮助中心,为用户提供产品简介、快速入门、用户指南、API参考、最佳实践、常见问题、视频帮助等技术文档,帮助您快速上手使用主机迁移服务。用户云服务器基本网络功能异常,无法完成…

网络安全系列之七 网站提权

上传了webshell之后,我们的目的是获取服务器的系统管理员权限,这也是黑客入侵的最终目的。 “H4ck Door”是一个很牛的大马,提供了很多功能,我比较喜欢的是执行cmd命令来提权。 首先执行“net user”命令查看服务器有哪些用户&…

vue论坛网站的文章自动排版_基于 VuePress 定制个人博客网站

VuePress简单来说,VuePress 是 Vue 驱动的静态网站生成器。VuePress 简单易上手,同时也有足够强大的定制能力,尤其对熟悉 Vue 的前端开发人员而言。相比于知名的博客生成器 Hexo 来说,VuePress 最大优势就是 Vue 带来的灵活性。在…

想自己搭建服务器,永久运行网站?一个U盘大小的树莓派就够了!

点击上方“方志朋”,选择“设为星标”回复”666“获取新整理的面试资料作者:彭小呆来源:https://urlify.cn/nqaQVfNo.1前言由于本人在这段时候,看到了一个叫做树莓派的东东,初步了解之后觉得很有意思,于是想…

HTML 5中SEO可以用那些代码来做优化

头部代码 1、标题标签(title标签) 在HTML5中标题标签依然存在,其仍然具有不可替代的作用;不过我们看到还有更多的可供搜索引擎识别的代码,我们将改代码的等级微降。 2、元标签(meta标签) 字符集编码声明标签 该标签原本就是搜索引擎必看且首先要看的标签…

只需1分钟,这个网站用AI分离歌曲的人声、伴奏和乐器声

整理 | Just出品 | AI科技大本营(ID:rgznai100)疫情期间,在家待着闲来无事,一些技术人员就喜欢以技术的方式找点乐子,顺带赚钱最好了。将歌曲中的人声和乐器声分离是一件让想使用音乐伴奏的人头疼的事情,传…

大流量网站的底层系统架构

动态应用,是相对于网站静态内容而言, 是指以c/c、php、Java、perl、.net等 服务器端语言开发的网络应用软件,比如论坛、网络相册、交友、BLOG等常见应用。动态应用系统通 常与数据库系统、缓存系统、分布式存储系统等密不可分。 大型动态应用…

jquery 添加 padding_【开发小技巧】11—如何使用JavaScript / jQuery为网站创夜间/高亮模式?...

英文 | https://www.geeksforgeeks.org/how-to-create-dark-light-mode-for-website-using-javascript-jquery/?refleftbar-rightbar翻译 | web前端开发(ID:web_qdkf)浅色深色配色方案(也称为深色模式)是一种补充模式,它使用一种配色方案,其…

visualstudio发布网站到服务器,发布到网站 - Visual Studio (Windows) | Microsoft Docs

使用 Visual Studio 将 Web 应用发布到网站01/29/2019本文内容可以使用“发布”工具将 ASP.NET、ASP.NET Core、.NET Core 和 Python 应用从 Visual Studio 发布到网站。 对于 Node.js,支持这些步骤但用户界面不同。先决条件安装有 Visual Studio 2019 并具有所选语…

搭建网站必不可少的知识3

买虚拟主机的时候还要关注一下空间环境和你要使用的网站源码是不是匹配,比如你用的代码是ASP程序的你买的是PHP的环境,当然是带不起来。我们买的时候关注一下主机支持的程序语言asp、PHP、html、cgi、jsp、Java等等,系统Windows还是Linux&…

html5 php服务器搭建,使用Apache 搭建web 网站服务器

1 ) 安装httpdyum -y install httpd2 ) 查看目录3 )配置文件4 ) 默认是没有启动的55) 开始启动apache并设置开机自启动6 ) 再次查看apache 服务7 ) 查看端口 已经看到成功了8) 装上elinks 浏览器[rootxuegod6 conf]# yum install elinks -y 字符界面浏…

宝塔linux计划任务ftp,宝塔面板定时备份网站及数据库至FTP存储空间图文教程

站长平时会用各种方法备份。包括手动备份、自动备份、定时备份等等不同方法。对于运维人员来说不是难事,对于站点较多的新手站长来说是有一点困难的,毕竟新手在技术方便还是弱了一些。为了能够有更多的时间运营网站,我们可以用宝塔面板的自动…

tdk怎么设置_不知道怎么分析对手网站?看这里!

怎样分析竞争对手网站?对于做seo优化的伙伴来说,研究分析竞争对手网站是一件最为常见,也十分重要的事情。但是,很多小伙伴都不知道怎样去分析竞争对手网站。和老板说分析了对手网站,也只是看看对手网站的站长数据而已&#xff0c…

android hal 驱动,AndroidHAL-Teseo

我想订阅ST电子报ST (as data controller according to the Privacy Policy) will keep a record of my navigation history and use that information as well as the personal data that I have communicated to ST for marketing purposes relevant to my interests. My per…

「Python爬虫」:破解网站字体加密和反反爬虫

前言:字体反爬,也是一种常见的反爬技术,例如58同城,猫眼电影票房,汽车之家,天眼查,实习僧等网站。这些网站采用了自定义的字体文件,在浏览器上正常显示,但是爬虫抓取下来…

thinkphp5项目--企业单车网站(七)

thinkphp5项目--企业单车网站&#xff08;七&#xff09; 项目地址 fry404006308/BicycleEnterpriseWebsite: Bicycle Enterprise Websitehttps://github.com/fry404006308/BicycleEnterpriseWebsite 一、css样式&#xff1a;float和margin-right <div class"radio &qu…