我刚刚发现了“atop”。这是一个用于识别 Linux 性能瓶颈的出色工具。它支持长期监控模式,在该模式下,它会将数据记录到二进制日志中。
我希望能够以图表的形式直观地显示这些数据。这可能吗?如果可以,怎么做?
我似乎无法找出日志保存的格式。它是二进制的,但“文件”无法检测到任何内容。
答案1
一个 shell 脚本,用于从日志文件列表中绘制三个 CPL 负载平均字段。
#!/bin/sh -u
# $0 [list of atop logfiles to plot]
# Plot the three CPL load average numbers from a list of atop log files.
# Uses a default atop log file if no arguments given.
# -Ian! D. Allen - [email protected] - www.idallen.com
if [ $# -eq 0 ] ; then
set -- '/var/log/atop.log'
fi
tmp=/tmp/atop$$
rm -f $tmp
trap "rm -f $tmp" 0 1 2
title=''
for log do
if [ ! -s "$log" -o ! -r "$log" ] ; then
echo 1>&2 "$0: $log: empty or unreadable - skipping"
continue
fi
atop -PCPL -r "$log" >>$tmp || exit $?
title="$title ${log##*/}"
done
if [ ! -s "$tmp" ] ; then
echo 1>&2 "$0: No files plotted"
exit 1
fi
len=${#title}
if [ $len -le 80 ] ; then
title="Three CPL load averages from atop -PCPL\n$title"
else
title="Three CPL load averages from atop -PCPL\n$(printf "%.77s..." "$title")"
fi
gnuplot -persist <<EOF
set xdata time
set timefmt '%Y/%m/%d %H:%M:%S'
set format x "%Y\n%m/%d\n%H:%M"
set grid
set title noenhanced
set title "$title"
plot \
"$tmp" using 4:8 notitle 'L1+' with points lc rgbcolor 'blue', \
"$tmp" using 4:8 title 'L1+' smooth csplines lc rgbcolor 'blue', \
"$tmp" using 4:9 notitle 'L2*' with points lc rgbcolor 'green', \
"$tmp" using 4:9 title 'L2*' smooth csplines lc rgbcolor 'green', \
"$tmp" using 4:10 notitle 'L3x'with points lc rgbcolor 'red', \
"$tmp" using 4:10 title 'L3x' smooth csplines lc rgbcolor 'red', \
;
EOF
答案2
要监视远程系统的使用情况,您可以使用将图表输出到终端的工具,例如atopsar 图。它能够使用 --day 参数绘制历史日期。安装很简单,你只需要在顶上、Python 和 pip。无需配置。
全面披露:我是 atopsar-plot 的作者。
$ atopsar-plot --day 0 --disk sda --iface 0s31f6
%CPU_idle
┌──────────────────────────────────────────┐
1586.0┤▄▄▄█████▄▄▄▖ ▖ ▐█▄▄▄▄▄▄█▟█▙▄▄▄▄▄▄▄│
1532.0┤████████████▙▄▄▄▄▄▟█▖ ▟██████████████████│
1478.0┤█████████████████████▖▗███████████████████│
1424.0┤█████████████████████▙████████████████████│
└┬────────┬────────┬──────────┬───────────┬┘
09:57 10:37 11:07 12:07 13:07
%DSK_busy
┌────────────────────────────────────────────┐
36.0┤ ▟▄ │
24.0┤ ▟██▌ │
12.0┤▄▄ ▗████ │
0.0┤█████▄▄▄▄▄▄▄▄▄▄▄▄▟█▄█████████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│
└┬────────┬────────┬──────┬──────┬──────────┬┘
09:57 10:27 11:07 11:57 12:17 13:07
MB_SWP_free
┌──────────────────────────────────────────┐
8192.0┤████████████████████▙▄▄ │
8186.7┤███████████████████████▙▖ │
8181.3┤██████████████████████████▄▄ │
8176.0┤█████████████████████████████▙▄▄▄▄▄▄▄▄▄▄▄▄│
└┬────────┬────────┬──────────┬───────────┬┘
09:57 10:37 11:07 12:07 13:07
NET_iMbps
┌────────────────────────────────────────────┐
73.0┤ ▄█ │
48.7┤ ▗██▖ │
24.3┤ ▐██▌ │
0.0┤▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄█████████▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄│
└┬────────┬────────┬──────┬──────┬──────────┬┘
09:57 10:27 11:07 11:57 12:17 13:07
NET_oMbps
┌───────────────────────────────────────────┐
151.0┤ ▗▟ │
100.7┤ ▗▟██▖ │
50.3┤ ▄████▌ │
0.0┤▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄███████▄▄▄▄▄▄▄▄▄▄▄│
└┬─────────┬───────┬───────────┬───────────┬┘
09:57 10:37 11:07 12:07 13:07
答案3
我创建了一个解决此问题的服务。
它接受 atop 文件作为输入,并将其转换为 influxdb 数据库格式,之后图表可在 grafana 中使用。所有这些都在https://atopgraph.info
要使用该服务,您需要单击“开始”按钮,然后使用浏览器或 curl 上传您的 atop 文件。
答案4
手册页 ( man atop
) 提供了有关如何查看原始日志文件的有用信息。Atop 本身提供了查看功能,并可以选择生成“可解析输出”,然后您可以使用它来生成可视化效果。因此,只需man atop
输入以下内容来查看并搜索此术语:\PARSEABLE OUTPUT