我正在寻找在我的两个Web服务器上的一些可读文件(pipe?),它显示了负载平衡中使用的最less负载的mysql服务器的id以及其他一些应用程序。 我也希望它是实时的,而不仅仅是通过cron job经常更新的东西。
我应该从哪里开始?
编写自己的服务器属性发现系统将比您意识到更多的维护工作。 考虑使用与Facter一起使用Mcollective等编排工具来执行此任务。
例如安装Facter和Mcollective,并build立一个中央队列。 确保你可以做“mco ping”并查看你所有的服务器。
然后,从服务器发现事实,你可以做:
mco facts --json uptime
它从我的所有服务器返回当前正常运行时间(事实)。 你可以写一个自定义的事实来发现你的服务器上需要的任何东西,比如当前的mysql连接数,CPU负载等。
一种方法 – 你可以有一个cron作业执行“顶部” – 这应该工作,并将其发送到一个文本文件(或Web服务器目录中的HTML文件)
命令:
top -n 1 -b | head -n 10 > index.html
运行n = 1的迭代顶部,头给n = 10行(你不必有头部命令,我就像控制)
请确保使用命令的确切path,以便cron作业正常工作
–
样本结果:
cat index.html
顶部 – 15:24:49最多121天,6:13,1个用户,平均负载:0.03,0.18,0.21任务:总计62个,1个运行,61个睡眠,0个停止,0个僵尸Cpu(s):0.2% ,0.0%sy,0.0%ni,99.8%id,0.0%wa,0.0%hi,0.0%si,0.0%st Mem:总计8388608k,使用6909524k,不含1479084k,0k缓冲液Swap:总计2097152k,使用95012k,免费,6143764kcaching
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根20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd / 109402
3根20 0 0 0 0 S 0.0 0.0 0:00.00 khelper / 109402