免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: king_819
打印 上一主题 下一主题

有奖专家座谈——自动化运维案例分享讨论之二(特邀某大型网游运维总监“king_819”) [复制链接]

论坛徽章:
0
41 [报告]
发表于 2011-12-14 10:11 |只看该作者
,响一夜才让人烦恼呢.
chenyx 发表于 2011-12-14 10:02



    所以预警阀值要设置的恰当

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
42 [报告]
发表于 2011-12-14 10:12 |只看该作者
回复 41# king_819


    不是阀值的事情,我监控过一条线路,那条线路被施工搞断了,响了一夜

论坛徽章:
0
43 [报告]
发表于 2011-12-14 10:23 |只看该作者
回复  king_819


    不是阀值的事情,我监控过一条线路,那条线路被施工搞断了,响了一夜
chenyx 发表于 2011-12-14 10:12



    监控线路? 是用的什么监控系统?  smokeping?

论坛徽章:
0
44 [报告]
发表于 2011-12-14 10:40 |只看该作者
分享一个监控http的脚本
  1. #!/bin/sh
  2. LANG=C

  3. #被监控服务器、端口列表
  4. server_all_list=(\
  5. www.qq.com:80 \
  6. www.163.com:80 \
  7. www.sina.com:80 \
  8. )



  9. telnum=已开通飞信的手机号
  10. passwd=飞信密码



  11. date=$(date -d "today" +"%Y-%m-%d_%H:%M:%S")

  12. #采用HTTP POST方式发送检测信息给接口程序interface.php,接口程序负责分析信息,决定是否发送报警MSN消息、手机短信、电子邮件。
  13. send_msg_to_interface()
  14. {
  15.          if [[ $2 = "0" ]] || [[ $2 = "2" ]]; then
  16.                  #开始发送警报短信,13500000000是接收方手机号
  17.                  curl -m 600 -d username=${telnum} -d password=${passwd} -d sendto=13500000000 -d message=$1  http://sms.api.bz/fetion.php
  18.    echo "`date +'%Y-%m-%d %H:%M:%S'`      $1 ">> http_down.log
  19.                  #发送msn警报消息(如果不需要msn警报可以注释这行)
  20. #               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/monitor/interface.php
  21.          fi;

  22. }



  23. server_all_len=${#server_all_list[*]}
  24. i=0
  25. while  [ $i -lt $server_all_len ]
  26. do
  27.     server_ip=$(echo ${server_all_list[$i]} | awk -F ':' '{print $1}')
  28.     server_port=$(echo ${server_all_list[$i]} | awk -F ':' '{print $2}')
  29.     server_message=" "
  30.     if curl -m 10 -G http://${server_all_list[$i]}/ > /dev/null 2>&1
  31.     then
  32.       #status:    0,http down    1,http ok    2,http down but ping ok
  33.       status=1
  34.             echo "服务器${server_ip},端口${server_port}能够正常访问!";
  35.                     server_message="服务器${server_ip},端口${server_port}能够正常访问!";
  36.     else
  37.         if curl -m 30 -G http://${server_all_list[$i]}/ > /dev/null 2>&1
  38.         then
  39.             status=1
  40.             echo "服务器${server_ip},端口${server_port}能够正常访问!"
  41.                     server_message="服务器${server_ip},端口${server_port}能够正常访问!";
  42.         else
  43.             if ping -c 1 $server_ip > /dev/null 2>&1
  44.             then
  45.                 status=2
  46.                 echo "服务器${server_ip},端口${server_port}无法访问,但是能够Ping通!";
  47.                             server_message="服务器${server_ip},端口${server_port}无法访问,但是能够Ping通!";
  48.             else
  49.                 status=0
  50.                 echo "服务器${server_ip},端口${server_port}无法访问,并且无法Ping通!";
  51.                             server_message="服务器${server_ip},端口${server_port}无法访问,并且无法Ping通!";
  52.             fi
  53.         fi
  54.     fi
  55.   send_msg_to_interface "${server_message}" "${status}";
  56.     let i++
  57. done



  58. interface.php (需要设置监控端服务器的让其可访问到,如:http://127.0.0.1/monitor/interface.php,与上面脚本对应)
  59. 这里需要一个PHP类sendMsg,用来通过PHP发送消息到MSN,下载后把目录解压到interface.php目录即可。



  60. include('sendmsg/sendMsg.php');
  61.   
  62. //HTTP服务器监控
  63. if (isset($_POST["menu"]))
  64. {
  65.   if (htmlspecialchars($_POST["menu"]) == "http")   
  66. {   
  67.   $date = htmlspecialchars($_POST["date"]);   
  68.   $ip = htmlspecialchars($_POST["ip"]);
  69.    $port = htmlspecialchars($_POST["port"]);
  70.    $status = htmlspecialchars($_POST["status"]);//状态,0表示无法访问,1表示正常,2表示无法访问但能ping通
  71.   
  72.    $message = '';
  73.    switch($status)
  74.    {
  75.     case '0':
  76.      $message = $ip . '服务器无法访问';
  77.      break;
  78.     case '1':
  79.      $message = $ip . '服务器工作正常';
  80.      break;
  81.     case '2':
  82.      $message = $ip . '服务器无法访问但能ping通';
  83.      break;
  84.    }
  85.   
  86.    if ($status == 0 && $status == 1)
  87.    {
  88.     $sendMsg = new sendMsg();
  89.     $sendMsg->login('用来发消息的MSN帐号', '密码');
  90.     $sendMsg->createSession('用来接收消息的MSN帐号');
  91.     $sendMsg->sendMessage(iconv("GBK", "UTF-8", $message), 'Times New Roman', 'FF0000');
  92.   
  93.    }
  94.   }
  95. }
复制代码
如果利用sendEmail发送报警邮件:
  1. cd /opt
  2. wget http://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
  3. tar -zxvf sendEmail-v1.56.tar.gz
  4. cd sendEmail-v1.56
  5. cp sendEmail /usr/local/bin
  6. chmod +x /usr/local/bin/sendEmail
复制代码
#sendEmail使用方法
  1. sendEmail -f 13512345678@139.com -t 13512345678@139.com -s smtp.139.com -u "from cacti" -xu 13512345678@139.com -xp 123456 -o message-charset=utf-8 -m “测试邮件发送”
复制代码
把原脚本中的
  1. curl -m 600 -d username=${telnum} -d password=${passwd} -d sendto=13500000000 -d message=$1  http://sms.api.bz/fetion.php
复制代码
修改为:
  1. sendEmail -f 13512345678@139.com -t 13512345678@139.com -s smtp.139.com -u "from cacti" -xu 13512345678@139.com -xp 123456 -o message-charset=utf-8 -m $1
复制代码

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
45 [报告]
发表于 2011-12-14 10:45 |只看该作者
回复 43# king_819


    是smokeping

论坛徽章:
0
46 [报告]
发表于 2011-12-14 12:27 |只看该作者
回复  king_819


    是smokeping
chenyx 发表于 2011-12-14 10:45



    把你的smokeping配置文档在这分享下

论坛徽章:
381
CU十二周年纪念徽章
日期:2014-01-04 22:46:58CU大牛徽章
日期:2013-03-13 15:32:35CU大牛徽章
日期:2013-03-13 15:38:15CU大牛徽章
日期:2013-03-13 15:38:52CU大牛徽章
日期:2013-03-14 14:08:55CU大牛徽章
日期:2013-04-17 11:17:19CU大牛徽章
日期:2013-04-17 11:17:32CU大牛徽章
日期:2013-04-17 11:17:37CU大牛徽章
日期:2013-04-17 11:17:42CU大牛徽章
日期:2013-04-17 11:17:47CU大牛徽章
日期:2013-04-17 11:17:52CU大牛徽章
日期:2013-04-17 11:17:56
47 [报告]
发表于 2011-12-14 13:51 |只看该作者
回复 46# king_819


    那个配置文件网上太多了,就不用在这帖了.我就是按照网上的文档做的,没有配置,用的都是最基本的nagios的功能

论坛徽章:
0
48 [报告]
发表于 2011-12-14 20:43 |只看该作者
本帖最后由 king_819 于 2011-12-26 16:05 编辑

因squid对多核服务器支持不够理想,所以在每台freebsd服务器上(4核)开启了3个squid,系统环境是Freebsd 7.3


平稳的运行了一段时间,有一天客服反映网页无法打开,然后就对每台squid服务器进行检查,发现有台服务器其中的一个squid进程死掉了,重新启动该squid,一切正常,为了及时发现squid进程故障并重启squid,特写了以下脚本

定时器,每过10分钟检查一次,无限循环

vi /root/restart_squid.sh
  1. #!/bin/sh
  2. while true   
  3. do
  4. Squid1_IP=`awk '/ifconfig_lo0_alias0/{print $2}' /etc/rc.conf`
  5. Squid1Num=`netstat -an | grep -c $Squid1_IP`      
  6. if [ $Squid1Num -lt 10 ] ; then   
  7.     /usr/local/etc/rc.d/squid1 start
  8.      /usr/local/etc/rc.d/squid1 restart
  9.      adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`   
  10.     echo "$adddate squid_1 started" >> /var/restart_squid.log   
  11. fi
  12. Squid2_IP=`awk '/ifconfig_lo0_alias1/{print $2}' /etc/rc.conf`
  13. Squid2Num=`netstat -an | grep -c $Squid2_IP`      
  14. if [ $Squid2Num -lt 10 ] ; then   
  15.     /usr/local/etc/rc.d/squid2 start
  16.      /usr/local/etc/rc.d/squid2 restart
  17.      adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`   
  18.     echo "$adddate squid_2 started" >> /var/restart_squid.log   
  19. fi
  20. Squid3_IP=`awk '/ifconfig_lo0_alias2/{print $2}' /etc/rc.conf`
  21. Squid3Num=`netstat -an | grep -c $Squid3_IP`      
  22. if [ $Squid3Num -lt 10 ] ; then   
  23.     /usr/local/etc/rc.d/squid3 start
  24.      /usr/local/etc/rc.d/squid3 restart
  25.      adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S`   
  26.     echo "$adddate squid_3 started" >> /var/restart_squid.log   
  27. fi
  28. sleep 10m
  29. done
复制代码

论坛徽章:
0
49 [报告]
发表于 2011-12-15 10:25 |只看该作者
都是大牛呀。学习了!

论坛徽章:
0
50 [报告]
发表于 2011-12-15 15:19 |只看该作者
都是大牛呀。学习了!
vepeta 发表于 2011-12-15 10:25



    互相学习,共同进步
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP