一、监控及prometheus简介

1.1 监控逻辑架构图


监控架构说明:
1、prometheus client端收集k8s集群数据存储在本地或者远端存储上
2、然后由prometheus server将数据收集起来
3、通过grafana展示k8s集群的数据
4、如果服务异常,可以通过alertmanager进行告警(通过邮件、钉钉、微信等进行告警)

1.2 整体布局

1.3 常见监控方案

开源监控软件:cacti、nagios、zabbix、smokeping、open-falcon等
1、Cacti
官网链接:https://www.cacti.net/
github链接:https://github.com/Cacti/cacti
  Cacti是基于LAMP平台展现的网络流量监测及分析工具,通过SNMP技术或自定义脚本从目标设备/主机获取监控指标信息;其次进⾏数据存储,调用模板将数据存到数据库,使用 rrdtool存储和更新数据,通过rrdtool绘制结果图形;最后进行数据展现,通过web方式将监控结果呈现出来,常用于在数据中心监控网络设备。
2、Nagios
官网链接:Nagios Open Source | Nagios Open Source
  Nagios用来监视系统和网络的开源应⽤软件,利用其众多的插件实现对本机和远端服务的监控,当被监控对象发生异常时,会及时向管理员告警,提供一批预设好的监控插件,用户可以之间调用,也可以自定义Shell脚本来监控服务,适合各企业的业务监控,可通过Web页面显示对象状态、日志、告警信息,分层告警机制及自定义监控相对薄弱。
3、SmokePing
SmokePing - About SmokePing
http://blogs.studylinux.net/?p=794
  Smokeping是⼀款⽤于⽹络性能监测的开源监控软件,主要⽤于对IDC的⽹络状况,⽹络质量,稳定性等做检测,通过rrdtool制图⽅式,图形化地展示⽹络的时延情况,进⽽能够清楚的判断出⽹络的即时通信情况。
4、Open-falcon
https://www.open-falcon.org/
https://github.com/XiaoMi/open-falcon
小米公司开源出来的监控软件open-falcon(猎鹰),监控能力和性能较强。
5、夜莺
Nightingale - 夜莺云原生监控
  一款经过大规模生产环境验证的、分布式高性能的运维监控系统,由滴滴基于open-falcon二次开发后开源出来的分布式监控系统。
安装部署:夜莺项目介绍 - 快猫星云
或者https://www.cnblogs.com/wdyjx/p/16521918.html#11%E5%A4%9C%E8%8E%BA%E4%BB%8B%E7%BB%8D
6、Zabbix
Zabbix:企业级开源监控解决方案
  目前使用较多的开源监控软件,可横向扩展、自定义监控项、支持多种监控⽅式、可监控网络与服务等。
7、Prometheus
针对容器环境的开源监控软件
8、商业监控解决⽅案
监控宝(监控宝-网站监控_服务器监控_API监控_全栈运维解决方案)
听云(基调听云 -可观测性与应用安全)

1.4 prometheus 简介

官网链接:https://prometheus.io/
  Prometheus是基于go语言开发的一套开源的监控、报警和时间序列数据库的组合,是由SoundCloud公司开发的开源监控系统,Prometheus于2016年加入CNCF(Cloud Native Computing Foundation,云原生计算基⾦会),2018年8月9日prometheus成为CNCF继kubernetes 之后毕业的第二个项目,prometheus在容器和微服务领域中得到了广泛的应用。
其特点主要如下:

使用key-value的多维度(多个维度,多个层面,多个方面)格式保存数据。
数据不使用MySQL这样的传统数据库,而是使用时序数据库,目前使用的是TSDB(Time Series DataBase)
支持第三方dashboard实现更绚丽的图形界面,如grafana(Grafana 2.5.0版本及以上)
组件模块化
不需要依赖存储,数据可以本地保存也可以远程保存(包括NFS存储或第三方存储服务VictoriaMetrics)
平均每个采样点仅占3.5 bytes,且一个Prometheus server可以处理数百万级别的的metrics指标数据。
支持服务自动化发现(基于consul等方式动态发现被监控的目标服务)
强大的数据查询语句功能(PromQL,Prometheus Query Language)
数据可以直接进行算术运算,即可以将查询到的数据进行加减乘除运算
易于横向伸缩
众多官方和第三方的exporter实现不同的指标数据收集

1.4.1 为什么使用Promethues

  容器监控的实现方式与虚拟机或物理机的监控实现方式有比较大的区别,比如容器在k8s环境中可以任意横向扩容与缩容,那么就需要监控服务能够自动对新创建的容器进行监控,当容器删除后⼜能够及时的从监控服务中删除,而传统的zabbix的监控方式需要在每个容器中安装启动agent,并且在容器自动发现注册及模板关联方面并没有比较好的实现方式。

1.4.2 Prometheus架构

架构图:
 


Prometheus组件:
  push gateway:数据收集代理服务器(类似于zabbix proxy),不具备抓取数据的功能,只能接收脚本或程序推送过来的数据,作为prometheus server的数据来源之一
  prometheus targets: 静态收集的目标服务数据,是prometheus server的数据来源之一
  prometheus server:主服务,接受外部http请求,收集、存储与查询数据等。监控数据主要来自于prometheus targets收集的目标服务数据以及push gateway获取到的数据。prometheus目前只支持从prometheus targets和push gateway拉取(pull)数据的模式,不支持prometheus targets和push gateway将数据推送(push)给prometheus server,这种模式会消耗部分prometheus server性能。
  service discovery:动态发现服务,主动发现服务并对其进行监控
  prometheus alerting:报警通知
  data visualization and export: 数据可视化与数据导出(访问客户端)

  • 23
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值