Shell应用 之 nginx 和 mysql 应用状态分析

check_server.sh

利用操作系统命令:

  网络命令: ping、nslookup、nm-tool、tracertroute、dig、telnet、nc、curl

  监控进程:ps、netstat、pgrep

利用客户端命令、工具:

  应用客户端:mysql、ab、mongo、php、jstack

  第三方工具包:nginxstatus、nagios-libexec

服务端接口支持:

  1、nginx - http_stub_status_module

  2、nutcracker监控集群(redis、memcache)状态

  3、Mongodb

  ……

1. 利用 shell 脚本分析 nginx 运行状态

#!/bin/bash
Resettem=$(tput sgr0)
Nginxserver='http://192.168.1.112'
Check_Nginx_Server()
{
        Status_code=$(curl -m 5 -s -w %{http_code} ${Nginxserver} -o /dev/null)
        if [ $Status_code -eq 000 -o $Status_code -ge 500 ];then
                echo -e '\e[32m' "check http server error! Responce status code is:" $Resettem $Status_code
        else
                Http_content=$(curl -s ${Nginxserver})
                echo -e '\e[32m' "check http server ok! \n" $Resettem $Http_content
        fi
}

Check_Nginx_Server
~                                                                                       
~                                                                                       
~                                                                                                                                                                            
"check_server.sh" 15L, 460C

2.监控Mysql主从复制状态

  

  1. 搭建主从复制环境

  2. 基于mysql客户端连接,获取主从复制状态

    mysql > show slave status\G;

      Slave_IO_Running-IO  线程是否有连接到主服务器上

      Seconds_Behind_Master - 主从同步的延时时间

3. Mysql 还没学过,先暂行放下,脚本仅实现Mysql是否连接成功

#!/bin/bash
Resettem=$(tput sgr0)
Nginxserver='http://192.168.1.112'
Mysql_Slave_Server='192.168.1.112'
Check_Nginx_Server()
{
        Status_code=$(curl -m 5 -s -w %{http_code} ${Nginxserver} -o /dev/null)
        if [ $Status_code -eq 000 -o $Status_code -ge 500 ];then
                echo -e '\e[32m'"Check http server error! Responce status code is:" $Resettem $Status_code
        else
                Http_content=$(curl -s ${Nginxserver})
                echo -e '\e[32m'"Check http server ok! \n" $Resettem $Http_content
        fi
}

Check_Mysql_Server()
{
        nc -z -w2 ${Mysql_Slave_Server} 3306 &>/dev/null
        if [ $? -eq 0 ];then
        echo -e '\e[32m'"Connect ${Mysql_Slave_Server} OK!"'\033[0m'
        fi
}

Check_Nginx_Server
Check_Mysql_Server

 

posted on 2017-02-13 15:07  你的踏板车要滑向哪里  阅读(160)  评论(0编辑  收藏  举报

导航