l 代理接受调整指示后会按照指示目标去实现。通过复杂的规则引擎,调整目标改变后,代理会及时调整自己的目标计划。如果遇到宕机情况比如重大事故或者网络问题,代理就会修改目标计划,达到一个安全状态。
l 几分钟之后,调整目标系统就会安全可靠的实现。
除了部署新的数据库系统外,Ops Manager和Cloud Manager可以导入已经存在的MongoDB系统并接管他们的控制权。
除了初始化部署外,Ops Manager和Cloud Manager还可以动态的调整系统容量—增加分片和复制集的数量。其他维护任务,比如MongoDB升级或者调整oplog的大小这些复杂的手动操作,在Ops Manager和Cloud Manager中都可以通过点击鼠标来轻松实现,并且全部是在不影响业务系统的情况下。
DBA的日常工作需要在生产环境中迁移新的索引。为了最小化影响生产环境,***是进行滚动索引创建,也就是现在次节点进行操作,再把主节点降为次节点并对其进行索引创建。这些操作可以手动完成,但是在Ops Manager 和Cloud Manager中,这些操作是完全自动化的,减少操作失误以及发生故障的几率。
管理员可以直接使用Ops Manager的图形化界面,也可以从已有的企业工具,比如流行的监控软件以及架构框架中调用Ops Manager的API接口。
监控、容量规划对于MongoDB应用,系统性能和容量规划都两个很重要的话题。规划应该为以下几方面建立一个基线:数据体积、系统负载、系统性能、系统容量使用率。这些基线应该能反应出你期望的系统在生产环境中所表现的负载。而且要周期性的拿出来作为你修改用户数量、应用特性、性能以及其他配置的参考数据。
基线可以帮助你了解系统何时按照设计的方式运行,何时会出现影响用户体验的问题。监控系统的不同寻常的变现可以避免系统出现问题。下面会介绍监控MongoDB常用的监控工具以及需要监控的不同方面。
使用Ops Manager 和Cloud Manager对系统进行监控Ops Manager可以监控100多个关键数据库以及系统的监控指标,包括操作计数器、内存、CPU、复制集状态、打开连接数、队列以及节点状态,并且可以使用图标、自定义仪表盘展示,还可以自动发出告警。
各种指标可以在浏览器中进行处理、聚合、报警提示以及视图化展示,使管理员轻松的掌控MongoDB的实时监控状况。查看的视图可以添加明确的权限控制,不同的项目团队只能看自己的应用,系统管理员可以查看所有的组织的内容。
MongoDB3.4中系统每隔10秒就可以收集数据,之前的系统则是每隔60秒。
历史性能数据可以用来创建操作基线以供容量规划使用。通过Ops Manager的API接口与已有的健康工具进行集成也很方便。
监控指标很多时,管理员可以自定义告警。告警的通知方式也多种多样,有SMS、邮件、webhooks、Flowdock, HipChat, 和Slack,或者集成到PagerDuty这样的管理系统中,这样可以在小问题升级成故障前主动预警潜在的问题。
使用Cloud Manager时,MongoDB的技术支持工程师也可以获取到监控数据,省去不同团队之间发送日志文件的过程,快速解决问题
硬件监控Munin node是一款开源软件,可以监控磁盘以及RAM利用率等指标。Ops Manager可以从Munin node中收集监控数据,并且可以把Ops Manager中可用的数据提供给Munin node。由于每个应用以及部署都是独一无二的,建议用户为所有监控指标设置合理的监控阈值。
Mongotopmongotop是MongoDB自带的一个功能组件。可以跟踪并展示MongoDB集群当前读写性能。mongotop可以在集合层面提供统计数据。
Mongostatmongostat是MongoDB自带的一个功能组件。能展示MongoDB系统中所有服务器的实时分析数据。mongostat可以综合展示系统所有操作,比如更新、插入操作的数量、缺页、索引缺失以及系统其它的健康因素。mongostat类似于Linux操作系统中的vmstat工具。
MongoDB Compass对输出的文字信息进行解析能快速的解决查询性能问题。MongoDB Compass可以把mongotop和mongostat生成的实时数据图形化展示,允许DBA生成服务器状态和查询性能的即时快照。
其他常用工具对于很多常用的开源监控工具,MongoDB都有可用的插件。如果MongoDB配置的存储引擎是WiredTiger,请确保下列工具使用的是WiredTiger编译过的驱动:
l Nagios
l Ganglia
l Cacti
l Scout
l Zabbix
l Datadog
Linux工具可以用来监控MongoDB系统其他方面性能的常用工具如下:
l iostat:为存储子系统提供使用情况分析数据
l vmstat:监控虚拟内存的使用情况
l netstat:监控网络状态
l sar:周期性获取系统的趋势数据并存储下来方便分析
Windows工具Windows系统中,性能监控器对监控系统状态是个不错的选择。
监控相关