这是一个反复出现的问题,但是我能find的最接近的问题是7年前问的 ,而这个时间几乎是不同的。
我经营一个小型企业,我们主办了多个中小型客户端网站(没有任何需要超过几个1G数字海洋液滴)。 目前的解决scheme(ad-hoc脚本和电子邮件)开始显示其局限性,特别是当前的业务快速增长。
业务问题
因此,我需要build立一个新的解决scheme。 也许不是所有的一次,但我当然不希望重新做一切。 我能想到的要求:
- 简单。 简单。 简单。 我没有工作人员,我没有时间,我不消化胡说八道。 我准备好分配所需的资源,但不多。
- 没有SaaS。 在过去的几年中,我一直在使用大量的SaaS,他们最终都变得更加昂贵,停止服务或者购买,然后完全消失。 SaaS是我不想承担的风险。
- 最终,我只关心简单的事情:
- 我的网站没有错误,速度不够快?
- 我的网站是否超载?
- 我的磁盘是否满了?
- 有一个基于Ansible的自动部署系统,它应该能够负责为每个站点configuration监视/警报
- 我希望主pipe人员在凌晨4点以一切可能的方式醒来,当然如果有用的话
- 所有的事件/问题都应该在某个地方进行跟踪,并且易于移动(如JIRA板)
- 所有的数据应该存储在某个地方供我以后检查,包括HTTP日志,我希望能够在这些日志中查找缓慢或容易出错的页面。
- 我有几十个(Debian)服务器,需要集中所有关于它们的信息
我做了研究
为了做到这一点,我开始挖掘互联网,发现基本上可以互相连接的东西,如果你愿意的话。
- ELK堆栈 (和“Beats”)。 似乎完美的收集和存储日志/指标。 您可以拥有漂亮的仪表板并查看您的数据,但这只是您所能做的。
- X-Pack 。 似乎是与ELK完美的事情,但看起来像一个漂亮的废话蛋糕周围厚厚的糖衣。 另外,不公布价格的“订购”模式可能意味着价格过高。
- Shinken / Nagios / Zabbix是最初的竞争者,但却很无聊而且复杂,需要自定义代码和全部的创可贴才能与ELK合作。
- Riemann看起来像是一个很好的框架,可以触发警报,但不会在事后进行pipe理。 另外你必须自己写一切。 我不知道该把它插在什么地方(我不想有几个探针测量相同的东西)。 对我来说可能太复杂了。
- ElastAlert可能是一个好主意,但似乎没有一个实际的方式来pipe理警报
- bosun看起来比ElastAlert更成熟,更完整,但是也有相同的缺点和更复杂的configuration
- openduty环有趣,但显然太不成熟,被认为是可行的
- cabot做出了很好的承诺,被一家公司用来制作和使用,这个公司为了编写文档,所以它可能不会死(虽然有点晕)
- 当然,还有普罗米修斯 , Graphana , Graylog , Fluentd和其他无数的人。
迄今为止采取的步骤来解决它
我目前对这种情况的理解是我需要2个工具(好的,堆栈):
- 一个收集,存储和允许查询日志和指标。 这就是要让我的业务统计,事后分析,debugging洞察力等等。 看来,那个完美的运动员是ELK 。
- 一个不断分析数据,以查找违规行为并发出警报的人。 现在这一点不太清楚。 我会去Cabot看起来简单和可扩展。
实际的问题
我的要求是否有意义? 如果是这样的话,我是否正确地寻求这两个工具(一个用于日志存储/访问,一个用于提醒pipe理)? 如果是的话,我的select是为了这个任务吗?还是你推荐别的?
不是问题
我并不是要求精简的监控解决scheme,而是简单地说明我的问题和我的解决scheme,并希望得到它的确认,或者指出它失败的地方。
感谢大家!
你太过于复杂了,上面详细说明的选项与你对简单性的要求是背道而驰的。
使用NewRelic和Monit 。
用于一般云监控,统计和历史的NewRelic 。 它对服务器是免费的。
使用Monit来处理应用程序和服务器级别的问题。 通过升级或使用电子邮件到SMS地址处理警报。
如果您需要集中报告多个由Monitpipe理的主机,请使用M / Monit 。
如果您需要深入分析每个主机级别,请查看NetData 。