文章目录
zabbix与prometheus区别
zabbix消耗的资源比较多,如果监控的主机非常多时(服务器数量超过500台),可能会出现监控超时、告警超时、告警系统,单点故障等现象,不过也有很多解决办法,比如提高硬件性能、改变zabbix监控模式、 多套zabbix等。
一、Prometheus概述
- borgmon (监控系统) 对应克隆的版本:prometheus(go语言)
- 所以prometheus 特别适合K8S 的架构上,作为一个数据监控解决方案,它由一个大型社区支持,有来自700多家公司的6300个贡献者,13500个代码提交和7200个拉取请求
1.Prometheus具有以下特性:
①多维的数据模型(基于时间序列的Key、value键值对)
②灵活的查询和聚合语言PromQL
③提供本地存储和分布式存储
④通过基于HTTP和HTTPS的Pull模型采集时间序列数据(pull数据的拉取,时间序列:每段 时间点的数据值指标,持续性的产生。横轴标识时间,纵轴为数据值,一段时间内数值的动态变化,所有的点连线形成大盘式的折线图)
⑤可利用Pushgateway (Prometheus的可选中间件)实现Push模式
⑥可通过动态服务发现或静态配置发现目标机器(通过consul自动发现和收缩)
⑥支持多种图表和数据大盘
- 补充: apen-Falcaon是小米开源的企业级监控工具,用Go语言开发,包括小米、滴滴、美团等在内的互联网公司都在使用它,是一款灵活、可拓展并且高性能的监控方案
二、运维监控平台设计思路
1.数据收集模块
2.数据提取模块(prometheus-TSDB,查询语言是promQL)
3.监控告警模块(布尔值表达式判断是否需要告警,不成立是健康状态)
- 可以细化为6层
第六层:用户展示管理层 同一用户管理、集中监控、集中维护
第五层:告警事件生成层 实时记录告警事件、形成分析图表(趋势分析、可视化)
第四层:告警规则配置层 告警规则设置、告警伐值设置(定义布尔值表达式,筛选异常状态)
第三层:数据提取层 定时采集数据到监控模块
第二层:数据展示层 数据生成曲线图展示(对时序数据的动态展示)
第一层:数据收集层 多渠道监控数据(网络,硬件,应用,数据,物理环境)
三、prometheus监控体系
1.监控体系:
①系统层监控(需要监控的数据)
- CPU、Load、Memory、swap、disk i/o、process等
- 网络监控 :网络设备、工作负载、网络延迟、丢包率等
②中间件及基础设施类监控端监控(移动APP、特定程序等)
- 消息中间件:kafka、RocketMQ、等消息代理
- WEB服务器容器:tomcat、weblogic/apache/php/spring系列
- 数据库/缓存数据库:MysQL、PostgresQL、MogoDB、es、redis
监控数据库哪些东西:例如redis监控内容:
- redis所在服务器的系统层监控
- redis 服务状态
- RDB AOF日志监控
- 日志—>如果是哨兵模式—>哨兵共享集群信息,产生的日志—>直接包含的其他节点哨兵信息及redis信息
- key的数量
- key被命中的数量/次数
- 最大连接数——>redis 和 系统:
- 系统:ulimit -a redis :redis-cli 登陆——> config get maxclients 查看最大连接
③应用层监控
- 用于衡量应用程序代码状态和性能