Nginx负载节点状态监测脚本

 1)脚本需求:开通一个通过web界面展示监控Nginx负载节点的状态。当节点宕机时,以红色展示,当节点正常时以绿色展示。


 2)脚本解答:

[[email protected] scripts]# cat monitor.sh

#!/bin/bash

#this scripts is created by ywxi at 2018-05-11

RIPS=(                    #定义监测节点池

192.168.1.22

192.168.1.33

192.168.1.30

)

file_location=/usr/share/nginx/html/test.html                  #默认yum安装nginx的站点目录路径

[ -e "$file_location" ]||mkdir -p `dirname $file_location`    #判断目录是否存在

function web_result {                                                         #定义curl请求状态值

rs=`curl -I -s $1|awk 'NR==1{print $2}'`

return $rs

}

function new_row {                                                           #定义web框架

cat >> $file_location <<eof

<tr>

<td bgcolor="$4">$1</td>

<td bgcolor="$4">$2</td>

<td bgcolor="$4">$3</td>

</tr>

eof

}

function auto_html {                                                        #定义节点状态返回值显示的web界面

web_result $2

rs=$?

if [ $rs -eq 200 ]

then

new_row $1 $2 up green

else

new_row $1 $2 down red

fi

}

function main(){                                                                 #定义web框架

while true

do

cat >> $file_location <<eof

<h4>ywxi Nginx Service Status Of RS :</h4>

<meta http-equiv="refresh" content="1">

<table border="1">

<tr>

<th>NO:</th>

<th>IP:</th>

<th>Status:</th>

</tr>

eof

for ((i=0; i<${#RIPS[*]}; i++));do                                   #对节点做循环判断,并提供对应的html代码

auto_html $i ${RIPS[$i]}

done

cat >> $file_location<<eof

</table>

eof

sleep 2

> $file_location                                                           #清空文件内容

done

}

main $*

3)脚本执行:

[[email protected] scripts]# sh monitor.sh

浏览器访问http://192.168.1.22/test.html(前提是部署好了http服务,test.html放在对应的html目录下,给予权限即可。)

出现如下页面表示脚本运行正常:

  宕掉一台192.168.1.33节点,看下情况

[[email protected] scripts]# ifconfig  | sed -n 2p | awk '{print $2}'

addr:192.168.1.33

[[email protected] scripts]# /etc/init.d/nginx stop

Stopping nginx:    [  OK  ]


   用Tengine(Nginx的分支)模块nginx_upstream_check_module,提供主动式后端服务器节点健康检查。可参考http://blog.51cto.com/13707680/2107391

原文地址:http://blog.51cto.com/13707680/2115637

时间: 2024-08-05 06:35:03

Nginx负载节点状态监测脚本的相关文章

开发程序实现nginx代理节点状态检查及WEB界面展示

实现功能介绍: 利用shell程序及http服务巧妙的实现监控nginx代理节点状态检查,然后通过web界面实时刷新显示结果,是不是有些吃惊这样高大上的程序?那就赶紧看看吧!to用人单位:此课程可以体现学生shell编程功力,以及对nginx proxy企业实战及驾驭的能力. 不同的同学的三个实现方法分享,各位看官,你们看看哪个同学的更好,请评论. 第一个实现脚本:youjinyi 视频下载看地址:http://down.51cto.com/data/1914201 #!/bin/sh port

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

在nagios中需要检测cockroach.nomad.consul服务集群节点状态的脚本,查看服务集群状态的命令是:1.consul查看群集节点状态的命令 .[[email protected] ~]# consul members Node Address Status Type Build Protocol DC Segmentcgw122.zencoo.com 192.168.196.122:8301 alive server 1.4.3 2 cd <all>cws113.zencoo

nginx(六)反向代理(proxy)与负载均衡(upstream)以及健康状态监测。

j**ngx_http_proxy_module模块配置(http或https协议)** proxy_pass uri;应用上下文:location,if in location,limit_except location  / {        proxy_set_header Host $http_host;        proxy_pass      #将所有请求都反向代理至本地的http协议的8080端口         index index.html index.htm; } 注:

keepalived结合nginx状态检测脚本实现对web服务器集群的高可用

实验环境 两台CentOS-7.5虚拟机web1:10.0.11.203web2:10.0.11.204VIP :10.0.11.210web类型:nginx客户端:自用笔记本(win10)nginx状态检测脚本:ck_nginx.sh 实验一.使用keepalived简单实现web集群的高可用功能 1.准备两台web服务器 1)web1网卡情况[[email protected] ~]# [[email protected] ~]# ip a 2)web2网卡情况[[email protect

如何编写LVS对Real Server的健康状态检测脚本

简介:Linux 虚拟服务器(Linux Virtual Server. LVS),是一个由章文松开发的自由软件.利用KVS可以实现高可用的.可伸缩缩的Web, Mail, Cache和Medial等网络股务..井在此基 础上开发支持庞大用户数的,可伸缩的,高可用的电子商务应用.LVS1998年发展到现在,已经变得比较成熟,目前广泛应用在各种网络服务和电了商务应用 中.LVS具有很好的伸缩缩性.可靠性和管埋性,通过LVS要实现的最终目标是:利用linux 操作系统和LVS集群软件实现一个高可用.

Nginx负载均衡监测节点状态

Nginx负载均衡监测节点状态 v插件(ngx_http_upstream_check_module) upstream_check_module介绍: 该模块可以为Tengine提供主动式后端服务器健康检查的功能. 该模块在Tengine-1.4.0版本以前没有默认开启,它可以在配置编译选项的时候开启:./configure--with-http_upstream_check_module upstream_check_module官方文档 http://tengine.taobao.org/

linux系统负载状态检查脚本

为了便于分析问题,编写了一个linux状态检查脚本,脚本可放置任意目录,脚本执行检测后会输出日志记录到当前目录下.直接执行脚本可用于一次检测,可通过日志进行分析.如果需要长时间监测,可执行-x参数,脚本会自动增加计划任务,并将日志输出到/tmp目录下.如果需要删除计划任务,可执行-xx参数. 脚本下载地址: wget http://jinxiang.oss-cn-hangzhou.aliyuncs.com/vmstatuscheck.sh #使用方法:  #例:./vmstatuscheck.s

Python脚本测试cdn节点状态

情景: 公司某晚上cdn服务商的节点突然崩溃导致某些网页无法打开或打开缓慢,之前测试cdn节点状态基本采用更改host文件的逐个访问的方式,费时费力,便想通过脚本来完成这项cdn节点状态测试.主要采用了xlrd(读表格数据).httplib(绑定cdn节点进行访问及状态获取).xlsxwriter(写测试结果).脚本从制定格式的表格(data.xlsx)中读取数据并输出到另一张表格(result.xlsx) 脚本写的比较随意,各种不规范,后续会进行跟进,附代码: 1 # -*- coding:

使用redis解决tomcat6在nginx负载下多节点共享session问题

使用redis共享tomcat多节点session,需要安装redis.nginx.tomcat6以及用于tomcat存储session到redis的jar包:tomcat-redis-session-manager-1.2-tomcat-6.jar. commons-pool-1.6.jar.jedis-2.1.0.jar等.这些jar包.配置文件及demo程序可以在最后的demo地址中下载. 下面是对tomcat.nginx进行配置及运行: 1.把demo包中的jar包拷贝到tomcat的l