什么是监控
对于传统意义的监控来说,监控系统属于安防系统中应用最多的系统之一,主要是用来监控异常和不好的事情发生,或者提供事件发生过程的记录和事后分析等功能。如视频监控系统就是典型的监控系统,视频监控系统就从早期的 CCTV 发展到 DVR到目前已经发展为基于 IP 网络的视频监控 IPVS。
对于 IT 基础设施的监控来说,则是监控 IT 基础设施的各种状态,以确保 IT 设施能够不间断的提供服务。在整个 IT 自动化运维体系中,监控是非常重要的一环。监控可以实现在事前及时预警发现故障,事后提供详实的数据用于追查定位问题。
监控要实现的目标
1.数据的实时性:要求监控系统对 IT 设施和系统进行不间断的实时监控并返回接近实时的监控数据; 2.直观的实时的反馈各被监控项的值:在进行监控某个硬件、或者某个系统时,必须能够实时得到其状态(正常、故障、报警、宕机等)。 3.保证服务可靠性和安全性:在未增加监控的基础上不能降低系统和服务的可用性和安全性,而是提高其可用性和稳定性。 4.故障自治愈:在监控系统检测到某个故障后应当能够完成基础的补救工作。 5.远程消息通知能力:监控系统在检测到某些异常是应该能够及时通知运维人员.
监控使用的方法
1.首先要了解被监控对象的属性:比如获取 Linux 系统的进程属性、磁盘空间如何获取、如何得到原始的网络流量数据等。
2.确定监控项的基准指标:监控的事物的属性比如: CPU 的占用、过去 5 分钟 10 分钟15 分钟的平均负载、内存空闲页数等。
3.发报警的阈值定义:如 CPU 的负载多高触发报警,空闲内存剩余多少会触发报警等。
4.故障处理流程:收到了故障报警,我们怎么处理呢?有什么更高效的处理流程吗?
监控的核心-故障
监控系统是结合业务类型围绕故障和问题来构建的,业务或者 IT 设施故障和问题是监控的核心。在监控系统触发报警后(发现问题),一般会发送邮件或者短信通知相应的运维人员,此时应当仔细查看报警信息,定位问题点。在确定问题位置和问题的严重级别后,要根据流程来解决该问题,按照问题的优先级别解决问题。解决问题后需要时候复盘,对故障原因及防护措施进行总结,形成相应的文档备份。发现问题-定位问题-解决问题。
常见的监控解决方案
生产使用的监控解决方案既有商业解决方案,也有开源解决方案。目前监控领域有很多不错的开源产品可供选择。选择一款开源的监控系统,是一个比价低成本和高效的方案。
常见的开源监控软件:
- zabbix
- open-falcon
- cacti
- nagios
- prometheus
- smokeping
常见的商业监控软件:
- 监控宝
- 监控易
- 听云
Zabbix 介绍
Zabbix 简介
Zabbix 是一个企业级分布式开源监控解决方案。
Zabbix 由 Alexei Vladishev 创建,目前由其成立的公司—— Zabbix SIA积极的持续开发更新维护, 并为用户提供技术支持服务。
Zabbix 软件能够监控众多网络参数和服务器的健康度、完整性。Zabbix 使用灵活的告警机制,允许用户为几乎任何事件配置基于邮件的告警。这样用户可以快速响应服务器问题。Zabbix 基于存储的数据提供出色的报表和数据可视化功能。这些功能使得 Zabbix 成为容量规划的理想选择。Zabbix 支持主动轮询(polling)和被动捕获(trapping)。Zabbix 所有的报表、统计数据和配置参数都可以通过基于 Web 的前端页面进行访问。基于 Web 的前端页面确保您可以在任何地方访问您监控的网络状态和服务器健康状况。适当的配置后,Zabbix 可以在监控 IT 基础设施方面发挥重要作用。无论是对于有少量服务器的小型组织,还是拥有大量服务器的大企业而言,同样适用。
Zabbix 是免费的。Zabbix 是根据 GPL 通用公共许可证的第二版编写和发布的。这意味着产品源代码是免费发布的,可供公共使用。
Zabbix 使用场景
https://www.zabbix.com/cn/features #zabbix特点概述
Zabbix 的使用场景非常广泛,包括网络监控、服务器监控、云监控、web 监控等等。
数据采集
主机/对象:服务器、路由器、交换机、存储、防火墙、IP、PORT、URL、自定义监控对象… 采集目标:监控项,指标数据(metrics data)
数据采集方式:zabbix-server,zabbix-proxy,zabbix-agent
代码语言:text复制Agentless:SNMP,Telnet,ssh, IPMI, JMX
Agent:zabbix agent
数据存储
SQL: MySQL/MariaDB(Zabbix) NoSQL:Redis(Open-falcon) rrd: Round Robin Database(Cacti)
数据展示
zabbix web: graph -> screen -> slideshow(将多个screen以幻灯片的方式进行轮流展示)
grafana: 以zabbix为数据源展示更绚丽的界面
告警通知
代码语言:text复制host (host groups) <- templates #从模板继承告警配置
host -> items -> triggers -> action (条件-conditions, 操作-operations) #自定义告警配置