分层运维自动化监控

文摘   2024-08-14 07:20   云南  

 




点击上方蓝字关注我们




 

1


背景

 

     架构设计的分层架构思想是一种将软件系统划分为多个层次的设计方法,每个层次都有其特定的职责和功能,通过层次之间的接口进行通信,以实现系统的整体目标。这种设计思想的核心在于将复杂的系统分解为一系列相对独立的子问题,并通过各层的协作来提供整体的解决方案。

分层架构思想的优势

降低系统复杂度:
通过分层将一个复杂的系统拆分成不同层次的关联个体,各个个体专注于它们特有的职责和功能,从而降低了单个问题的规模和复杂度。
提高开发效率:
开发人员可以专注于某一层次的开发工作,而不必担心其他层次的具体实现,提高了开发效率。
易于维护和扩展:
分层架构使得系统的各个部分相对独立,修改或扩展某一层次的功能时,对其他层次的影响较小,从而降低了维护成本。
同时,由于各层次之间的低耦合性,可以方便地插入新的层次来扩展系统的功能。
提高系统可靠性:
分层架构使得系统的各个层次可以独立地进行测试和验证,从而提高了系统的可靠性和稳定性。


2


实践

 

    分层运维自动化监控实践通过将监控系统划分为多个层次,实现了不同层次的功能和管理需求。如下是不同层监控对应关系图,右边是我们监控常规的软件项目,中间件较多并没有完全罗列,

仅供参考:

通常包含这几个层监控

1)硬件基础设施层:
环境动力:暖通系统(如空调、新风系统、机房环境、漏水等)、电力系统(如配电柜、UPS、ATS等)、安防系统(如防雷、消防、门禁等)等
网络设备:路由器、二三层网络交换机、多层交换机、负载均衡设备等
安全设备:防火墙、入侵检测IDS、防病毒、加密机等

其主要任务是收集和汇总监控数据,并将其传递给视图层用于展示和告警。
2)服务器层:

关注CPU、磁盘、内存、网络、可用性和性能等服务器层面的监控
虚拟化:虚拟网络资源、虚拟主机、虚拟存储资源等
存储设备:磁盘阵列、虚拟带库、物理磁带库、SAN、NAS等
服务器:大中小型机、X86服务器
实施基础设施级别的告警和事件管理。
基于基础设施层数据进行容量规划和优化
3)系统软件-基础设施层
操作系统:Linux, Ubuntu, CentOS, Windows, Fedora CoreOS, OpenSUSE, Red Hat等
数据库:ORACLE,DB2,SQL SERVER,MYSQL,DM, PostgreSQL, Redis, Kafka, HBase等
中间件:WEBSPHERE、WEBLOGIC、MQ、IHS、TOMCAT、AD等
其它系统软件:备份软件
收集应用服务器性能、数据库响应时间和平台级资源利用率等指标。
实施对平台特定事件、日志和安全漏洞的监控。
确保支持应用的平台服务的可用性和可靠性。
监控集成组件(如 API、消息总线和企业服务总线)的健康和性能。
收集消息吞吐量、延迟和错误率等指标。
实施对集成特定事件、日志和安全方面的监控。

Prometheus Exporter 是一种用于将特定应用程序或服务的指标数据暴露给 Prometheus 监控系统的工具或组件。在 Prometheus 的架构中,Exporter 扮演着至关重要的角色,因为它们负责从被监控的目标(如数据库、消息队列、Web 服务器等)收集指标,并将这些指标以 Prometheus 能够理解的格式(通常是文本格式,遵循 Prometheus 的 exposition format)暴露出来。
4)应用服务层:
服务可用性:服务状态、日志刷新、端口监听、网络连通性等。更侧重于应用层面的监控,比如Prometheus平台可以用于监控微服务架构中的各个服务实例,确保它们正常运行此外,业务层还关注数据的可视化和多维数据展示能力,如仪表盘和大屏显示。

监控业务应用和服务的行为和性能。
收集面向用户的指标,如应用响应时间、交易量和错误率。
实施综合和真实用户监控,评估最终用户体验。
分析应用级日志和事件,识别和排查问题。
5)客户体验层:
客户访问速度:页面响应时间、拨测登录、普通页面渲染时间、重要接口响应时间等。

监控面向用户的组件(如 Web 界面和移动应用)的可用性和性能。
收集页面加载时间、用户交互和设备特定性能等指标。
实施对用户体验和可访问性指标的监控。
分析用户行为和反馈,以优化表现层。

阿里云,腾讯云,华为云都有拨测服务,涉及费用

 

3


数据流

 

从内到外

从外到内,从云端开始,取决于网络安全策略配置


 

4


工具链

 

1. Zabbix
Zabbix是由Alexei Vladishev创建,并由Zabbix SIA持续开发和支持的一种企业级的分布式开源监控解决方案。它能够监控众多网络参数和服务器的健康度和完整性,提供灵活的通知机制,允许用户为各种事件配置基于邮件的警报。Zabbix还基于存储的数据提供出色的报告和数据可视化功能,使其成为容量规划的理想选择。

特点与优势:

数据采集:支持SNMP、IPMI、JMX、VMware等多种协议,通过Server/Proxy和Agents执行数据采集。
高度可配置化的告警:支持自定义告警通知,包括递增计划、接收者、媒介类型等。
丰富的可视化选项:创建自定义图形、网络拓扑图、仪表盘等。
历史数据存储:内置数据管理机制,支持可配置的历史数据存储。
配置简单:通过模板快速部署监控任务,支持网络发现功能。

2. Nagios
Nagios是一款流行的开源监控系统,能够监控网络、服务器和应用程序等各种资源。它具有高可用性和可扩展性,可以轻松地扩展到数千个设备,并提供丰富的第三方插件库。Nagios能够实时监测网络和服务器的状态,并通过邮件、短信或手机APP等方式通知管理员关键事件的发生。

特点与优势:

实时监控:支持对网络和服务器状态的实时监测。
强大的通知功能:支持多种通知方式,确保管理员能及时响应。
历史数据分析:记录历史数据以进行趋势分析,帮助识别必要的升级和配置更改。
丰富的插件库:庞大的社区支持和丰富的第三方插件库,扩展性强。

3. Apache HertzBeat
项目描述:
Apache HertzBeat(孵化中)是一款无代理的实时监控系统,支持Prometheus兼容的自定义监控和状态页面构建能力。它具备高性能集群、自定义监控和灵活的状态页面构建功能。

特点与优势:

无代理设计:减少被监控端的负载和复杂性。
Prometheus兼容:便于与Prometheus生态系统集成。
自定义监控:支持自定义监控项和状态页面,满足特定需求。
高性能集群:支持分布式部署,提高系统可靠性和可扩展性。


4. Prometheus
Prometheus是一个高度可扩展的实时监控系统,由Google的Brendan Burns等人设计,并成为云原生计算基金会(CNCF)的一部分。它主要用于收集、存储和处理时间序列数据,帮助开发者和运维人员监控应用程序和服务的性能。

特点与优势:
高效的数据处理:基于时间序列数据模型,能够高效处理大量监控数据。
强大的查询语言:PromQL支持动态、即时的数据聚合和运算。
灵活的告警处理:通过Alertmanager处理生成的警报,避免重复和通知疲劳。
开放生态:具有大量Exporter,轻松集成各种服务和平台的监控指标。


5. Grafana
Grafana是一个开源的平台,专门用于运行时监控、指标分析和可视化。它提供了丰富的图表库和灵活的仪表板设计功能,使得数据展示和分析更加直观和高效。

特点与优势:

丰富的图表库:包括时序数据图、柱状图、饼图等多种类型。
自定义仪表板:通过拖放方式自定义仪表板,实现实时监控和分析。
多数据源支持:支持Prometheus、InfluxDB、Elasticsearch等多种数据源。
高性能和灵活性:前端使用AngularJS和React构建,后端采用Go语言开发。


 

5


IT 运维团队

 

  • 实施覆盖所有层面的综合监控策略。

  • 明确各层面监控的所有权和责任。

  • 整合跨层面的监控数据,实现端到端可见性。

  • 使用高级分析和关联功能,识别和诊断问题。

  • 通过剧本和运行手册自动化常见问题的修复。

  • 持续优化监控工具和流程,提高效率。

通过采用基于层级的 IT 运维监控方法,组织可以增强维护 IT 系统健康和性能的能力,更有效地响应事件,并推动 IT 运维的持续改进。

智能运维全栈监控

    运维监控平台通过集成这些不同层次的监控数据,实现跨层次的故障关联分析,迅速定位问题源头,提高故障处理效率。同时,自动化操作平台支持线上变更、任务执行的安全可控,实现运维流程的标准化和自动化,提升运维效率和质量。智能运维全栈监控解决方案还利用大数据和人工智能技术,实现智能告警、性能优化和资源调度,进一步提升运维的智能化水平。例如,通过实时收集并分析网络设备数据,运维人员可以迅速发现问题、定位问题,甚至预测潜在故障,实现主动式运维管理。参考如下:

 

6


结论

 

     分层运维自动化监控是构建稳定、高效IT环境的关键。通过将监控策略与自动化操作相结合,IT组织能够实现对基础设施、应用服务和业务运营的全面、深入监控,从而提升运维效率,确保业务连续性和用户体验。信息源自对分层运维自动化监控策略的综合分析,涵盖了从硬件设备到软件系统,再到业务应用的全方位监控体系。通过自动化工具和智能分析技术,运维团队能够实现对IT环境的实时监测和智能化管理,以应对分布式系统中复杂的运维挑战。 




点个在看你最好看

Megadotnet
为您介绍各体系平台的新闻,系统研发相关框架,组件,方法,过程,运维,设计。企业IT与互联网信息系统或产品解决方案。开源项目,项目管理。
 最新文章