IT运维监控解决方案介绍
现状
•小公司/ 创业团队< 500台服务器规模
开源方案:Zabbix、Nagios、Cacti…
云服务提供商:监控宝、oneAlert等
•BAT级别> 10万台服务器
投入大量的人力,内部自研,与业务严重耦合没法作为产品推出
•中间阶层
无从可选
早期,选用Zabbix
•Zabbix是一款开源的企业级监控系统
•对其进行二次开发、封装、调优...
•为什么选择Zabbix
•Cacti
•Collectd
•RRDtool
•Nagios
•openTSDB
Zabbix实践思路
•测试ZabbixNode
•Zabbix代码优化
•使用模式优化
•独立部署多套Zabbix,通过API整合
Zabbix遇到的问题
•随着公司业务规模的快速发展
•用户“使用效率”低下,学习成本很高
•不具备水平扩展能力,无法支撑业务需求
•告警策略的维护、变更代价太大,导致运维人员深陷其中,无法自拔
•不利于自动化,不利于与运维平台等基础设施整合
------------------------------------------------------------------------------------------------
Open-Falcon
Open-Falcon是小米运维团队设计开发的一款互联网企业级监控系统
•提供最好用、最人性化的互联网企业级监控解决方案
•项目主页:http://open-falcon.com
•Github: https://github.com/xiaomi/open-falcon
•QQ讨论组:373249123
•微信公众号:OpenFalcon
社区贡献
•交换机监控
•https://github.com/gaochao1/swcollector
•Windows监控
https://github.com/freedomkk-qfeng/falcon-scripts/tree/master/windows_collect
•Agent宕机监控
https://github.com/freedomkk-qfeng/falcon-scripts/tree/master/agent_monitor
•Redis/memcached/rabbitmq监控
https://github.com/iambocai/falcon-monit-scripts
•MySQL 监控方案
https://github.com/open-falcon/mymon
典型案例
美团
•生产环境广泛应用,1万+agent
•集成服务树、支持ping监控、多机房架构支持、报警第二接收人支持
•正在开发openTSDB接口、query增加正则功能
赶集
•深度定制,用于大数据部门平台服务监控与自动运维,生产环境已上线
京东金融
•深度调研open-falcon
•正在开发测试drrs(一种分布式的time series data 存储组件)并适配falcon
内部

agent
•负责机器数据采集
•自发现各项监控指标
•发送数据给transfer
•发送心跳信息给hbs
•执行自定义插件
•业务数据不要用插件采集!
•数据收集采用推还是拉的方式?
transfer
•对接收到的数据做合法性校验
•转发数据给graph和judge
•为什么要做这个统一的接入端?
•为什么要对数据做分片?
•数据分片方案,用一致性hash还是路由表?
judge
•对接收到的数据按照阈值进行判定
•达到阈值的数据产生相应的event
•触发式判定or 轮询?
•为什么要使用内存?
graph
•操作rrd文件,对数据进行存储和查询
•将多次操作合并后再flush磁盘
•将要flush到磁盘的数据,打散到每个时间片,降低IO消耗
•为什么用rrd而不是opentsdb之类的?
hbs
•提供接口给agent查询机器所需监控的端口、进程、要执行的插件列表等信息
•接收agent汇报的状态信息并写入数据库
•缓存用户配置的告警策略
•为什么要用hbs缓存策略列表?
query
•利用一致性hash算法,查询多个graph的数据并汇聚
•需要使用与transfer相同的hash算法及配置
各web端
•Dashboard负责绘图、展示、仪表盘等
•Uic负责管理组合人的对应关系
•Alarm-dashboard负责展示当前未恢复的告警
•用户在portal中配置告警策略
•Portal中的hostgroup一般是从CMDB中同步过来的!
Aggregator
目标:集群监控
•针对某个hostgroup的多个counter进行计算
•分子:$(c1) + $(c2) -$(c3)
•分母:可以是$# 或者数字或者$(d1) + $(d2) -$(d3)
计算结果
•封装成一个metricItem,再次push回open-falcon
为什么这么实现
•归一化的问题解决方案
•复用整个open-falcon的绘图展现、告警逻辑
Gateway——跨数据中心

接驳服务树(CMDB)
•开源服务器管理组件(服务树)
•监控对象通过服务树来管理
•服务器进出节点、监控自动变更
历史数据高可用
rrd-on-hbase
•绘图数据存储在hbase中,解决高可用的问题
•历史数据提供更详细粒度的查看
drrs(@京东金融)
•Distributed Round Robin Server
•面向中心公司,轻量级的历史数据存储方案,解决数据扩容的问题
智能告警
同比、环比
•Dashboard数据展示支持同比、环比
•告警判定引入同比、环比作为参考
动态阈值
•通过对历史数据的学习,生成动态的告警阈值
关联分析
•精准告警
•故障定位
SDK
七层
•Nginx
•统计cps、200、5xx、4xx、latency、availability、throughput
语言支持Java/C++/PHP/Python
•内置统计每个接口的cps、latency
•内置统计业务关注的指标的能力
框架支持
•resin、spring、flask…
统计类型
•Gauge/ Meter / Timer / Counter / Histogram
云监控
•服务端Host在公有云上
•无需客户安装、运维服务端
•支持namespace隔离、quota限额
•从根本上对不同用户的数据进行隔离
•优化监控的添加、管理、查看流程
•提升用户体验、提高用户使用效率
其他
•Callback功能增强,推进故障自动处理
•插件的管理支持多种方式(不仅限于git)
•Dashboard 增加用户登录认证
•告警排班/ 告警升级(@金山云)
Open-Falcon部署实践
•初始阶段
•所有的组件部署在一台物理机上即可
机器量级~ 500
•graph、judge、transfer三个组件拆分出来部署在1台服务器上
机器量级~ 1000
•graph、judge、transfer 增加到2~3个实例
•query拆分出来,部署2个实例
•dashboard 拆分出来部署
机器量级~ 10K
•graph、judge、transfer 增加到20个实例,graph尽量使用ssd磁盘
•query增加到5个实例
•dashboard 拆分出来,增加到3个实例
希望对您运维管理有帮助。
以上内容部分来自网络, 希望对您系统架构设计,软件研发有帮助。 其它您可能感兴趣的文章:
构建高效的研发与自动化运维
互联网数据库架构设计思路
移动开发一站式解决方案
某大型电商云平台实践
企业级应用架构模式N-Tier多层架构
某企业社交应用网络拓扑架构图
IT基础架构规划方案一(网络系统规划)
餐饮连锁公司IT信息化解决方案一
如有想了解更多软件研发 , 系统 IT集成 , 企业信息化,项目管理 等资讯,请关注我的微信订阅号:

作者:Petter Liu
出处:http://www.cnblogs.com/wintersun/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
该文章也同时发布在我的独立博客中-Petter Liu Blog。
IT运维监控解决方案介绍的更多相关文章
- 运维监控-Open-Falcon介绍
运维监控-Open-Falcon介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Open-Falcon 介绍 监控系统是整个运维环节,乃至整个产品生命周期中最重要的一环,事 ...
- 建设DevOps统一运维监控平台,全面的系统监控 Zabbix VS Nagios VS Open-Falcon OR Prometheus
前言 随着Devops.云计算.微服务.容器等理念的逐步落地和大力发展,机器越来越多,应用越来越多,服务越来越微,应用运行基础环境越来多样化,容器.虚拟机.物理机不一而足.面对动辄几百上千个虚拟机.容 ...
- OpenStack与ZStack深度对比:架构、部署、计算、运维监控等
摘要 OpenStack从2010年开源至今,已经走过9个年头,其正在进入主流企业市场,但该项目依然面临较难部署和管理的老问题.有一点是毫无疑问的,那就是OpenStack保持着高速增长的态势,超过5 ...
- CentOS服务器运维监控Nagios(一)
CentOS下搭建Nagios 王尚 2014.11.09 操作系统:CentOS-6.5-i386-bin-DVD1.iso 安装在VM中进行测试的. 本章需要的软件链接: php-5.3.2.ta ...
- 运维监控-基于yum的方式部署Zabbix Server 4.0 版本
运维监控-基于yum的方式部署Zabbix Server 4.0 版本 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.如何选择zabbix版本 1>.打开zabbix官方 ...
- 运维监控-Open-Falcon安装Agent实战篇
运维监控-Open-Falcon安装Agent实战篇 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本文参考链接来自:http://book.open-falcon.org/zh/ ...
- Prometheus 运维监控
Prometheus 运维监控 1.Prometheus 介绍详解 2.Prometheus 安装部署 3.Prometheus 配置文件详解 4.Prometheus PromSQL 常用资源 5. ...
- 详解Linux运维工具:运维流程管理、运维发布变更、运维监控告警
概述 应用上线后,运维工作才刚开始,具体工作可能包括:升级版本上线工作.服务监控.应用状态统计.日常服务状态巡检.突发故障处理.服务日常变更调整.集群管理.服务性能评估优化.数据库管理优化.随着应用 ...
- 优化系统资源ulimit《高性能Linux服务器构建实战:运维监控、性能调优与集群应用》
优化系统资源ulimit<高性能Linux服务器构建实战:运维监控.性能调优与集群应用> 假设有这样一种情况,一台Linux 主机上同时登录了10个用户,在没有限制系统资源的情况下,这10 ...
随机推荐
- System.FormatException: GUID 应包含带 4 个短划线的 32 位数(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx)。
在NHibernate数据库查询中出现了这个错误,由于是数据库是mysql的,当定义的字段为char(36)的时候就会出现这个错误. [解决方法] 将char(36) 改成varchar(40)就行了 ...
- 深入理解CSS中的margin负值
前面的话 margin属性在实际中非常常用,也是平时踩坑较多的地方.margin折叠部分相信不少人都因为这样那样的原因中过招.margin负值也是很常用的功能,很多特殊的布局方法都依赖于它.它看似简单 ...
- .NET平台开源项目速览(14)最快的对象映射组件Tiny Mapper
好久没有写文章,工作甚忙,但每日还是关注.NET领域的开源项目.五一休息,放松了一下之后,今天就给大家介绍一个轻量级的对象映射工具Tiny Mapper:号称是.NET平台最快的对象映射组件.那就一起 ...
- 将 instance 部署到 OVS Local Network - 每天5分钟玩转 OpenStack(130)
上一节创建了 OVS 本地网络 first_local_net,今天我们会部署一个 instance 到该网络并分析网络结构.launch 一个 instance,选择 first_local_net ...
- JavaScript常见的五种数组去重的方式
▓▓▓▓▓▓ 大致介绍 JavaScript的数组去重问题在许多面试中都会遇到,现在做个总结 先来建立一个数组 var arr = [1,2,3,3,2,'我','我',34,'我的',NaN,NaN ...
- nginx源码分析之模块初始化
在nginx启动过程中,模块的初始化是整个启动过程中的重要部分,而且了解了模块初始化的过程对应后面具体分析各个模块会有事半功倍的效果.在我看来,分析源码来了解模块的初始化是最直接不过的了,所以下面主要 ...
- 【绝对干货】仿微信QQ设置图形头像裁剪,让你的App从此炫起来~
最近在做毕业设计,想有一个功能和QQ一样可以裁剪头像并设置圆形头像,额,这是设计狮的一种潮流. 而纵观现在主流的APP,只要有用户系统这个功能,这个需求一般都是在(bu)劫(de)难(bu)逃(xue ...
- Kooboo CMS技术文档之三:切换数据存储方式
切换数据存储方式包括以下几种: 将文本内容存储在SqlServer.MySQL.MongoDB等数据库中 将站点配置信息存储在数据库中 将后台用户信息存储在数据库中 将会员信息存储在数据库中 将图片. ...
- 在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能
在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验 ...
- LINQ to SQL Where条件
1. 适用场景 实现条件的过滤和查询等功能. 2. 说明 跟SQL语句中的where作用相似,都起到了范围的限定即过滤的作用,而判断条件是紧跟后面的条件子句.where主要分为三种形式:简单形式.条件 ...