MongoDB负载均衡集群监控

对负载均衡的集群监控,不仅仅集中在对集群所有的资源、服务等进行监控,还要兼顾整体逻辑。以MongoDB高可用负载均衡集群为例,对逻辑层面的监控,就是模拟用户行为,访问集群数据,判断运行状态是否正常。

MongoDB集群内置一个名为“db.serverStatus()”的工具,用它可以来监控整个集群是否处于正常状态。用客户端“mongosh”登录MongoDB集群路由“mongos”,切换到管理员用户“admin”,交互界面执行“db.serverStatus()”,部分输出如图9-2所示。

图9- 2

 

这是一个正常运行且所有集群节点未发生故障的MongoDB集群,健康状态“health state”为’OK’。有意将所有配置集群节点(Config Server)的“mongod”服务关闭,再执行指令“db.serverStatus()”,指令超时并报错,如图9-3所示。

图9- 3

 

启动配置服务(Config Server)集群的“mongod”服务,同时将所有分片服务集群(Shard)的“mongod”服务全部关闭,在“mongosh”交互界面输入指令“show dbs”,将得不到任何输出。根据这个逻辑,将集群健康状态(Health state)与数据库获取两者集合,如果同时满足健康状态正常“OK”且能检索到集群的数据库,则认为MongoDB集群处于正常状态。

需求明确之后,我们可以将其转换成Shell脚本。关键性的两条指令有两条,MongoDB集群处于正常运行状态时,系统命令行下,分别执行下面两条指令:

[root@MongoDB-200-144 ~]#  echo "show dbs"|mongosh  --host  10.122.200.144  --username=admin --password="Yg9NxXYN5iae" --authenticationDatabase=admin|grep admin

Connecting to:          mongodb://<credentials>@10.122.200.144:27017/?directConnection=true&authSource=admin&appName=mongosh+1.10.0

[direct: mongos] test> admin   288.00 KiB

[root@MongoDB-200-144 ~]#  echo "db.serverStatus()"|mongosh --host  10.122.200.144    --username=admin --password="Yg9NxXYN5iae" --authenticationDatabase=admin|grep state

    state: 'Ok',

逻辑上分析清楚以后,再撰写监控脚本就不在是什么难事。用文本编辑器在系统行下创建Shell脚本“/usr/local/bin/mon_mongodb.sh”,其完整内容如下:

#!/bin/bash

db_admin=$(echo "show dbs"|mongosh  --host  10.122.200.144  --username=admin --password=" Yg9NxXYN5iae" --authenticationDatabase=admin|grep admin9|wc -l)

db_status=$(echo "db.serverStatus()"|mongosh   --username=admin --password=" Yg9NxXYN5iae" --authenticationDatabase=admin|grep state|grep Ok |wc -l)

if [ $db_admin -ge 1 ] && [ $db_status -eq 1 ]

   then

    echo "MongoDB Cluster is OK!"

    exit 0

  else

    echo "MongoDB Cluster is BAD!"

    exit 2

fi

   exit 0

此脚本适用于Nagios或者Centroen监控平台,状态码“exit 0”代表正常(OK),“exit 2”代表异常(Critical)。在MongoDB集群处于正常状态时,执行脚本“/usr/local/bin/mon_mongodb.sh”,其输出应该为“MongoDB Cluster is OK!”。作为对比,将MongoDB的所有分片集群(Shard)的“mongod”服务关闭,手动执行脚本“/usr/local/bin/mon_mongodb.sh”,其输出为“MongoDB Cluster is BAD!”,正是我们所期待的结果,如图9-4所示。

图9- 4

 

将MongoDB分片集群所有节点的“mongod”服务启动,而将所有配置服务(Config Server)的“mongod”关闭,执行监控脚本,将得到同样的结果(MongoDB Cluster is BAD!)。同样,当MongoDB的路由集群故障时,运行监控脚本也会得到故障告警。

9.4 负载均衡集群升级

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/928.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

opencv 图像基础处理_灰度图像

opencv 学习2_灰度图像 二值图像表示起来简单方便&#xff0c;但是因为其仅有黑白两种颜色&#xff0c;所表示的图像不够细腻。如果想要表现更多的细节&#xff0c;就需要使用更多的颜色。例如&#xff0c;图 2-3 中的 lena 图像是一幅灰度图像&#xff0c; 它采用了更多的数值…

简单线性回归评估指标+R Squared

使得每一个数据集尽可能的小 均方误差MSE&#xff1a;&#xff08;平方和取平均值&#xff09; 均方根误差RMSE&#xff1a;&#xff08;平方和取平均值开根号&#xff09;&#xff1a;平均误差值 平均绝对误差MAE&#xff1a;&#xff08;绝对值取平均&#xff09;&#xff1a…

Vue3通透教程【十八】TS为组件的props标注类型

文章目录 &#x1f31f; 写在前面&#x1f31f; 回顾defineProps的基础写法&#x1f31f; defineProps的TS写法&#x1f31f; withDefaults方法&#x1f31f; 拓展&#x1f31f; 写在最后 &#x1f31f; 写在前面 专栏介绍&#xff1a; 凉哥作为 Vue 的忠实 粉丝输出过大量的 …

内网安全:内网穿透详解

目录 内网穿透技术 内网穿透原理 实验环境 内网穿透项目 内网穿透&#xff1a;Ngrok 配置服务端 客户端配置 客户端生成后门&#xff0c;等待目标上线 内网穿透&#xff1a;Frp 客户端服务端建立连接 MSF生成后门&#xff0c;等待上线 内网穿透&#xff1a;Nps 服…

【Linux】- Linux 磁盘分区、挂载

Linux 磁盘分区、挂载 1.1 Linux 分区1.2 硬盘说明1.3 磁盘情况查询 1.1 Linux 分区 原理介绍 Linux 来说无论有几个分区&#xff0c;分给哪一目录使用&#xff0c;它归根结底就只有一个根目录&#xff0c;一个独立且唯一的文件结构 , Linux 中每个分区都是用来组成整个文件系…

Mac搭建安卓模拟器(支持M1/M2)

引言 最近在研究Vue打包成app&#xff0c;给我的报价器搞一个移动端&#xff0c;奈何没有安卓手机用于测试。所以想到安装一个安卓模拟器。 看了下目前主流的安卓模拟器基本都不支持Mac版本。网易的mumu目前来看还是只支持Intel芯。 1. 简单版&#xff08;仅M系&#xff09;…

BigTable:一个针对结构化数据的分布式存储系统----论文摘要

目录 摘要 1. 介绍 2. 数据模型 行 列族 时间戳 3. API 4. 所需构件 5. 实现 5.1 Tablet的位置 5.2 Tablet分配 5.3 Tablet服务 5.4 压实&#xff08;Compactions&#xff09; 6. 优化 本地化分组 压缩(compression) 通过缓存提高读操作的性能 Bloom过滤器 C…

数据库查询速度上不去的查询和分析

主要原因 数据库查询速度上不去、阻塞是指在并发访问 MySQL 数据库时,某个事务占用了资源并且长时间不释放,导致其他事务无法执行或执行缓慢的情况。MySQL 阻塞可能会导致数据库性能下降,甚至出现死锁等问题,需要马上进行处理。在 MySQL中,线程阻塞可能是由于以下原因导致…

基于人工智能与边缘计算Aidlux的鸟类检测驱赶系统(可修改为coco 80类目标检测)

●项目名称 基于人工智能与边缘计算Aidlux的鸟类检测驱赶系统&#xff08;可修改为coco 80类目标检测&#xff09; ●项目简介 本项目在Aidlux上部署鸟类检测驱赶系统&#xff0c;通过视觉技术检测到有鸟类时&#xff0c;会进行提示。并可在源码上修改coco 80类目标检测索引直…

ELK-日志服务【logstash-安装与使用】

目录 【1】安装logstash logstash input 插件的作用与使用方式 【2】input --> stdin插件&#xff1a;从标准输入读取数据&#xff0c;从标准输出中输出内容 【3】input -- > file插件&#xff1a;从文件中读取数据 【4】input -- > beat插件&#xff1a;从filebe…

开发跨平台APP,是用Flutter还是React Native开发框架?

随着移动互联网的飞速发展&#xff0c;对于开发人员而言&#xff0c;如何快速地开发出兼容不同平台&#xff08;iOS、Android&#xff09;的应用&#xff0c;成为了一个重要的问题。 跨平台应用程序开发框架的好处&#xff1a; 1. 一个App适用于多个设备&#xff1b; 2. 一个…

【CSDN新星计划】初阶牛C/C++赛道——顺序程序设计(C语句②)

目录 3.2 最基本的语句——赋值语句 3.2 最基本的语句——赋值语句 在C程序中最常用的语句是:赋值语句和输入输出语句。其中最基本的是赋值语句程序中的计算功能大部分是由赋值语句实现的,几乎每一个有实用价值的程序都包括赋值语句。有的程序中的大部分语句都是赋值语句。先介…

arcgis实现影像监督分类

1、打开ArcMap,右击空白处打开影像分类工具栏&#xff0c;如下&#xff1a; 2、打开影像&#xff0c;如下&#xff1a; 打开的影像由于未经处理&#xff0c;颜色看起来很昏暗&#xff0c;这时候可以拉伸一下。具体操作&#xff0c;右击图层选择属性&#xff0c;如下&#xff1a…

基于springboot,vue网上订餐系统

开发工具&#xff1a;IDEA 服务器&#xff1a;Tomcat9.0&#xff0c; jdk1.8 项目构建&#xff1a;maven 数据库&#xff1a;mysql5.7 前端技术 &#xff1a;VueElementUI 服务端技术&#xff1a;springbootmybatisredis 本系统分用户前台和管理后台两部分&#xff0c;项…

亚马逊评论点赞的作用

在亚马逊上&#xff0c;评论点赞可以起到几个重要的作用&#xff1a; 1、增加可信度&#xff1a;当一个产品或服务有很多积极的评论点赞时&#xff0c;其他用户会更容易相信这些评论的可靠性。点赞数量多的评论通常被认为是由多个用户验证的&#xff0c;并且对于潜在买家来说&…

SpringBoot中注入ServletFilterListener

1.基本介绍 文档&#xff1a;SpringBoot中注入Servlet&Filter&Listener 考虑到实际开发业务非常复杂和兼容问题&#xff0c;SpringBoot支持将Servlet、Filter、Listener注入spring容器中&#xff0c;成为Spring Bean也就是说&#xff0c;SpringBoot开放了和原生WEB组件…

基于单片机智能洗衣机设计与实现

功能介绍 以51单片机作为主控系统&#xff1b;利用STC89C52单片机进行数据处理&#xff1b; 通过2路继电器分别控制洗衣机进水、出水相关逻辑运算&#xff1b;采用L298去掉直流电机实现滚筒正反转&#xff1b;通过单片机进行处理数据&#xff0c;把采集到的数据通过LCD液晶显示…

基于Nonconvex规划的配电网重构研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

网络安全与密码学

1、网络安全威胁 破坏网络安全的一些理论方式&#xff1a; 窃听&#xff1a;窃听信息&#xff0c;在网路通信双方直接进行窃听。 插入&#xff1a;主动在网络连接中插入信息&#xff08;可以在message中插入恶意信息&#xff09; 假冒&#xff1a;伪造&#xff08;spoof&#x…

SQLServer2022安装(Windows),已验证

二、安装可视化工具SSMS 接下来安装可视化工具SSMS&#xff0c;现在新版本默认都是没有可视化界面&#xff0c;需要单独安装 &#xff08;1&#xff09;地址&#xff1a;下载 SQL Server Management Studio (SSMS) - SQL Server Management Studio (SSMS) | Microsoft Learn…