美文网首页Linux学习之路
shell场景脚本实战三(应用运行状态分析脚本)

shell场景脚本实战三(应用运行状态分析脚本)

作者: 李菜菜同学 | 来源:发表于2020-02-03 21:34 被阅读0次

    一、分析nginx运行状态

    1.概述

    脚本:check_server.sh

    利用操作系统命令:

    网络命令:ping(检查网络是否正常连接)、nslookup(检查dns)、nm-tool(检查路由网络是否通畅)、tracertroute(检查路由网络是否通畅)、dig(检查路由网络是否通畅)、telent、(检查路由网络是否通畅)、curl(检查http的响应值是否成功)

    监控进程:ps、netstat、pgrep(查看进程或者端口)

    应用运行状态监控脚本:

    利用客户端命令、工具:

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

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

    服务端接口支持:

    1.nginx - http_stub_status_module

    2.nutcracker监控集群(redis、memcache)

    3.Mongodb

    2.nginx监控脚本

    脚本部分内容--详细函数编写:

     Resettem=$(tput sgr 0)

    Nginxserver='http://192.168.38.132/nginx_status'

       Check_Nginx_Server()  //定义一个函数,将其封装到一起

    {

    Status_code=$(curl -m 5 -s -w %{http_code}  ${Nginxserver} -o /dev/null)

    //判断其状态大于500的就输出错误

    if [ $Status_code -eq 000 -o $Status_code -ge 500 ];then

     echo -e '\E[32m' "check http server error! Response 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 //调用这个函数

    命令详解释:

    curl -m 5 -s -w %{http_code} ip/nginx_status -o /dev/null

    -m:设置其最大传输时间 

    -s:静音模式,不做其他输出

    -w:显示http对应的状态码

    -o /dev/null :摒弃输出

    运行结果图示

    二、利用shell监控mysql

    1.mysql主从复制状态监控


    监控mysql主从复制状态图示

    前提:

    1.搭建主从复制环境

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

    监控:

    mysql>show slave status\G;

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

    Second_Behind_Master   //主从同步的延时时间

    2.主从复制状态函数编写

    nc -z -w2  ip 数据库端口(默认3306) 

    nc:检查端口是否连通

    -z:简单的检查端口的测试,不做过多的往服务端发送数据

    -w2:连接超时

    图示

    脚本部分内容--详细函数编写:

    Mysql_Slave_Server='你的ip'

    Check_Mysql_Server(){

    nc -z -w2  ${Mysql_Slave_Server } 3306 &>dev/null  //检查数据库端口是否连通,并将结果输入空文件中

    if [ $? -eq 0 ];then   //判读,如果查询到的上一条命令的返回值是0,则输出连接成功

    echo "Connect ${Mysql_Slave_Server} OK!"

    fi

    }

    Check_MySql_Server  //调用这个函数

    执行结果图示

    3.主从复制状态建立Mysql监控普通用户

    前提:

    1.确定mysql的主从是配置完毕的。

    2.建议给监控,单独配置一个用户,避免安全问题以及一些权限问题。

    给用户rep密码是imooc'用户单独赋予一个权限

    连接mysql根据mysql的查询语句获取mysql状态的主从信息

    mysql -u rep -pimooc -h192.168.38.132 -e "show slave status\G"

    详解:-u 用户名

             -p 密码

            -h 地址ip

            -e 执行的命令

    结果图示

    4.主从复制状态建立Mysql监控主从同步延时


    图示

    部分脚本--监控主从同步延时代码:

    将从服务器的用户名和密码写入:

    Mysql_User='rep'

    Mysql_Pass='imooc'

    图示 整个监控脚本的输出

    后续补上完整脚本~~

    相关文章

      网友评论

        本文标题:shell场景脚本实战三(应用运行状态分析脚本)

        本文链接:https://www.haomeiwen.com/subject/yeprzctx.html