为了更好的对生产环境的一些中间件和操作系统的运行情况进行可视化的展示,近期了解了下prometheus加上grafana来实现这种效果,由于prometheus是新出来的开源项目,所以,监控的插件还不是很多,但是对基本的一些需求能够满足。
Prometheus 是源于 Google Borgmon 的一个开源监控系统,用 Golang 开发。被很多人称为下一代监控系统。
Prometheus 基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,这样做的好处是任意组件只要提供 HTTP 接口就可以接入监控系统,不需要任何 SDK 或者其他的集成过程。这样做非常适合虚拟化环境比如 VM 或者 Docker 。
Prometheus 应该是为数不多的适合 Docker、Mesos 、Kubernetes 环境的监控系统之一。
输出被监控组件信息的 HTTP 接口被叫做 exporter 。目前互联网公司常用的组件大部分都有 exporter 可以直接使用,比如 Varnish、Haproxy、Nginx、MySQL、Linux 系统信息 (包括磁盘、内存、CPU、网络等等)。
Grafana 是一个开源的图表可视化系统,简单说图表配置比较方便、生成的图表比较漂亮。但是 Prometheus 还比较新,要用在生产环境还需要解决一系列的问题,比如和 Grafana 集成相关资料并不多。
缺点:如果操作系统内核版本过低,会出现无法启动客户端进程的情况,centos 5.4 内核版本2.6.30以下的都不能启动。
1、如何部署prometheus,网上有很多的资料,就不再赘述,官网:https://prometheus.io/
部署完成之后,访问方式:http://ip:port/targets,如果站点部署正常应该会出现这种界面。
如果prometheus能够正常的拿到客户端的信息,则会显示up,否则状态为down。
官网上有很多的exporter模版可以直接拿来使用:https://prometheus.io/docs/instrumenting/exporters/
2、配合grafana来实现监控出图
监控生产环境的tomcat和spring boot的jvm信息:
监控生产环境的服务器系统信息:
监控生产环境的redis信息:
监控生产环境的mongodb信息: