在Linux上安装配置sar和ksar用于日常监控并生成PDF报告
在此页
- 第 1 部分:安装 SAR 监控软件
- 第 2 部分:安装 KSAR
- 第 3 部分:监控脚本
本教程重点介绍功能强大的实用程序 sar 和 ksar 在 CentOS、Debian 和 Ubuntu 上的安装和配置,并展示了如何使用简单的 shell 脚本自动创建 PDF 报告,以便于日常监控服务器资源使用情况。
第 1 部分:安装 SAR 监测软件
SAR 表示系统活动报告。 SAR 是轻量级的实时系统监控工具。它可以根据我们的要求向服务器提供资源使用情况报告。默认情况下,它在终端上提供输出,并且它还按天存储信息,因此对于系统管理员来说,它将是一个非常方便和强大的实用程序。
SAR 可以安装在任何 Linux 版本中,它是 sysstat 包的一部分。
安装和配置 SAR
对于 Debian/Ubuntu
# sudo apt-get install sysstat
对于 RedHat/CentOS
# sudo yum install sysstat
从源安装最新的 sysstat。
wget http://pagesperso-orange.fr/sebastien.godard/sysstat-12.1.4.tar.bz2
tar -xvf sysstat-12.1.4.tar.bz2
cd sysstat-12.1.4/
./configure --enable-install-cron
make
make install
如果您从源代码安装 sar,那么它将在 /usr/local/bin/ 下安装 systat
安装后验证 SAR 版本
#:~$ sar -V
sysstat version 11.2.0
之后确保验证 SAR 数据收集已启用。
在Ubuntu中
#sudo vi /etc/default/sysstat
ENABLED="true"
然后重新启动 sar 服务并在系统启动时启用它。
# systemctl start sysstat
# systemctl enable sysstat
现在通过运行以下命令检查 sar 在系统中是否正常工作。这里有 2 秒的时间间隔和 4 次输出。
[ ~]$ sar 2 4
Linux 5.0.16-200.fc29.x86_64 (redhat) 05/22/2019 _x86_64_ (4 CPU)
12:18:13 AM CPU %user %nice %system %iowait %steal %idle
12:18:15 AM all 1.25 0.00 0.50 0.00 0.00 98.24
12:18:17 AM all 2.50 0.00 0.38 0.00 0.00 97.12
12:18:19 AM all 2.12 0.00 0.62 0.12 0.00 97.12
12:18:21 AM all 1.75 0.00 0.50 0.00 0.00 97.75
Average: all 1.91 0.00 0.50 0.03 0.00 97.56
我们可以简单地运行 sar 命令来检查资源使用情况。
[ script]# sar
Linux 5.0.16-200.fc29.x86_64 (redhat) 05/24/2019 _x86_64_ (4 CPU)
12:00:01 AM CPU %user %nice %system %iowait %steal %idle
12:10:01 AM all 4.02 0.05 1.45 1.40 0.00 93.09
12:20:01 AM all 6.27 0.02 1.82 0.56 0.00 91.33
12:30:01 AM all 10.61 0.03 2.69 0.64 0.00 86.03
12:40:01 AM all 9.26 0.05 2.45 0.59 0.00 87.65
默认情况下,sar 间隔设置为每 10 分钟一次。我们可以通过编辑以下文件来修改这个值。
vi /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
在上面的文件中,sa1 是用于在系统活动日数据文件中收集和存储二进制数据的 shell 脚本,sa2 是在一天结束时(上面的 23:53)将每日报告写入 /var/log/sa 的 shell 脚本定时作业)。
第 2 部分:安装 KSAR
KSAR 从 SAR 值生成一个图表,非常容易分析。 KSAR 基于 JAVA,因此我们必须在系统上安装 JDK 8 或更高版本。 KSAR 不是系统存储库的一部分,我们必须手动下载 KSAR。
一、在redhat/centos上安装java
sudo yum install java-1.8.0-OpenJDK.x86_64
现在在系统上下载并安装 KSar。
wget https://excellmedia.dl.sourceforge.net/project/ksar/ksar/5.0.6/kSar-5.0.6.zip
unzip kSar-5.0.6.zip
cd kSar-5.0.6/
现在使用以下命令收集 sar 命令统计信息。
LC_ALL=C sar -A -f /var/log/sa/sa21 > ~/Desktop/sar21
sudo chmod u+x run.sh
sh run.sh &
我们应该以普通用户身份执行 run.sh 脚本,不要以 root 用户身份运行 KSAR 脚本。
现在 KSAR 将显示简单的用户友好 GUI。

现在点击数据 -> 从文本文件加载 -> 选择 ~/Desktop/sar21 文件。

现在我们的 sar 文件加载到 KSAR 中。
现在我们可以将图形导出为 pdf、jpg、png、csv、txt 格式。这里我们以pdf格式导出图表,并在导出pdf时选择所有值。

现在打开那个 pdf,它会显示所有有用的服务器资源。
在这里我们可以在服务器上加载一天的 CPU。

这是一天的内存使用情况

这样我们就可以很容易地为日常监控任务生成 CPU、内存、处理器、I/O、交换、套接字和许多其他有用的系统资源图。
第 3 部分:监控脚本
KSAR GUI 非常人性化。但该脚本将更有效地生成每日 KSAR 图并节省时间。
在这一部分中,我们将创建两个脚本。
第一个脚本将每天生成一个图表。
vi sar_script.sh
#!/bin/bash
i=`date --date="1 days ago" +%d`
LC_ALL=C sar -A -f /var/log/sa/sa$i > /home/admin/sar_report/sardaily_report$i
cd /home/soham/Downloads/kSar-5.0.6/
java -jar kSar.jar -input /home/admin/sar_report/sardaily_report$i -outputPDF /home/admin/sar_report/sardaily$(date --date="1 days ago" +%b)$i.pdf
echo "Ksar graph successfully generated"
sudo chmod u+x sar_script.sh
以上脚本将生成单日系统资源报告。我们可以在 cronjob 中设置这个脚本来自动生成 pdf 格式的 sar 图。
crontab -e
* 10 * * * /bin/sh /home/admin/script/sar_script.sh
此 cronjob 在上午 10 点从 sar 值生成每日 pdf 图。
接下来,我们将生成整个月的 sar 统计报告。
#!/bin/bash
function sar_value(){
#This is set for 31 possible days.
for i in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31; do
LC_ALL=C sar -A -f /var/log/sa/sa$i >> /home/admin/sar_report/sarmonthly$(date --date="1 days ago" +%b).txt
done
}
Function for script
sar_value
现在我们将该文本文件作为生成 pdf 图形的输入。
java -jar kSar.jar -input /home/admin/sar_report/sarmonthly$(date --date="1 days ago" +%b).txt -outputPDF /home/admin/sar_report/sar_monthly.pdf
这将在一个 pdf 文件中生成整个月的报告。
我们可以设置 cron 来自动生成报告,如上所示。如果我们想要从服务器到本地 pc 的直接 kSar 图形报告,那么我们可以在服务器和本地 pc 之间设置无密码 ssh,并通过在上面的脚本中添加 rsync 来设置自动化。
这样我们就可以使用非常强大的 sar 实用程序非常有效地进行系统日常监控任务。