我的要求很简单。我需要绘制远程 Linux 服务器上的 CPU 使用情况。我不是在寻找任何复杂的东西,我只需要能够在一周内绘制 Linux 服务器上的 CPU 使用情况。
我从仙人掌路线开始——这并不简单,也不直截了当,而且感觉肯定是矫枉过正。
有没有更简单、更快捷、更直接的选择?
我的要求很简单。我需要绘制远程 Linux 服务器上的 CPU 使用情况。我不是在寻找任何复杂的东西,我只需要能够在一周内绘制 Linux 服务器上的 CPU 使用情况。
我从仙人掌路线开始——这并不简单,也不直截了当,而且感觉肯定是矫枉过正。
有没有更简单、更快捷、更直接的选择?
Munin非常好,易于安装和设置。
对于一次性的事情,我会使用sar(sysstat 包)获取数据,然后用它绘制它rrd tool。 这是一个有助于从 sar 输出创建图形的脚本。
您可以在http://www.fsprings.com/neat/sargrapher.html尝试 sar grapher ,上传 sar -p -A 输出,它会提供一个带有图表的页面。如果你愿意,你可以选择你想要的 sar 选项,它只会绘制那些图形。
几个问题: - 你想实时生成图吗?- 你想多久取样一次?
之前的评论提到了 5 分钟的样本,我不得不说,如果你真的想知道你的 CPU 正在做什么,那么你真的应该在 10 秒的范围内。在 5 分钟内取平均值只会让您错过可能长达数分钟的峰值!诚然,10 秒的样本可能会错过 5 秒的峰值,但你必须弄清楚你想在数据中看到什么。
我个人使用collectl,可能是因为我写的!;-)
但它在低采样率(甚至亚秒级)下运行非常高效,甚至可以以适合绘图的格式报告其输出。事实上,如果你安装了collectl-utils并写入共享目录,你可以使用colplot来实时查看数据。
关于 RRDTool 的最后一条评论。这是一个很棒的软件包,并且绘制了非常漂亮的图,但是您确实需要知道如果您在一天内记录大量样本,则结果图并不准确。这是因为 RRDTool 将多个样本标准化为单个数据点以使图形更简单,而 colplot 从来没有这样做过。它使用 gnuplot 来确保捕获的每个数据点都被忠实地绘制出来。
-标记
我更喜欢 ORCA - www.orcaware.com用于绘制服务器统计数据。
这些天的设置并不太难(使用快照 r535),它可以显示每小时、每天、每周、每月、每季度和每年的范围。
它基于以 5 分钟间隔进行轮询的数据收集器(procallator)。绘图引擎是 RRDTool 的旧版本,但对这个应用程序来说很快。
对于远程服务器,您可以让它绘制自己的统计信息,或者您可以定期通过 ssh/rsync/scp 拉取 procallator 文件以在本地服务器上绘制图形。无论哪种方式,它都运作良好。
正如@user190941 和@kyle-brandt 所提到的,一个快速且不那么肮脏的解决方案是:
1.安装运行
sysstat
在基于 debian 的发行版上:
2.运行
sar
2.1。SSH 到远程主机
2.2. 创建一个
screen
sar
即使失去ssh
连接也能继续运行:2.3 执行
sar
于screen
这将记录 CPU 利用率 (
-u
),每秒604800 seconds = 7 days * 24 hours/day * 60 minutes/hour * 60 seconds/minutes
3. 在线可视化
scp
cpu.sar
到您的本地计算机并使用在线sar
图表工具绘制数字:sar
文件)当我使用一些 Linux 机器时,我使用的是Splunk,发现它非常有用。
我喜欢 Splunk,因为它不仅可以让我监控性能,还可以为我的 Linux 和我的 Windows 机器设置警报。
如果你真的只有一个,请忽略这一点,但如果你有一堆,或者要增长,那么 Ganglia 可能值得一看。
5 秒采样,以及 CPU 之外的一系列指标,在多个级别、每个服务器/集群/场等上得到很好的管理。
要监控远程系统使用情况,您可以使用将图形输出到终端的工具,例如atopsar-plot。它能够使用 --day 参数绘制历史日期。安装很简单,只需要atop、 Python 和 pip 即可。无需配置。
完全披露:我是 atopsar-plot 的作者。