18.2 检测服务器存活

检测服务器存活是日常运维工作中很重要也是很基础的服务器监控任务,最简单的方法是使用ping命令检测。本节将利用ping和简单的HTML语言创建服务器存活监控脚本,监控结果可通过网页展示,方便监控人员查看。

对于该脚本,需要设计成节点可配置的,也就是脚本和数据分开。数据部分使用一个文件列表,记录所有需要监控的主机的IP地址,脚本定时运行并生成HTML页面。为了能访问到生成的页面,应首先使用yum安装Apache服务,并确保服务启动。示例如下:


  1. [root@localhost ~]# cat server_alive01.sh

  2. #!/bin/bash

  3. TIMESTAMP=`date +%Y%m%d%H%M%S`

  4. CURRENT_HTML=varwww/html/${TIMESTAMP}.html

  5. CURRENT_INDEX=varwww/html/index.html

  6. LN=/bin/ln

  7. RM=/bin/rm

  8. SERVER_LIST=server_list

  9. cat <<EOF > $CURRENT_HTML

  10. <html>

  11. <head>

  12. <title>Server Alive Monitor</title>

  13. </head>

  14. <body>

  15. <table width="50%" border="1" cellpading="1" cellspaceing="0" >

  16. <caption><h2>Server Alive Status</h2></caption>

  17. <tr><th>Server IP</th><th>Server Status</th></tr>

  18. EOF

  19. while read SERVERS

  20. do

  21. #

  22. 如果ping

  23. 的结果返回0

  24. 则状态是OK

  25. 的,同时显示字体的颜色为blue

  26. #

  27. 如果ping

  28. 的结果返回非0

  29. 则状态是FALSE

  30. 的,同时显示字体的颜色为red

  31. ping $SERVERS -c 3

  32. if [ $? -eq 0 ]; then

  33. STATUS=OK

  34. COLOR=blue

  35. else

  36. STATUS=FALSE

  37. COLOR=red

  38. fi

  39. echo "<tr><td>$SERVERS</td><td><font color=$COLOR>$STATUS</font></td></tr>" >>

  40. $CURRENT_HTML

  41. done < $SERVER_LIST

  42. cat <<EOF >> $CURRENT_HTML

  43. </table>

  44. </body>

  45. </html>

  46. EOF

  47. #

  48. web

  49. 根目录中的主文件连接到新生成的页面

  50. $LN -sf $CURRENT_HTML $CURRENT_INDEX


在该脚本相同目录中创建server_list文件,按行写入需要监控的服务器的IP地址。这里写了两条IP记录,其中192.168.61.131可用,而192.168.61.132是一个当前不存在的IP。

运行脚本后,在Apache的文件根目录中会生成新的index.html连接文件,可以将该脚本加入系统计划任务中(cron)定时运行(比如每分钟运行一次),生成HTML文件后,使用浏览器观察检测结果,如图18-1所示。


#

添加系统crontab

任务

[root@localhost ~]# crontab -l

/1 * rootserver_alive01.sh

#

几分钟后观察apache

根文件目录中确实出现了生成的页面

[root@localhost html]# ll

total 8

-rw-r—r— 1 root root 406 Jun 11 10:33 20130611103301.html

-rw-r—r— 1 root root 310 Jun 11 10:34 20130611103401.html

lrwxrwxrwx 1 root root 33 Jun 11 10:33 index.html -> varwww/html/20130611103301.html


18.2 检测服务器存活 - 图1

图18-1 用浏览器访问检测页面