监控简单介绍

在我们的工作中,尤其是运维行业,监控无疑必不可少,监控是我们的第三只眼睛,面对众多的服务器和应用,我们作为运维人员不可能每天去巡查每台服务器的每个应用程序和系统状态,而监控系统则能供帮我们完成这一项任务,当应用与系统出现一些不好的状况,监控系统可以通过邮件,微信或者短信的多种方式及时传递给我们,使得我们可以及时发现及时处理以保证业务连续稳定提供给外部。

监控对于IT行业并不陌生,几乎所有的IT人员与应用系统都会使用到监控,向我们最早接触的Nagios监控zabbix监控,其中zabbix监控系统是现在最主流的监控系统使用人数也非常多,主要是zabbix比较老牌,监控功能强大,监控项齐全并且模板众多并且资料也比较完善使得它在IT行业占据绝对位子。但是今天我的这一系列文档的主角是却不是zabbix而是一款开源的并且很强大的监控系统Prometheus它不仅可以监控物理机和虚拟机并且对容器(Kubenetes)支持特别好,现在容器化平台也基本上都使用Prometheus来监控。



Prometheus是什么

Prometheus(普罗米修斯)开源监控系统。它支持多维度的指标数据模型,服务端通过HTTP协议定时拉取数据后,通过灵活的查询语言,实现监控的目的。

客户端记录相关指标数据,对外提供查询接口。Prometheus服务端通过服务器发现机制找到客户端,并定时抓取存储为时间序列数据。最后通过Grafana等图表工具集成展示。

prometheus 查询prometheus中某个指标5分钟内的个数 prometheus查询接口_python



Prometheus可以做什么

  • 在业务层用作埋点系统
    Prometheus支持各个主流开发语言(Go,java,python,ruby官方提供客户端,其他语言有第三方开源客户端)。我们可以通过客户端方面的对核心业务进行埋点。如下单流程、添加购物车流程。
  • 在应用层用作应用监控系统
    一些主流应用可以通过官方或第三方的导出器,来对这些应用做核心指标的收集。如redis,mysql
  • 在系统层用作系统监控
    除了常用软件, prometheus也有相关系统层和网络层exporter,用以监控服务器或网络。
  • 集成其他的监控
    prometheus还可以通过各种exporte,集成其他的监控系统,收集监控数据,如AWS CloudWatch,JMX,Pingdom等等

 它的强大不仅是说说而已。本系列文档可能理论的东西偏少一点实验的内容偏多一些,如果各位想要了解详细的理论体系可以访问https://prometheus.io,我的目的也很简单毕竟有的时候我们需要使用一个东西迫于时间的问题很多情况是先使用然后再全面了解这个技术的原理。