链接:https://pan.baidu.com/s/1PVUSqwqAel2KjM3IUONZ1A
提取码:dz53
系统监控方案:
当下主流的监控方案有三个,分别是:
Zabbix
Prometheus
Open-falon
zabbix 是一个老牌监控系统,基于 web 界面的企业级开源监控软件。Zabbix 服务器需要 LAMP 环境或 LNMP 环境,提供分布式系统监控与网络监视功能。其具备主机的性能监控,网络设备性能监控,数据库性能监控,多种告警方式,详细报表、图表的绘制等功能。监测对象可以是 Linux 或 Windows服务器,也可以是路由器、交换机等网络设备,通过 SNMP、zabbix Agent、PING、端口监视等方法提供对远程网络服务器等监控、数据收集等功能。
特点:可以监控服务器,路由器,交换机
1.22Prometheus(普罗米修斯)Prometheus 是由 SoundCloud 开发的开源监控系统的开源版本。2016年,由Google发起的Linux基金会(Cloud Native Computing Foundation,CNCF)将Prometheus纳入其第二大开源项目。Prometheus 在开源社区也十分活跃。Prometheus 是与 kubernetes 是师兄弟关系,CNCF 开源第一个项目是 k8s,第二项目就是 prometheus。
特点:更适合云环境下监控,特别是 k8s 系统下的服务监控
1.3Open-falconOpen-Falcon是小米运维部门开源出来的互联网企业级监控系统,目前包括小米、金山云、美团、京东金融、赶集网等都在使用Open-Falcon。Open-Falcon 整体可以分为两部分,即绘图组件、告警组件。
“绘图组件”负责数据的采集、收集、存储、归档、采样、查询、展示(Dashboard/Screen)等功能,可以单独工作,作为time-series data的一种存储展示方案。
“告警组件”负责告警策略配置(portal)、告警判定(judge)、告警处理(alarm/sender)、用户组管理(uic)等。
特点:国产监控系统,资料丰富
总结:
Zabbix 文档资料较少,配置项不多,功能不够丰富,优点是直接可以在页面上进行配置;
Prometheus 功能比 Zabbix 多,比 Open-falcon 少,配置项多但文档不够详细;Open-falcon 功能丰富,官方文档也比较详细。
02安装部署难度Zabbix:
安装 zabbix-server 端
使用 web 页面配置
增加 client 端的监控都在 web 上完成
Prometheus
安装 go 语言环境
在监控服务器上安装 prometheus
在被监控环境上安装客户端 export
安装 grafana(可以不装)
Open-falcon
安装 redis
安装 mysql
安装 go 语言环境
安装后端模块
安装客户端模块
Zabbix 通过 SNMP、Agent、ICMP、SSH、IPMI 等对系统进行数据采集。数据量大时,展示需要直接读取数据库,会卡慢
节点监控规模:1000+
3.2prometheusPrometheus 的基本原理是通过 HTTP 协议周期性抓取被监控组件的状态,任意组件只要提供对应的 HTTP 接口就可以接入监控。不需要任何SDK或者其他的集成过程。这样做非常适合做虚拟化环境监控系统,比如 VM、Docker、Kubernetes等。输出被监控组件信息的 HTTP 接口被叫做 exporter 。目前互联网公司常用的组件大部分都有 exporter 可以直接使用,比如 Varnish、Haproxy、Nginx、MySQL、Linux 系统信息(包括磁盘、内存、CPU、网络等等)。
Prometheus 采集的数据包括了主机性能监控、容器性能监控、Nginx 访问流量、Kubernetes 状态以及平台各个组件的性能指标。目前 Prometheus 本地数据指保留一个月,历史数据保存到 M3DB 中。
节点监控规模:1000+
3.3Open-falconOpen-falcon 数据传输基于 tcp 协议。agent 节点能自动获取到系统的基础监控指标,并上报给 transfer,agent 与transfer 建立了 TCP 长连接,每隔60秒发送一次数据到transfer。
open-falcon 的 agent 组件直接支持 CPU、Load、内存、磁盘、IO、网络相关、内核参数、ss 统计输出、端口采集、核心服务的进程存活信息采集、关键业务进程资源消耗、NTP offset 采集、DNS 解析采集。还有第三方扩展组件可以支持更多的数据采集。
节点监控规模:1000+
存储:mysql prostgresql
Zabbix 存储在 MySQL 上,也可以存储在其他数据库服务。Zabbix 由于使用了关系型数据存储时序数据,所以在监控大规模集群时常常在数据存储方面捉襟见肘。所以从 Zabbix 4.2版本后开始支持 TimescaleDB 时序数据库,不过目前成熟度还不高。
4.2Prometheus存储:opentsdb
Prometheus 自研一套高性能的时序数据库,在 V3 版本可以达到每秒千万级别的数据存储,通过对接第三方时序数据库扩展历史数据的存储。
为了解决单节点存储的限制,prometheus 没有自己实现集群存储,而是提供了远程读写的接口,让用户自己选择合适的时序数据库来实现 prometheus 存储的扩展性。
4.3Open-falcon存储:归档用 RRD 存储用 mysql +redis+opentsdb
Open-Falcon 都采用 RDD 数据存储,Open-Falcon 还加入了一致性hash算法分片数据,并且可以对接到OpenTSDB。
RRD 全称是 Round Robin Database ,即「环型数据库」。顾名思义,它是一种循环使用存储空间的数据库,适用于存储和时间序列相关的数据。
RRD 数据库在被创建的时候就已经定义好了大小,当空间存储满了以后,又从头开始覆盖旧的数据,所以和其他线性增长的数据库不同,RRD 的大小可控且不用维护。
总结:
如果只是短期存储和查询,那么 Prometheus、Open-falcon、zabbix 现有的都能满足要求。但如果要对大量数据进行分析预测等过程,则三者都需要转用其他可接入 spark、mapreduce 等的数据库。Open-falcon 需要进行二次开发,Prometheus 提供了远程读写的接口。Zabbix 后台用 C 开发,二次开发的难度比较大。
5.1.Zabbix 可以实现复杂的多条报警信息
电话报警、邮件报警、微信报警、短信报警、报警升级机制等(无论什么报警都可以)。
5.2.Prometheus
目前支持邮件、slack、微信和 webhook,如果是对接钉钉,便可以通过 webhook 方式触发钉钉的客户端发送告警。
5.3.Open-falcon
短信、微信、邮件、电话。
可配置报警级别,比如 P0/P1/P2 等等,每个及别的报警都会对应不同的 redis 队列。
06选择方案对比三种监控数据的各个特征指标,能够得出结论:
open-falcon不是功能最强大的,但是是使用最简单便捷的。特别是数据存储方面不用担心数据量一直增加而出现的磁盘问题,节省运维成本。同时考虑目前openlab系统的服务器规模,功能需求不复杂以及可能需要的告警扩展,open-falcon都能够满足需求。
出处:http://dwz.date/dj4m
51Reboot 课程介绍如下
●整理 kubernetes 各种问题汇总
●使用 Elastic 技术栈构建 Kubernetes 全栈监控(完结)
●Kubernetes 与 Helm:使用同一个 Chart 部署多个应用
●k8s 之调度器、预选策略及优选函数
●运维精华



