目录
4、Prometheus 支持的抓取数据的方式(基于白盒监控)
1、Prometheus Server:收集和储存时间序列数据
6、Data Visualization(Dashboards)
5、prometheusQL(数据查询语言也是时序数据库使用语言)
一、prometheus业务流向
二、常用监控简介
1、cacti
Cacti(英文含义为仙人掌〉是一套基于 PHP、MySQL、SNMP和 RRDtool开发的网络流量监测图形分析工具。
它通过snmpget来获取数据,使用RRDTool绘图,但使用者无须了解RRDTool复杂的参数。它提供了非常强大的数据和用户管理功能,可以指定每一个用户能查看树状结构、主机设备以及任何一张图,还可以与LDAP 结合进行用户认证,同时也能自定义模板,在历史数据的展示监控方面,其功能相当不错。
2、Nagios
Nagios是一款开源的免费网络监视工具,能有效监控windows、Linux和Unix的主机状态,交换机路由器等网络设置打印机等。在系统或服务状态异常时发出邮件或短信报警第一时间通知网站运维人员,在状态恢复后发出正常的邮件或短信通知。
nagios主要的特征是监控告警,最强大的就是告警功能,可支持多种告警方式,但缺点是没有强大的数据收集机制,并且数据出图也很简陋,当监控的主机越来越多时,添加主机也非常麻烦,配置文件都是基于文本配置的,不支持web方式管理和配置,这样很容易出错,不宜维护。
3、Zabbix
zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。zabbix能监视各种网络参数,保证服务器系统的安全运营;并提供强大的通知机制以让系统运维人员快速定位/解决存在的各种问题。
zabbix数据采集方式:
①zabbix的push模式:会在采集的对象服务器上放置agent代理,通过agent代理采集的数据,推送(push)给zabbix,但当监控的对象数量庞大,超过两百以上时,就会出问题,不能抗高并发。
②zabbix的pull模式:自行到对象服务器拉取。自行可避开高并发时期。
4、Prometheus
borg.kubernetes
borgmon(监控系统) 对应克隆的版本:prometheus(go语言)、prometheus 特别适合K8S 的架构上
promtheus特性
① 多维的数据模型(基于时间序列的Key、value键值对)
② 灵活的查询和聚合语言PromQL
③ 提供本地存储和分布式存储
④ 通过基于HTTP和HTTPS的Pull模型采集时间序列数据(pull数据的推送,时间序列:每段
时间点的数据值指标,持续性的产生。横轴标识时间,纵轴为数据值,一段时间内数值的动态变化,所有的点连线形成大盘式的折线图)
⑤ 可利用Pushgateway (Prometheus的可选中间件)实现Push模式
⑥ 可通过动态服务发现或静态配置发现目标机器(通过consul自动发现和收缩)
⑦ 支持多种图表和数据大盘
5、监控的迭代
1、传统
①、比较繁琐,使用nagios 传统监控(硬件和软件都可以监控)
②、云平台(共有、私有、混合、专有(定制化)),使用zabbix,集中到平台中
2、运维同步进步
虚拟化、容器(主传统)vsphere系列,资源管理器管理容器系列k8s,使用prometheus
三、运维监控平台设计思路
①、数据收集模块
②、数据提取模块
③、监控告警模块
四、监控体系
1、系统层监控(需要监控的数据)
包括:
硬件方向:CPU、Load、Memory、swap、disk i/o、process等
网络监控方向:网络设备、工作负载、网络延迟、丢包率等
2、中间件及基础设施类监控
包括:
消息中间件:kafka、RocketMQ、等消息代理
WEB服务器容器:tomcat
数据库/缓存数据库:MySQL、PostgreSQL、MogoDB、es、redis
redis的主监控内容:
①、redis所在服务器的系统层监控
②、redis 服务状态
③、RDB AOF日志监控(日志——>如果是哨兵模式——>哨兵共享集群信息,产生的日志——>直接包含的其他节点哨兵信息及mysql信息)
3、应用层监控
包括:用于衡量应用程序代码状态和性能
监控的分类:黑盒监控,白盒监控
功能:
白盒监控,自省指标,等待被下载
黑盒指标:基于探针的监控方式,不会主动干预、影响数据
4、 业务层监控
用于衡量应用程序的价值
五、prometheus的场景使用
适合的场景:<