设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 手机 数据 公司
当前位置: 首页 > 运营中心 > 建站资源 > 经验 > 正文

六个人如何运维一万台服务器?(8)

发布时间:2017-12-19 10:06 所属栏目:19 来源:51CTO技术栈
导读:在上面的集群架构图里,最下边绿色的是 Graphite 原有的组件,在原有组件上我们自己开发了几个相关的组件。 第一个是 Relay ,每个指标打过来之后,我们通过 Relay 把指标分布在多台机器上,这个是通过一致性哈希来

在上面的集群架构图里,最下边绿色的是 Graphite 原有的组件,在原有组件上我们自己开发了几个相关的组件。

第一个是 Relay ,每个指标打过来之后,我们通过 Relay 把指标分布在多台机器上,这个是通过一致性哈希来实现的。

等我们取数的时候, Graphite-api 这部分也是我们自己开发的, Graphite-api 里也有同样的一致性哈希算法,通过这个算法找到这个指标在这个集群的哪一个机器上,调用这个机器上的 Graphite-web 下的 api,然后拿相关的数据。

这是一个集群的架构,我们有多个集群。Watcher 要做一个统一的界面,在这个界面上配置自己的监控的时候,选择数据源,对于打数的人他清楚这个指标在什么地方。

能不能做一个统一的数据源,让用户来使用,这样我们就在组件里加上了一个纯指标的数据库,每次流量过来之后,我们就会把这个指标的名称写到我们数据库里一份,同时记录它在哪个集群。

这样我们就可以对外报一个统一的 Graphite-api ,假如说一个指标我们要起 s.flat-xx 的指标,首先是调用api,去找 s.flat-xx 这个指标在什么集群里,发现在机票的集群里,再通过一致性哈希就可以把这个指标取出来了。

Graphite-api 上第一部分是借这个 Dashboard 来报警。讲完整个的 Watcher 架构,下面看一下主机监控是怎么做的?

首先有一个硬件管理平台,维护着主机监控的相关信息。

最主要的是会编排代理,去维护代理的版本配置,会不停的去扫描这个主机,往主机上部署,也会定时检查指标是否收集了。

假如这个主机指标出现断点了或者有问题了,会报警去检查,到底是  Collectd 出问题了还是系统出问题了还是网络出问题了。

每个主机上部署 Collectd 之后会根据不同的配置打不同的指标,比如 CPU 的使用情况,内存的使用情况,网络带宽的使用情况,这些都将指标打成了 Watcher。

每个主机的指标可能都是相同的,怎么区分不同主机的指标,我们就以主机的名称作为区分。接入到 Watcher 之后,我们就可以调用 api,在 Dashboard 上调用。

业务监控也是比较类似的,应用接入之后会暴露出 api,里面就是最近 1 分钟之内应用的监控数据,每分钟 Qmonitor server 从所有的机器上去拉这个文件,拿了文件之后做集中的分析,分析完之后做相应的处理。

比如说对应用进行计数,算完之后以 Appcode 作为标识来区分不同的指标,将指标推送到 Watcher。推送到 Watcher 之后,同样可以查询监控,检查应用指标的健康状态。

数据互通

下面讲一下我们怎么在整个运维平台实现数据互通的。我们在监控报警和主机管理里都提到了一个 Appcode ,在去哪儿网 Appcode 到底是什么?

其实它就是唯一的一个标识应用,我们将一个应用进行了抽象化,意思更加广义了。

在去哪儿网一个应用可以是一个 Web 服务,也可以是一个 GPU 云实例,也可以是 MySQL 实例,甚至可以是一组交换机,还可以是其他的。

(编辑:ASP站长网)

网友评论
推荐文章
    热点阅读