|
症状:通过虚拟IP能访问到监控页面:http://192.168.253.110/ipvsadm.php,但是却无法读出LVS任务分发及集群负载信息。
打开ipvsadm.php页面,源码如下:
<html>
<meta http-equiv="refresh" content="1">
<?php
$cmd = '/home/geohpc/zmq/lvsstatus.sh';//页面每间隔2s会自动刷新,执行该脚本读取LVS负载信息
$result=shell_exec($cmd);
echo "<hr>";
$i = 0;
$table_begin = 0;
while ($result)
{
$i++;
$len = strpos ($result, "\n");
$line = substr ($result, 0, $len);
$result = substr ($result, $len + 1);
if ($i <= 3)
continue;
$result = trim ($result, " ");
$isReal = strpos ($line, ">");
if ($isReal == 1)
{
// list($jiantou, $ip, $route, $weight, $act, $inact) = split(" ",$line);
$con = preg_split("[ ]",$line,-1,PREG_SPLIT_NO_EMPTY);
$content = "<tr>";
$content = $content."<td>$con[1]</td>";
$content = $content."<td>$con[3]</td>";
$content = $content."<td>$con[4]</td>";
$content = $content."<td>$con[5]</td>";
$content .= "<tr>";
echo $content;
}
else
{
if ($table_begin == 1)
{
echo "</table><div>";
echo "<hr>";
}
$head = "<div align=\"middle\">";
$head .= "<h1>".$line."</h1>";
$head .= "<table border=\"1\" width=\"50%\"><tr>";
$head .="<th width=\"10\">server:port</th>";
$head .="<th>Weight</th>";
$head .="<th>Active</th>";
$head .="<th>Inactive</th>";
$head .="</tr>";
echo $head;
$table_begin = 1;
}
}
echo "</table>"
?>
<script>
sleep(2);
window.location.reload();
</script>
</html>
脚本文件lvsstatus.sh如下:
#!/bin/bash
echo "geohpc" | /usr/bin/sudo -S ipvsadm -L
问题:上述脚本文件的含义为以超级用户的权限请求ipvsadm服务,查看其转发状态,而echo后引号内为su用户的密码,这样每次刷新页面执行上述脚本时将自动为sudo填入密码。
可是,此处输入的密码确是错误的,因为为安全起见,2013年初集群演示完毕后更改过一次密码,修改为正确密码后,集群LVS的监控页面马上显示出来了,如下:
|
|
|