另一台 Linux 服务器上的实时服务器状态

另一台 Linux 服务器上的实时服务器状态

我希望在我的两个 Web 服务器上创建某种可读文件(管道?),显示负载最小的 mysql 服务器的 ID,用于负载平衡以及一些其他应用程序。我还希望它是实时的,而不仅仅是通过 cron 作业频繁更新的东西。

我应该从哪里开始呢?

答案1

编写自己的服务器属性发现系统将比您想象的要费力得多。考虑使用 Mcollective 和 Facter 等编排工具来执行此任务。

例如,安装 Facter 和 Mcollective,并设置中央队列。确保您可以执行“mco ping”并查看所有服务器。

然后,要从服务器中发现事实,您可以执行以下操作:

mco facts --json uptime

它返回我所有服务器的当前正常运行时间(事实)。您可以编写自定义事实来发现服务器上所需的任何信息,例如当前 mysql 连接数、cpu 负载等...

答案2

一种方法是 - 你可以让一个 cron 作业执行“top” - 它应该可以工作,并将其发送到文本文件(或 Web 服务器目录中的 html 文件)

命令:

top -n 1 -b | head -n 10 > index.html

运行 n=1 次 top 迭代,head 给出 n=10 行(你不必有 head 命令,我只是喜欢控制)

确保使用准确的命令路径,以便 cron 作业正常工作

-

样本结果:

猫索引.html

顶部 - 15:24:49 启动 121 天,6:13,1 个用户,平均负载:0.03、0.18、0.21 任务:总计 62 个,1 个正在运行,61 个正在休眠,0 个已停止,0 个僵尸 CPU:0.2%us、0.0%sy、0.0%ni、99.8%id、0.0%wa、0.0%hi、0.0%si、0.0%st 内存:总计 8388608k,已使用 6909524k,可用 1479084k,缓冲区 0k 交换:总计 2097152k,已使用 95012k,可用 2002140k,缓存 6143764k

PID 用户 PR NI VIRT RES SHR S %CPU %MEM 时间+命令
1 root 20 0 19232 196 88 S 0.0 0.0 0:02.17 init
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd/109402
3 root 20 0 0 0 0 S 0.0 0.0 0:00.00 khelper/109402

相关内容