前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >系统监控“供给侧改革”之“需求匹配” ,鞍钢数据中心系统运维监控平台建设实践

系统监控“供给侧改革”之“需求匹配” ,鞍钢数据中心系统运维监控平台建设实践

作者头像
Zabbix
发布2021-09-08 11:34:12
7300
发布2021-09-08 11:34:12
举报
文章被收录于专栏:Zabbix中国官方Zabbix中国官方

本文整理自冉令楠在Zabbix forum深圳站的演讲。

冉令楠,鞍钢集团信息产业有限公司项目经理,鞍钢数据中心系统运维监控平台建设负责人。

点击获取ppt

从2019年开始使用Zabbix就参加Zabbix大会,因为每届大会都有许多业内专家进行技术分享,我都认真学习,受益匪浅。今天我分享的主题是系统监控供给侧改革之需求匹配,标题很时髦,从题目可以看出要讲的是如何更好地满足需求。从用户的需求方面来分享在系统运维监控平台建设推广阶段,如何简单快速的满足用户的关键需求,用户的需求就是我的需求。

1 场景需求介绍

2018年由我公司承建的鞍钢数据中心建成投运,建筑面积5000平米。截止目前数据中心有柜120个,物理服务器300多台,GPU约7000c,内存约18TB,存储量约600TB,虚拟机约700套,承载的运用系统近百套,主要为鞍钢集团各子企业提供高性能、高可用性、高可扩展和高安全性的软硬件平台及技术支持。

我们数据中心承载的业务系统有许多,业主单位、开发单位、运维单位也有许多,有的是我们鞍钢自己的,有的是鞍钢内部其他单位的,还有的是鞍钢外部单位。

2 监控平台服务需求

随着承载业务量的增加,为了提高数据中心的服务质量和水平,从2019年开始,我们着手研究和搭建我们自己的系统运维监控平台。在时间有限,人员有限技术有限的情况下,从用户需求出发,聚焦用户关键需求,最大限度的匹配用户关键需求,是我们建设监控平台初期的首要宗旨。

从应用角度来看,我们数据中心的用户分为两类,一类是开发使用运维都是我们鞍信自己来做,另一类是开发使用运维中有某些个环节不是鞍信来做。对于要在被监控对象上安装agent来实现监控这个问题上,这两类用户有不同的想法。

对于我们自己的系统,采用什么方式来监控都没有异议,反正都是我们自己人,如果出了问题也都好商量解决。但对于他人的系统,无论是不是我们负责任运维,这些用户都不愿意接受在他们的系统里安装agent来实现监控。他们觉得你在我的系统里安装agent,会占用我的系统资源,会增加我的系统负载。出了问题就是你的agent造成的。

既然监控需求端提出了要求,我们监控供给侧一定要想办法匹配,同时也是为了避免麻烦和解释。经过统筹考虑,我们选择在能够满足监控需求的情况下,首选无代理方式来实现监控。我也很理解那些用户的想法,这就类似于看病,如果能通过中医号脉就能查清病症,没有人愿意下胃管下肠镜或者开刀,支持无代理的监控方式,也是我们在众多开源监控软件中选择Zabbix的重要原因之一。

在监控系统使用之初能够让用户广泛接纳也是很重要的。之前确实有一些监控产品,因为需要安装使用agent被用户拒绝使用。在社区群交流中,有人说agent不香吗?为什么不用agent?但这是没法强求用户接受的。其实用户并不关心你的监控平台架构是如何搭建的,也不会关注我们的监控功能是如何实现的,用户更关注自己的监控需求是否能被满足。

既然是决定使用无代理的方式来实现监控,用户的关键需求是不是都能够满足呢?我们把各系统用户的监控需求做了个梳理,主要有三大类,操作系统、数据库和应用服务。因为绝大多数应用系统都是部署在我们的金刚云上,所以对于硬件的异常情况,应用系统用户并不太关心,反而是我们数据中心自己比较关心。

3 agentless下的agent借用

agent跳转机

在研究使用在Zabbix一段时间后,我们发现对于一些监控指标的获取,这种方式是可以实现的。我们的方法是建立独立的agent跳转机。大家都知道如果要使用Zabbix agent模板及监控项必须安装Zabbix agent。既然是不允许在被监控对象上安装,我们就单独找个机器安装。我们称这台安装zabbix agent的机器为agent跳转机,我们既可以从这台agent跳转机通过各种协议远程连接到被监控对象采集监控数据,又可以通过它将监控数据上传给zabbix server。下面我就以三个例子来阐述一下,使用这种方式对数据库JVM、DNS监控的具体实现。

常规使用ODBC监控 - 数据库

对数据库的监控,常规套路如果不使用zabbix agent,若要实现对数据库的监控,需要在zabbix server机器上对odbc.ini文件进行编辑,在其中添加被监控数据库实例的IP、端口号、数据库ID、用户名及口令等连接参数,使zabbix server能够通过odbc连接到这个数据库实例。之后在zabbix web端添加被监控主机,创建database monitor类型监控项,实现对数据库实例运行状态的监控。但是这种方式要求所有数据库的连接都是通过zabbix server服务器来实现的,如果被监控数据库有很多的话,势必会对zabbix server服务器造成很大的压力。而zabbix server是我们监控系统的核心,是重点保护对象,显然这种实现方式不理想,而且这种方式也无法服用系统自带的zabbix agent类型模板及监控项。

我以监控两套mysql数据库实例为例,介绍采用agent跳转机是如何实现对数据库的监控的。总共9步。

更多ppt内容请联系填表获取

使用agent跳转机监控-JVM

使用agent跳转机监控-DNS

总结:

  • 只要是能够通过IP及端口号进行远程连接访问的监控数据,基本都可以利用agent跳转机来实现。
  • 即使不在被监控对象上安装agent仍然可以使用zabbix agent类型模板及监控项来实现监控。
  • 可以最大限度的服用,这个是系统自带的监控模板及监控校
  • 用户很易于接受。

4 agentless下的标准服务

但是还有一些不能直接通过IPC端口号实现远程访问的监控需求,在不安装agent的情况下怎么来实现呢?

为了不让用户有疑虑,思路还是能用系统自带的标准服务来实现的,就首选使用标准服务。对于服务器硬件状态监控,我们开启了服务器带外管理的snmp服务,通过snmp标准服务来获取服务器硬件状态。

我们数据中心还有一些IBM小型机,使用hmc来统一管理,对于这些小型机的硬件状态,就统一使用hmc来读取。在zabbix外部端直接建立ssh agent的监控项指向 hmc,就相当于通过ssh连接hmc,在hmc上执行监控项目中定义的shell命令。之后将shall命令执行的结果返回给zabbix server就可以了。主要是在hm上可以执行的命令,基本都可以通过这种方式来实现,因为小型机的硬件状态在hmc系上基本都可以获取,所以用这种方式很管用。

对于操作系统的性能监控,我们也是使用操作系统自带的snmp服务来实现的,对于CPU使用率、内存使用率、文件系统使用率、网卡流量等等这些常规数据都能获取。但对于用户比较关心的磁盘IO、snmp无法获取。在Zabbix5.0版本,我们可以使用监控项的预处理,取每秒的变化量,间接作为磁盘IO的值。

对于外部服务监控,使用zabbix系统自带的web监控,或者是simple check就可以实现。要说到的还有一个需求,按正常套路好像不太好实现。现在的zabbix监控系统要求zabbix server或者是zabbix proxy要与被监控对象是可联通的,但这种以zabbix server和zabbix proxy为中心的新型架构中,若要监控两个被监控对象间的通讯状态就不太好实现。

如图所示, zabbix server实现了对系统一和系统二两台服务系统的监控,但现在想监控系统一和系统二之间的通信情况怎么弄?针对这个需求,我们还是利用了ssh agent或者是Telnet agent或者是 External Check将相应的shell命令发送到系统一或者系统二上来,监控其与对方的通信状态。

通过上述这些方式,对于各类系统的关键监控需求,在不使用agent的方式下,也在尽可能利用agent现有模板及现有监控项,且不增加在这个server服务器负载的情况下得以实现。如果从高可用负载均衡的角度考虑,也可以按数据库和其他远程服务等监控对象分类,部署多台agent的跳转机。当然未来对于一些复杂的监控需求,在必要的时候,我们也还是会考虑使用zabbix agent的。

5 期盼功能

我对zabbix是一见钟情,对zabbix是寄予厚望,所以有一些功能看看咱们zabbix可不可以考虑解决一下。

第一个,俗语说得好,打铁还需自身硬。监控平台只有自身健壮才能完成对其他系统的监控任务,但现在我觉得监控平台,数据库本身的管理是监控平台的一个薄弱环节,使用zabbix的人并不都是数据库管理员,在咱们的社区群交流中可以看出,有的使用者的数据库管理能力是很有限的。更何况现在监控平台使用的数据库还在演进,从之前mysql到现在的pgsql,想要很快的提高各种数据库的管理技能,也是需要时间的。

我认为监控平台自身的数据库在其使用上有其典型性和通用性。例如持续性强,数据量大,完全可以形成治理的通用方案。如果能够制定一套监控平台自身数据库的优化方案及监控模板,既可以使监控平台更健壮,也可以降低监控平台使用的难度和技术门槛,我觉得这个是需要优先解决的需求。

第二个,能不能提供APM端到端性能监控,真的是只想用一套监控软件来完成各类监控需求,不想用多少套。如果咱们Zabbix是能实现APM,我就是咱们zabbix的绝对忠粉。

第三个,能不能实现方便的日志提取分析。日志很多时候是事前预警的重要的一环,zabbix监控好像没有太好的实现方式。

第四个,我们现在对用户开放的是grafana端的大屏展示,所以希望用户想看的内容都可以通过grafana来实现。尤其是一些统计数据,不想让用户看图的时候用的是grafana,看统计数据的时候用的是zabbix web,这样的来回切换不太好。现在对于用户想看的数据,通过在zabbix基本都能采集上来,但有些类型数据在grafana上显示格式不太好,例如txt类型的数据在grafana上显示空格等对其格式化的处理支持的不好,就像ppt显示的那样,很不好看。不知道这个有没有什么好的处理办法。

以上就是我要分享的内容,谢谢大家。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Zabbix开源社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
数据库管理
数据库管理(Database Management Center,DMC)是一个高效,安全,可靠的数据库一站式管理平台。DMC 提供可视化的库管理、实例会话管理、SQL 窗口、SQL 安全审计、SQL 变更审批、实时监控、操作审计等数据库管理能力,集成诊断优化和数据可视化分析能力,从而简化和规范数据库管理操作、降低数据库运维门槛、提升运维效率。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档