尝试缩写 kSAR 的 PDF 输出

尝试缩写 kSAR 的 PDF 输出

我目前正在围绕kSar的命令行(非 GUI)选项编写一个 cronjob 以生成 PDF。我只是每天午夜后通过电子邮件将前一天活动的 PDF 发送给不同的网站管理员(基本上只是高级用户)。

这是我尝试使用的命令:

java -jar /usr/local/ksar/kSar.jar -cpuFixedAxis \ 
      -input /var/log/sa/sa$(date +"%d" -d yesterday) \
      -outputPDF /tmp/SAR-$(date +"%d-%m-%Y" -d yesterday).pdf

上面正确生成了一个 PDF 文档,我可以将其通过电子邮件发送给我想要的任何人。

问题是有很多那里的信息比我真正认为他需要的更多,我真的看到他感到困惑,要么要求我帮助他理解它,要么只是无视这封电子邮件,每当他有关于负载或性能的问题时亲自给我打电话(这将是很多)。

我看到 kSar 有一个-graph选项可以仅生成图形的某个子集,但我不知道如何使用它,而且它不在任何地方在线。-help说要向它提供我想要生成的图表列表,但没有任何迹象表明我应该如何弄清楚每个图表在技术上的名称。我以为-showOnlygraphName这是我的救星,但这只是弹出了相关 SAR 的常规非 PDF GUI,它看起来与我一开始就离开时的情况相同-showOnlygraphName

此时我正在抓住救命稻草,所以任何帮助将不胜感激。

编辑:

这样您就可以看到当我在评论中说我已经尝试了 @derobert 建议的图形名称时我正在使用的语法:

$ java -jar kSar.jar -graph SWAP -input sar31 -outputPDF out.pdf
time to parse: 695ms number of line: 4073 line/msec: 5.0
jadavis@XXX-R9ZN2ZV /cygdrive/c/Documents and Settings/JADAVIS/Documents/kSar-5.0.6
$ echo $?
0
jadavis@XXX-R9ZN2ZV /cygdrive/c/Documents and Settings/JADAVIS/Documents/kSar-5.0.6
$ ls out.pdf
ls: cannot access out.pdf: No such file or directory
$ java -jar kSar.jar -graph LOAD -input sar31 -outputPDF out.pdf ; ls out.pdf
time to parse: 681ms number of line: 4073 line/msec: 5.0
ls: cannot access out.pdf: No such file or directory

上面的内容是在 中完成的cygwin,但是如果我不尝试限制要生成的图形,语法就可以工作(即生成 PDF 输出)。我也尝试过各种大小写和引号样式。

编辑#2:

在这一领域取得了部分成功。我发现这一页并按照它的说明我能够生成一个 PDF仅有的其中有 CPU 活动:

jadavis@XXX-R9ZN2ZV /cygdrive/c/Documents and Settings/JADAVIS/Documents/kSa                            r-5.0.6
$ java -jar kSar.jar -input sar31 -outputPDF out.pdf -graph all-cpu; ls -l out.pdf                          time to parse: 712ms number of line: 4073 line/msec: 5.0
-rwx------+ 1 jadavis mkpasswd 112772 Apr  3 18:51 out.pdf

答案1

以下是 kSar v5.0.6 中可用的 -graph 选项列表 -

all-cpu
bond0-if1
bond0-if2
eth0-if1
eth0-if2
eth2-if1
eth2-if2
LinuxcswchSar
LinuxioSar
LinuxkbmemSar
LinuxkbmiscSar
LinuxkbswpSar
LinuxloadSar
LinuxnfsdSar
LinuxnfsSar
LinuxpageSar
LinuxpgpSar
LinuxprocSar
LinuxsockSar
LinuxswapSar
lo-if1
lo-if2

这是我如何生成报告的示例 -

java -jar kSar.jar -input /apps/kSar-5.0.6/logs/sa01 -showCPUstacked -cpuFixedAxis -graph 'all-cpu bond0-if1 LinuxcswchSar LinuxioSar LinuxkbmemSar LinuxloadSar LinuxpgpSar LinuxprocSar'   -outputPDF /apps/kSar-5.0.6/logs/sa01.pdf

答案2

答案并不是真正的答案:对于那些在家里跟随的人,你会注意到我花了很长时间试图kSar为自己做这件事。我毫不怀疑 kSar 确实有一个解决方案,但我得出了来之不易的结论:kSar有点糟糕。我不再使用非 Linux 平台(用于管理 Solaris,现在不那么频繁了),因此,如果 SAR 数据仍​​然存在的话,它的任何优势现在都可以忽略不计。

我个人的解决方案:

从那时起,我重新将精力集中在让它发挥作用上collectd,并且在过去 30 分钟内取得的成功比我在三天内时断时续地与kSar.这是我在 RHEL5 和 RHEL6 服务器上所做的(显然是 YMMV):

1. 确保EPEL 存储库安装在服务器上。

2. 安装collectdcollectd-webcollectd-apachecollectd-mysql软件包。

3. 编辑/etc/httpd/conf.d/collectd.conf文件如下:

ScriptAlias /collectd/bin/ /usr/share/collectd/collection3/bin/
Alias /collectd/ /usr/share/collectd/collection3/

<Directory /usr/share/collectd/>
AddHandler cgi-script .cgi
DirectoryIndex bin/index.cgi
Order Deny,Allow
Deny from all
Allow from 192. 10.
</Directory>

4. 确保以下插件已启用/etc/collectd.conf

LoadPlugin apache
LoadPlugin cpu
LoadPlugin df
LoadPlugin disk
LoadPlugin fscache
LoadPlugin interface
LoadPlugin load
LoadPlugin memory

5.启动collectd服务并发出service httpd reload命令。

等待短暂的采样期,然后通过访问访问collectd-web(用 编写的第三部分 Web 界面perl):

  • http://我的主机名/collectd/bin/index.cgi

此后不久,我生成了他有兴趣查看的所有图表,而且没有一个会让他感到困惑。我还发现一些collectd统计数据可以以细节为导向,因此它也可能对我的目的有用。

collectd-web界面功能齐全,但外观相当朴素且难以定制。不过,给他这个 URL 肯定更容易,所以我会尝试不同的前端。

如果有人发布kSar具体答案(或者如果我同时找到一个答案),我会接受该答案。但最终我认为是时候在 SAR 的棺材上放一朵黑玫瑰,然后让它死去。

编辑:

对于好奇的人来说,这里有一些示例随机图表:

collectd-web 生成的图表

还有一些磁盘的队列合并和文件系统利用率以及 CPU 的运行队列大小和上下文切换的图表。这似乎也支持通知关于阈值违规。因此,它似乎是用于通用性能监控和容量规划的相当不错的工具。

相关内容