前文概要
Prometheus是用于事件监控和警告一个免费的软件应用程序。它记录了使用HTTP拉模式,具有灵活的查询和实时报警建成了时间序列数据库的实时指标。
Web领域针对各个指标的监控必不可少,前几期讲过业务架构的演进:从架构业务方向区分: 单体架构---->面向服务架构---->微服务;
特别是最后的形态:微服务,监控重中之重,能监控业务的正常运作和故障的及时发现尤为重要。
监控保证我们业务的正常指标的检测,故障的提醒等;
使用过的监控软件有:阿里云自带的ECS/RDS等监控工具,单体架构、面向服务架构的业务中足够使用;
当然也有老牌监控:zabbix,安装参考Docker搭建zabbix,配置zabbix-agent基于Ubuntu系统
然后就是微服务,随着云原生的热度,Prometheus成为了主流的监控软件。
Prometheus是如何从众多的监控平台中脱颖而出成为下一代监控系统的首选,他的基础架构:
Prometheus
第一步需要先安装Prometheus,安装步骤请参考官方文档
docker run -p 9090:9090 -v /etc/prometheus/prometheus.yml:/etc/prometheus/prometheus.yml prom/prometheus
示例展示使用查询微服务和接口图形展示
Grafana
为何要用到Grafana?它其实是一个数据可视化平台,通过引入prometheus的数据源,展示到好看的表格数据。
Grafana是一个跨平台、开源的数据可视化网络应用程序平台。用户配置连接的数据源之后,Grafana可以在网络浏览器里显示数据图表和警告。
安装
- 这里只讲容器安装方式
参考资源:https://grafana.com/docs/grafana/latest/installation/docker/
docker run -d -p 3000:3000 --name=grafana grafana/grafana
登录web:http://xxxx:3000/login
#初始登录参数:admin/admin
使用
在浏览器中输入 http://127.0.0.1:3000/ 访问 Grafana 界面。
点击左侧边栏 Configuration -> Data Source -> Add data source 进行数据源添加。
-
添加 Prometheus 数据源
-
添加 Variables 用于服务筛选
-
点击左侧边栏 Dashboard 选择右上角 Dashboard settings 按钮,在 Settings 页面选择 Variables -> Add variable 添加变量,方便针对不同的标签进行过滤筛选。
-
api_app API服务名称 label_values(app) .*-api
-
rpc_app RPC服务名称 label_values(app) .*-rpc
-
-
图形展示统计方式
- 以 code 维度统计 api 接口的状态码
- sum(rate(http_server_requests_code_total{app=“$api_app”}[5m])) by (code)
- 以 path 维度统计 api 接口的 qps
- sum(rate(http_server_requests_duration_ms_count{app=“$api_app”}[5m])) by (path)
- 以 method 维度统计 rpc 接口的 qps
- sum(rate(rpc_server_requests_duration_ms_count{app=“$rpc_app”}[5m])) by (method)
- 以 code 维度统计 api 接口的状态码
Prometheus与其他监控软件的区别
监控系统 | 开发语言 | 成熟度 | 扩展性 | 高性能 | 社区活跃度 | 对容器的支持 | 企业使用情况 |
---|---|---|---|---|---|---|---|
Zabbix | C + PHP | 高 | 高 | 低 | 中 | 低 | 高 |
Nagios | C | 高 | 中 | 中 | 低 | 低 | 低 |
Open-Falcon | Go | 中 | 高 | 高 | 中 | 中 | 中 |
Prometheus | Go | 中 | 高 | 高 | 高 | 高 | 高 |