在日志上绘图

在日志上绘图

我刚刚发现了“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

相关内容