1
  1. 我没有看到“sar”命令接受日期和时间作为开始时间(-s)或结束时间(-e)而不仅仅是时间。那么,如何通过传递较旧的日期时间值来查询“sar”以获取超过一天的数据点(-f 在这里没有帮助)。'sar' 命令的输出也应该具有数据点的日期值 - 而不是仅以小时和分钟为单位的时间。
  2. 我看到 sysstat 每天都在拆分 saXX 数据文件。是否可以修改默认的 sysstat cron 条目以每周在单个 sa 文件中收集 sysstat(sa1/sa2) 数据?

系统统计配置:

cat /etc/sysconfig/sysstat
# sysstat-9.0.4 configuration file.

# How long to keep log files (in days).
# If value is greater than 28, then log files are kept in
# multiple directories, one for each month.
HISTORY=7

# Compress (using gzip or bzip2) sa and sar files older than (in days):
COMPRESSAFTER=10

# Parameters for the system activity data collector (see sadc manual page)
# which are used for the generation of log files.
SADC_OPTIONS="-S DISK"

sysstat cron 条目:

cat /etc/cron.d/sysstat
# Run system activity accounting tool every 10 minutes
*/10 * * * * root /usr/lib64/sa/sa1 1 1
# 0 * * * * root /usr/lib64/sa/sa1 600 6 &
# Generate a daily summary of process accounting at 23:53
53 23 * * * root /usr/lib64/sa/sa2 -A
4

1 回答 1

0

你不能直接用 sar 工具来做。有多种工具可以加载 sar 数据并跨日期显示数据。

例如 ksar 一个 java 工具 https://en.wikipedia.org/wiki/Ksar_(Unix_sar_grapher)

  1. 将 sar 二进制数据转换为文本形式
   for day in $(seq 27 31) $(seq -f %02g 1 4); do
       LC_ALL=C sar -A -f /var/log/sa/sa$day > /tmp/sa$day.ALL.$(hostname);
   done;
   tar -zcvf /tmp/sar_for_$(hostname).tgz /tmp/sa*.$(hostname)
  1. scp/rsync 使用 ksar 将 .tgz 复制回主机并提取

  2. 加载每个 sar 文件

* Data > Load file
    e.g. load sa29.ALL.host1 
* Repeat:
  Data > Append from file 
    e.g. load sa30.ALL.host1 sa31.ALL.host1 sa01.ALL.host1 ...

如果您以正确的日期顺序附加,它会更快。

是的,这很烦人而且有点痛苦。我一直在尝试将文件附加到一个文件中,到目前为止,这是最好的方法。很晚的答案,无论好问题,应该在互联网上的某个地方有答案!

几天的数据,最多一个月的数据加载到ksar

于 2021-07-30T12:41:26.687 回答