监控,作为自动化运维的重要一环,起到反馈的作用。以往,在没有告警机制的情况下,企业无法感知系统故障,只能通过用户反馈获得。系统运维人员往往只充当“救火”队员,大规模的系统故障往往给企业和用户带来巨大损失目前,企业通过监控,可以在系统损坏时得到反馈,及时处理问题及时处理,大大降低了系统故障对企业和用户的影响,甚至可以在不知不觉中修复。选择监控工具的原则是根据公司的业务场景来选择,而不是盲目追求新的工具(如果公司内部有一定的研发能力,对监控工具的需求量比较大,也不错尝试新工具的想法)。然而,大多数企业对监控模块都是新手,面对琳琅满目的监控工具无所适从。是选择便宜的商业软件,还是选择开源工具自主开发,还是选择第三方公司外包。今天就为大家分享市面上最火的十款监控工具的详解,希望能帮助大家更好的选择合适的监控工具。Prometheus官网:https://prometheus.io/docs/introduction/overview/Prometheus是一个开源的监控系统,将所有信息存储为时间序列数据;因此,它实现了一种Profiling监控方式,实时分析系统的运行状态、执行时间、调用次数等,找出系统的热点,为性能优化提供依据。本身的功能在于数据的提取,不具备监控功能,而是依靠其外围元件实现强大的监控功能。优点:易于管理,核心部分只有一个二进制文件,可以直接在本地工作,不依赖分布式存储。业务数据关联,监控服务运行状态,让用户了解服务和应用的真实运行状态。高效,单个Prometheus可以处理数以百万计的监控指标;每秒数十万个数据点。易于扩展,Prometheus可以通过功能分区(sharing)+联邦集群(federation)组成逻辑集群进行扩展;Prometheus提供多种语言的客户端SDK。良好的可视化,自带PrometheusUI,同时也提供了独立的基于RubyOnRails的Dashboard解决方案Promdash。缺点:对于Prometheus用户来说,所有的metric端点??必须是可达的,这意味着更复杂的安全网络配置。在大型部署中,扩展成为一个问题,Prometheus建议收集短期作业指标。Prometheus的主要设计目标之一是操作简单性。通过这种方式,Prometheus限制了监控系统可能出现的故障模式的数量。遵循一个原则,Prometheus目前仅限于单点,因为集群带来了额外的操作复杂性。使用单个节点并没有那么复杂,但它可以通过Prometheus来控制,对要监控的适量指标有严格的限制。Zabbix官网:https://www.zabbix.com/Zabbix是一个基于WEB界面,提供分布式系统监控和网络监控功能的企业级开源解决方案。互联网用户中使用最广泛的监控软件。上手容易、使用简单、功能强大、开源免费是对Zabbix最直观的评价。Zabbix易于管理和配置,可以生成漂亮的数据图。其自动发现功能大大降低了日常管理的工作量。丰富的数据采集方式和API接口,让用户可以灵活采集数据,分布式系统架构支持监控。更多设备。理论上,通过Zabbix提供的插件化架构,可以满足企业的任何需求。优点:支持多平台的企业级分布式开源监控软件,易于安装部署,灵活集成各种数据采集插件,功能强大,可实现复杂多条件告警。具有绘图功能,可以将得到的数据绘制成图形。提供多种API接口支持在调用脚本出现问题时自动远程执行命令(需要为agent设置执行权限)。缺点:批量修改项目不方便;中文资料少,服务支持有限:上手容易,但深层次的需求需要对Zabbix非常熟悉,熟悉Zabbix很难进行大量的二次定制开发;系统级告警、告警邮件、自定义项目告警需要自己设置,过程繁琐;缺少数据汇总功能,数据报表还需要二次开发。Nagios官网:https://www.nagios.org/Nagios是一个开源的计算机系统和网络监控工具,可以有效监控Windows、Linux和Unix主机的状态,交换机和路由器等网络设置,打印机等.当系统或服务状态异常时,发送邮件或短信告警通知运维人员,状态恢复正常后发送邮件或短信通知。Nagios提供基于浏览器的Web界面,方便管理员查看系统运行状态、网络状态、服务状态、日志信息等异常现象。优点:发生故障的服务器、应用、设备自动重启,日志自动滚动配置灵活,可定制shell脚本,通过分布式监控方式冗余支持主机监控,多种告警设置。重新加载配置文件的命令不需要打扰Nagios运行缺点:事件控制台功能弱,插件易用性差性能、流量等指标无历史数据,故障难以追溯,配置复杂,时间长初学者消费Open-falcon官网:http://open-falcon。org/小米的监控系统:OpenFalcon是一个企业级、高可用、可扩展的开源监控解决方案。从运行层面(基本配置即可)和应用层面(二次开发,通过端口上报日志),对服务器、操作系统、中间件、应用进行全方位的监控和告警。优点:自动发现,支持falcon-agent.snmp,支持用户主动推送,支持自定义插件;支持单周期数据采集、报警判断、历史数据存储和查询;支持策略模板,模板继承覆盖,多种告警方式,支持回调调用;单机支持200万个指标的上报、归档、存储;采用rdool数据归档策略;多维度数据展示,用户自定义Screen;目前通过各种插件支持Linux、Windows、Mysql、Redis、MemacheRabbitMQ、交换机监控。缺点:发布时间短;不支持很多基础服务监控插件(如Tomcat、apache等);功能不完善,没有专门的运维支持,缺乏社区运营。Ganglia官网:http://ganglia.info/Ganglia监控系统是加州大学伯克利分校的一个开源项目。设计初衷是监控分布式集群。监控级别包括资源级别和业务级别。资源层面包括cpu、内存、磁盘、IO、网络负载等,是一个易于扩展的监控系统。使用它可以实时查看Linux服务器和集群中的各种性能指标(图形显示)。优点:适用于监控系统性能。通过曲线很容易看出各个节点的工作状态。您可以自定义监控项。监控显示有两种类型,表格和图像。支持移动版,方便部署,分层管理数万台机器,不需要一个一个添加配置,有利于后期大规模扩展。缺点:没有内置消息通知系统,没有报警机制。一旦出现问题,无法及时报警。Cacti官网:https://www.cacti.net/Cacti是一套基于PHP、MySQL、SNMP和RRDTool分析工具开发的网络流量监控图形。它提供了非常强大的数据和用户管理功能。您可以指定每个用户可以查看树结构、主机和任何图片。它还可以与LDAP结合用于用户身份验证。同时,您也可以自己添加模板。功能非常强大和完善。.优点:开源、免费分发、开源代码、高效运行。跨平台,支持redhat、windows、solaris、centos、suse,界面友好,图形丰富,模板多样,自定义模板,可扩展,支持20多种插件,丰富的插件资源,大大提高了cacti的功能。缺点:使用基于文本的数据库,数据不能复用;数据只能按日、周、月、年查看;每个图只能绘制两个DS(一行,一个块);每次取数据都需要绘制一次,浪费系统资源;没有管理功能。Graylog官网:https://www.graylog.org/Graylog是一款开源且完备的日志管理工具。其功能与ELK类似,但比ELK简单。它是一个强大的日志管理和分析工具。它基于Elasticsearch、Java和MongoDB。Graylog可以收集和监控许多不同应用程序的日志。优点:集成方案,安装方便,不像ELK那样存在三个独立系统之间的集成问题。个性化定制开发(带来很大的自由度)收集日志的脚本,搜索结果高亮显示。搜索语法简单缺点:不能处理多行日志,比如Mysql慢查询,Tomcat/Jetty应用的Java异常打印不能保留原始日志,只能按字段保存原始日志,所以搜索日志结果是一个一堆Json格式的文字,看不懂。与正则表达式不匹配的日志行将被完全丢弃。Grafana官网:http://grafana.org/Grafana是一个可视化面板(Dashboard),有非常漂亮的图表和布局展示,全功能的metricsdashboard和图形编辑器,支持Graphite、zabbix、InfluxDB、Prometheus和OpenTSDB作为数据来源。Grafana是我们可以配合Prometheus和zabbix一起使用的展示工具。ZenossCore官网:https://www.zenoss.com/ZenossCore是一款开源的企业级IT管理软件——一款智能监控软件,让IT管理员可以依靠单一的WEB控制台监控设备的状态和健康状况网络架构。ZenossCore的强大功能来自于一个深入的库存和配置管理数据库,用于发现和管理公司IT环境的各种资产(包括服务器、网络和其他结构设备)。Zenoss可以创建关键资产和相应组件级别(接口、服务、流程、已安装软件等)的清单。模型建立后,可以监控和报告IT架构中各种资源的状态和性能容忍度。Zenoss还提供了与CMDB关联的事件和错误管理系统,帮助提高各种事件和提醒的管理效率。优点:功能全面,网管软件应该涵盖的功能主要包括:可用性管理、事件管理、性能监控等。配置使用灵活,由于使用CMDB数据库来存储数据模型对象,数据模型对象可以是增删改查方便操作对开发者友好,基于zenoss下开发,方便在于开发周期短,代码简洁,容易上手缺点:资源要求高,即使只管理少数设备,会消耗大量的硬件、内存等额外资源对于windows系统,开源版本只提供SNMP,通过WMI检测CPU、Disk、软硬件和性能仅在付费版本中可用。Graphite官网:https://graphiteapp.org/Graphite是一个用Python编写的开源企业级监控绘图工具,可以运行在廉价的机器硬件上。Graphite可以实时收集、存储和显示时间序列数据。优点:速度非常快,其架构是模块化和可扩展的与Graphite配合使用的开源工具有很多一次性安装Graphite及其依赖的Docker镜像
