nagios检测cockroach、nomad、consul集群节点状态的脚本

在nagios中需要检测cockroach、nomad、consul服务集群节点状态的脚本,查看服务集群状态的命令是:
1.consul查看群集节点状态的命令 .[[email protected] ~]# consul members
Node Address Status Type Build Protocol DC Segment
cgw122.zencoo.com 192.168.196.122:8301 alive server 1.4.3 2 cd <all>
cws113.zencoo.com 192.168.196.113:8301 alive server 1.4.3 2 cd <all>
mandrill.zencoo.com 192.168.196.205:8301 alive client 1.4.3 2 cd <default>
主要关注build那列,看是不是都是alive,如果都是,状态就正常,cockroach、nomad也类似这样,对这些服务完全不了解。

2.脚本如下:

#!/bin/bash
#Detection cockroach status
function cockroach { #检测cockroach群集节点状态的函数
NUM=cat /tmp/.cockroach.status|awk ‘{print $9}‘|grep ‘true‘|wc -l
[ "$1" -eq "$NUM" ] && (echo "$NUM nodes is alive";exit 0) || (echo "Only $NUM nodes is alive,expect $1";exit 2)
}

#Detection nomad status
function nomad { #检测nomad群集节点状态的函数
NUM=cat /tmp/.nomad.status |grep ready|wc -l
[ "$1" -eq "$NUM" ] && (echo "$NUM nodes is alive";exit 0) || (echo "Only $NUM nodes is alive,expect $1";exit 2)
}

#Detection consul status
function consul { #检测consul群集节点状态的函数
NUM=cat /tmp/.consul.status |grep alive|wc -l
[ "$1" -eq "$NUM" ] && (echo "$NUM nodes is alive";exit 0) || (echo "Only $NUM nodes is alive,expect $1";exit 2)
}

case $1 in
cockroach)
cockroach $2;;
nomad)
nomad $2 ;;
consul)
consul $2 ;;
esac

2.1.判断每个服务有几个节点存活,将存活的节点数量赋值给NUM变量
2.2.case中的$2是传入的节点数量个数,到函数中就变成$1了
2.3.判断实际传入的节点个数($1)和检测到的存活节点个数($NUM)是否相等
2.4.在nagios中显示如下,状态正常,2 node is alive,传入的$2是2

原文地址:https://blog.51cto.com/pkimin3/2397405

时间: 2024-07-31 10:57:03

nagios检测cockroach、nomad、consul集群节点状态的脚本的相关文章

k8s 集群 节点状态显示notready

一般情况下 我们是在maste节点上安装网络插件的,然后在join node 节点,这样导致node节点可能无法加载到这些插件 使用 journalctl -f -u kubelet 显示如下内容 Nov 06 15:37:21 jupiter kubelet[86177]: W1106 15:37:21.482574 86177 cni.go:237] Unable to update cni config: no valid networks found in /etc/cni Nov 06

实战中的asp.net core结合Consul集群&amp;Docker实现服务治理

0.目录 整体架构目录:ASP.NET Core分布式项目实战-目录 一.前言 在写这篇文章之前,我看了很多关于consul的服务治理,但发现基本上都是直接在powershell或者以命令工具的方式在服务器上面直接输入consul agent .... 来搭建启动consul集群,一旦把命令工具关掉,则consul无法再后台启动,尤其是在linux系统中. 如果在window系统中,采用bat文件到时可以做成开机自启,或者在linux中把命令做成一个service 服务文件来启动就可以实现后台运

Redis集群节点主从关系调整

一.概述 Redis集群创建后,可能会出现互为主从关系的节点从属于同一台服务器的情况.在此种情况下,若 服务器故障宕机或需要停机维护,互为主从关系的节点同时停止运行,导致redis集群暂时失去一部 分slot插槽.此时,redis集群为fail状态,对其进行的数据读写操作均无法正常进行.为避免此种情 况的发生,应对redis集群节点的主从关系进行调整,使互为主从关系的节点分属于不同的服务器. 二.调整方法描述 1.使用redis-trib.rb脚本将待调整的从节点从redis集群中删除.(执行此

Redis集群节点的选举(实验)

Redis集群节点的选举: 当master挂掉之后,就会在该集群中的slave中选取一个来代替mater角色, 从而保证redis集群slot的完整性. 如果其中一个mster和它的slave都挂掉后,会导致slot不完整,整个集群都会挂掉. 集群节点信息: 192.168.2.200:6379> cluster nodes 3ff3a74f9dc41f8bc635ab845ad76bf77ffb0f69 192.168.2.201:6379 master - 0 1527145806504 5

服务发现之美:Consul集群搭建

近几年随着Docker容器技术.微服务等架构的兴起,人们开始意识到服务发现的必要性.微服务架构简单来说,是一种以一些微服务来替代开发单个大而全应用的方法, 每一个小服务运行在自己的进程里,并以轻量级的机制来通信, 通常是 HTTP RESTful API.微服务强调小快灵, 任何一个相对独立的功能服务不再是一个模块, 而是一个独立的服务.那么,当我们需要访问这个服务时,如何确定它的地址呢?这时就需要服务发现了. Consul 是 HashiCorp 公司推出的开源工具,用于实现分布式系统的服务发

Consul入门04 - Consul集群

Part 1:转载自:https://segmentfault.com/a/1190000005040904 我们已经启动了我们的第一个代理并且在这个代理上注册和查询了服务.这些显示了使用Consul是多么的容易但是并没有展示Consul的可扩展性以及可用于产品级别的服务发现的基础设施.在本篇向导中,我们将建立我们第一个多成员的真实的集群. 当一个Consul代理启动后,它对任何其他的节点都一无所知:它是个单独的隔离集群.为了让它感知其他的集群成员,代理必须加入一个现有的集群中去.为了加入一个现

Consul集群部署

大纲: 关于consulconsul的架构部署服务器分配安装部署启动agent启动consul server启动consul client把client 节点加入consul 集群查看集群成员查看集群信息注册服务更新服务更新服务查询服务启用webui(尚未成功) 关于consulconsul是一个开源工具,它提供了服务发现,服务检测,健康检查的功能.支持跨机房的数据中心之间的基础设施服务的发现和检测.它安装简单,开箱即用. consul的架构consul的架构如下如图:(来自官方文档) Cons

8分钟学会Consul集群搭建及微服务概念

原文:8分钟学会Consul集群搭建及微服务概念 Consul介绍: Consul 是由 HashiCorp 公司推出的开源软件,用于实现分布式系统的服务发现与配置.与其他分布式服务注册与发现的方案,Consul 的方案更“一站式”,内置了服务注册与发现框 架.分布一致性协议实现.健康检查.Key/Value 存储.多数据中心方案,不再需要依赖其他工具(比如 ZooKeeper 等),使用起来也较为简单. Consul的如何实现的? Consul 用 Golang 实现,因此具有天然可移植性(支

consul 集群

本文主要讲述如何搭建基于docker容器化的consul 搭建.相关consul是什么,用途,请参考consul 官网 https://www.consul.io/. Consul docker pull docker sudo docker run -d -p 8500:8500 -v /data/consul -e CONSUL_BIND_INTERFACE='eth0' --name=consul_server_1 consul agent -server -bootstrap -ui -