zoukankan      html  css  js  c++  java
  • 监控(1)-企业常用服务监控shell

    -----------------企业监控------------------------
    主动探测监控(“监控机”主动探测“被监控机”)
    HTTP服务器监控
    #!/bin/sh
    LANG=C
    #被监控服务器、端口列表
    server_all_list=(
    192.168.1.1:80
    192.168.1.2:80
    192.168.1.3:80
    )
    date=$(date -d "today" +"%Y-%m-%d_%H:%M:%S")
    #采用HTTP POST方式发送检测信息给接口程序interface.php,接口程序负责分析信息,决定是否发送报警MSN消息、手机短信、电子邮
    件。
    send_msg_to_interface()
    {
    /usr/bin/curl -m 600 -d menu=http -d date=$date -d ip=$server_ip -d port=$server_port -d status=$status http://127.0.0.1:8888/interface.php
    }
    server_all_len=${#server_all_list[*]}
    i=0
    while [ $i -lt $server_all_len ]
    do
    server_ip=$(echo ${server_all_list[$i]} | awk -F ':' '{print $1}')
    server_port=$(echo ${server_all_list[$i]} | awk -F ':' '{print $2}')
    if curl -m 10 -G http://${server_all_list[$i]}/ > /dev/null 2>&1
    then
    #status: 0,http down 1,http ok 2,http down but ping ok
    status=1
    echo "服务器${server_ip},端口${server_port}能够正常访问!"
    else
    if curl -m 30 -G http://${server_all_list[$i]}/ > /dev/null 2>&1
    then
    status=1
    echo "服务器${server_ip},端口${server_port}能够正常访问!"
    else
    if ping -c 1 $server_ip > /dev/null 2>&1
    then
    status=2
    echo "服务器${server_ip},端口${server_port}无法访问,但是能够Ping通!"
    else
    status=0
    echo "服务器${server_ip},端口${server_port}无法访问,并且无法Ping通!"
    fi
    fi
    fi
    send_msg_to_interface
    let i++
    done


    -----------------企业监控------------------------
    一、前期准备
    1. # service sendmail start 用于发送邮件
    2. # service crond start 用于定时任务
    3. # chkconfig sendmail on
    4. # chkconfig crond on
    二、配置飞信
    1、下载下来的飞信应该是如下结构
    # ls /usr/local/fetion/
    done libACE_SSL-5.7.2.so libssl.so.4
    cache fetion libcrypto.so.4 logs
    commands libACE-5.7.2.so libeay32.dll plugins
    2、需要把libACE-5.7.2.so、libcrypto.so.4、libssl.so.4、libACE_SSL-5.7.2.so 复制到/usr/lib目录中,给fetion添加执行权限,飞信才可以正常
    运行
    1. # cp libACE-5.7.2.so libcrypto.so.4 libssl.so.4 libACE_SSL-5.7.2.so /usr/lib
    2. # chmod +x fetion
    3、发送飞信的脚本
    1. # /usr/local/fetion/fetion --mobile=1356440xxxx --pwd 123456 --to=1885151xxxx --msg-utf8="hi"
    1) mobile后面是发送手机号;
    2) pwd后面是飞信密码
    3) to后面是接收短信的号码
    注:mobile后的手机号必须开通飞信服务,并且to后的手机号必须是mobile的飞信好友
    三、脚本监控
    1. #!/bin/bash
    2.
    3. #网站url地址
    4. for URL in http://www.abc.com http://www.88888.cn
    5.
    6. do
    7. #获取http响应代码
    8. HTTP_CODE=`curl -o /dev/null -s -w "%{http_code}" "${URL}"`
    9.
    10. #服务器能正常响应,应该返回200的代码
    11. if [ $HTTP_CODE = 200 ]
    12. then
    13. echo "$URL is OK" | /bin/mail -s "Http Check" qq@163.com
    14. # else
    15. # /usr/local/fetion/fetion --mobile=1356440xxxx --pwd 123456 --to=1885151xxxx --msg-utf8="$URL is ERROR; error code is $HTTP_CO
    DE"
    16.
    17. fi
    18.
    19. done
    此脚本监控了2个网站www.abc.com与www.88888.cn
    使用了for循环
    通过取网站正常时的返回值,为200 来匹配
    如果正常就发送“相应网站 is OK" 到指定邮箱
    如果失败就直接发送短信到1885151xxxx

  • 相关阅读:
    26.列表的循环遍历
    效率比较--链表
    心之距离 再回首 光年之遥远
    效率比较--集合
    效率比较--数组
    哈希表
    栈 VS 队列
    struts1 标签引入
    web 连接池配置
    zip&ftp命令
  • 原文地址:https://www.cnblogs.com/luoyan01/p/9734066.html
Copyright © 2011-2022 走看看