• 编写简易脚本实现监控服务是否正常, 如果不正常邮件报警


    本来想弄zabbix来着, 实在是对立面的概念不清不楚的.  今天早上趁着加班就用shell 脚本写一个监控服务是否正常的脚本 理论上每小时运行一次. 但是感觉没必要. 

    方法很简单 使用的工具有

    telnet 和 mailx

    1. 写一个脚本, 用telnet 去监听服务的端口是否正常开着.

    如下

    telnetall 

    :

    telnet 10.24.22.133 5200 >133_5200.txt
    telnet 10.24.22.133 5100 >133_5100.txt
    telnet 10.24.22.133 5000 >133_5000.txt
    telnet 10.24.22.138 5200 >138_5200.txt
    telnet 10.24.22.138 5100 >138_5100.txt
    telnet 10.24.22.138 5000 >138_5000.txt
    telnet 10.24.22.139 5200 >139_5200.txt
    telnet 10.24.22.139 5100 >139_5100.txt
    telnet 10.24.22.139 5000 >139_5000.txt
    telnet 10.24.22.234 5200 >234_5200.txt
    telnet 10.24.22.234 5100 >234_5100.txt
    telnet 10.24.22.234 5000 >234_5000.txt
    

     很 low了就留不仔细写循环了.

    2. 因为telnet 有一个很坑爹的问题会导致卡住 在创建一个后台服务专门杀telnet的进程

    while true;do
            count=`ps -ef|grep "telnet"|grep -v grep |wc -l`
              echo $count
            if [ $count != 0 ];then
              killall telnet
              fi
    sleep 5
    done

    使用 nohup & 让他在后台运行即可.

    3. mailx 的安装和配置 这里面不在复述.

    4. 编写一个脚本, 根据文件里面 有多少个 connected 来判断 多少个端口存活

    文件为: mailservice
    #!/bin/bash
    count=`find /alert  -name "*.txt" |xargs grep Connected |wc -l`
            echo $count
            if [ $count != 12 ];then
               echo  自动化环境不可用,请进行处理  |mail -s 自动化环境不可用,请进行处理   zhaobenshuai630@163.com,zhaobsh@inspur.com
            fi

    原理很简单, 查找是不是12行都是 connected的了 因为服务如果没起来 端口肯定不会被connected的

    如果不等于12 说明有端口挂了 发邮件通知一下 负责人即可. 

    然后在将这几个脚本汇总一下 做成一个 alter 脚本

    cd /alert
    ./telnetall 
    ./mailservice

    注意 killtelnet 是在后台运行的不需要放在脚本里面

    5. 设置一个计划任务

    crontab -e
    输入一行为:
    15 7,13 * * * /alert/alert
    
    上午和下午各一次验证,如果服务没起来,就会发邮件给我自己.
    说明环境有问题需要自己去看. 
  • 相关阅读:
    千年决心
    编译器及其命令行模式杂谈
    How Microsoft Lost the API War
    再看计算机本科该如何学习
    C++杂记(一)
    C++杂记
    Java IO 学习心得
    VMDq (Virtual Machine Device Queue) in OpenSolaris
    WCHAR and wchar_t 的区别 (zz)
    error C3225: generic type argument for 'T' cannot be 'System::Collections::Generic::KeyValuePair ^',
  • 原文地址:https://www.cnblogs.com/jinanxiaolaohu/p/12821235.html
Copyright © 2020-2023  润新知