我目前正在围绕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. 安装collectd
、collectd-web
、collectd-apache
和
collectd-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 的棺材上放一朵黑玫瑰,然后让它死去。
编辑:
对于好奇的人来说,这里有一些示例随机图表:
还有一些磁盘的队列合并和文件系统利用率以及 CPU 的运行队列大小和上下文切换的图表。这似乎也支持通知关于阈值违规。因此,它似乎是用于通用性能监控和容量规划的相当不错的工具。