极简监控报警系统

2018年09月12日 7169点热度 1人点赞 0条评论

目标

将基础指标(机器资源、API响应)的监控最大化的简化部署与维护工作。

目标机器:

适用于20~30台机器或者API进行监控。 其报警标准也适当简化。

目前对于机器, 仅支持*NIX类型的机器。

因为小团队, 可能管理的机器数量也并不大, 但是又需要监控。

目标用户:

全栈开发团队, 需要花费更多的时间与精力在业务开发, 对监控要求不高, 但是又有基础的监控需求。

方案特点

1. 极简部署与运行

通过docker的方式, 只需要一个命令就可以把这一套系统搭建运行起来。

2. 可视化、傻瓜化的配置

无论是Zabbix 还是Prometheus, 运维人员都需要知道了解底层的配置,或者对应指标的名字。 对于Zabbix这种庞然大物, 了解如何配置指标就需要花费一定的学习时间。

此系统用户无需了解底层配置文件的结构, 直接在UI上可视化傻瓜化的添加、减少机器或者API即可。

由程序对应的更新配置文件。

做到对任何技术人员都能看懂并会用。

3. Agentless

无论是Zabbix还是Prometheus, 默认都需要在被监控机器上面安装agent。

采用Agentless方案, 会极大减轻开发团队的运维难度与复杂度。

4. (付费功能, 需要确认)扩展的AlertManager

原生AlertManager只支持邮件、Slack等国外的通知方式, 扩展之后支持微信、国内短信、国内电话等方式进行通知。

5. (付费功能)AI Intelligent Alert

AlertManager 需要进行配置, 需要业务人员对数据的值比较了解, 如何设定阈值一直都是问题。 AIOps让运维人员自动发现指标出现异常情况。

maybe: 自动生成Grafana报表, 展示有异常的指标

6. (付费功能)数据推送

这种实施方案一般部署于内网, 通过SSH登录的方式监控外网机器。 如果用户想直接在外网查看报表, 就需要将内网的监控数据推送到外网对接的docker镜像, 由外网的docker镜像进行报表展示。

PS: 这里就需要应用Promethus的push gateway功能。

7. (付费功能, 需要确认) 用户分组

如果需要监控的机器比较多, 不同的项目或者项目组共同使用一套系统, 对用户按照项目组进行分组会是一个比较好的选择。 (maybe原生的Prometheus已经自带这个功能, 如果自带就可以作为免费Feature提供)

8. (不确定)Agentless DB Agent

当前已经有MySQL Exporter, 但是貌似是要在远程机器上面安装? 如果目前限定于监控能远程访问的MySQL或者其他DB, 可以直接把对应的exportor放到docker镜像之中。 方便配置的时候直接调用

9.(不确定, 看起来可以作为付费功能)RecoverManager

我自己瞎扯出来的, 当目标资源出现异常之后, 自动采取恢复措施。(比如docker重启, 服务重启)。

10. (免费功能, 需要可行性研究)自动生成Grafana展示报表

当前专业的运维人员都要熟悉如何搭建、配置Grafana做展示。 其中还需要学习PromSQL语句。

如果能自动生成Grafana报表, 运维复杂度下降一个等级。

实施方案 (免费功能部分)

基于原生的Prometheus原生Docker镜像进行扩展。 扩展项:

  • Flask-Portal

    普通模式让用户可以可视化的编辑配置文件。

    高级模式就是直接把yml文件加载显示出来。 直接编辑、保存

  • remote_node_exporter

    基于phuslu的remote_node_exporter进行指标监控。 该exporter通过ssh登录的方式, 实现agentless监控

  • 复用当前自带的http_exporter

    实现对于API的监控

  • 直接安装black_box exporter 跟 alert manager

RangerWolf

保持饥渴的专注,追求最佳的品质

文章评论