Linux

嘗試縮寫 kSAR 的 PDF 輸出

  • September 21, 2016

我目前正在圍繞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:

在這方面取得了部分成功。我找到了這個頁面並按照它的說明生成了一個只有CPU 活動的 PDF:

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

**答案並不是真正的答案:**對於那些在家裡跟隨的人,你會注意到我已經花了很長時間試圖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 : //MYHOSTNAME/collectd/bin/index.cgi

此後不久,我生成了他有興趣查看的所有圖表,而且這些圖表都不會讓他感到困惑。我還看到一些collectd統計數據可以以細節為導向,因此它也可能對我的目的有用。

collectd-web界面功能齊全,但外觀非常簡單,難以自定義。仍然只給他這個 URL 肯定更容易,所以我只會玩不同的前端。

如果有人發布一個kSar特定的答案(或者如果我同時找到一個),我會接受它作為答案。但最終我認為是時候在 SAR 的棺材上放一朵黑玫瑰,最後讓它死去。

編輯:

對於好奇,這裡有一些範例隨機圖表:

collectd-web 生成的圖表

還有一些圖表用於磁碟的隊列合併和文件系統使用率,以及 CPU 的執行隊列大小和上下文切換。它似乎還支持門檻值違規通知。因此,它似乎是一個相當不錯的通用性能監控和容量規劃工具。

這是 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

引用自:https://unix.stackexchange.com/questions/122633