Installeer en configureer sar en ksar voor dagelijkse monitoring op Linux en genereer PDF rapporten

Deze handleiding richt zich op de installatie en configuratie van de krachtige programma’s sar en ksar op CentOS, Debian en Ubuntu en laat zien hoe je met een eenvoudig shell script automatisch PDF rapporten kunt maken voor eenvoudige dagelijkse bewaking van het gebruik van server bronnen.

Deel 1: SAR bewakingssoftware installeren

SAR betekent systeem activiteiten rapporten. SAR is het lichtgewicht, real-time systeembewakingsprogramma. Het kan een rapport geven over het gebruik van de hulpbronnen van de server zoals we dat wensen. Het geeft standaard uitvoer op een terminal en het bewaart ook informatie op dagbasis, zodat het een erg handig en krachtig hulpmiddel is voor systeembeheerders.

SAR kan in alle Linux smaken geïnstalleerd worden, het is een onderdeel van de sysstat pakketten.

Installeer en stel SAR in

Voor Debian/Ubuntu

# sudo apt-get install sysstat

Voor RedHat/CentOS

# sudo yum install sysstat

Installeer de nieuwste sysstat vanaf de broncode.

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

Als je sar vanaf de bron installeert, dan zal dat systat onder /usr/local/bin/ installeren.

Controleer na de installatie de SAR versie

#sysadmin@Sysadmin:~$ sar -V
 sysstat version 11.2.0

Controleer daarna of SAR gegevensverzameling is ingeschakeld.

In Ubuntu

#sudo vi /etc/default/sysstat 
ENABLED="true"

start dan de sar service opnieuw op en schakel hem in bij het opstarten van het systeem.

# systemctl start sysstat
# systemctl enable sysstat

Controleer nu of sar goed werkt in het systeem door het volgende commando uit te voeren. Hier 2 seconden tijdsinterval en 4 keer uitvoer.

[system@redhat ~]$ 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

We kunnen eenvoudig sar commando uitvoeren om het gebruik van hulpbronnen te controleren.

[root@redhat 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

Standaard is sar interval ingesteld op elke 10 minuten. We kunnen deze waarde wijzigen door de volgende bestanden te bewerken.

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

In bovenstaand bestand is sa1 het shell script voor het verzamelen en opslaan van binaire gegevens in het dagelijkse bestand met systeemactiviteit en sa2 is het shell script dat aan het eind van de dag (23:53 in bovenstaande cronjob) een dagelijks rapport in /var/log/sa schrijft.

Deel 2: KSAR installeren

KSAR genereert een grafiek van de SAR waarde die heel gemakkelijk te analyseren is. KSAR is gebaseerd op JAVA, dus we moeten JDK 8 of hoger op ons systeem geïnstalleerd hebben. KSAR in geen deel van de systeem repository we moeten KSAR handmatig downloaden.

Installeer eerst java op redhat/centos

sudo yum install java-1.8.0-OpenJDK.x86_64

Download en installeer nu KSar op het systeem.

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/

Verzamel nu sar commando statistieken met het volgende commando.

LC_ALL=C sar -A -f /var/log/sa/sa21 > ~/Desktop/sar21
sudo chmod u+x run.sh
sh run.sh &

we moeten run.sh script uitvoeren als een gewone gebruiker, voer KSAR script niet uit als root gebruiker.

Nu zal KSAR een eenvoudige gebruikersvriendelijke GUI tonen.

Ksar

Klik nu op Gegevens -> Laad uit tekstbestand -> kies ~/Desktop/sar21 bestand .

Laad bestand

Nu is ons sar bestand in KSAR geladen.

Nu kunnen we de grafiek exporteren in pdf, jpg, png, csv, txt formaat. Hier exporteren we de grafiek in pdf en selecteren alle waarde tijdens het exporteren van pdf.

PDF uitvoer

Open nu die pdf, het zal alle nuttige server resources tonen.

Hier kunnen we CPU belasting over een dag op de server zien.

CPU belasting bewaken

Dit is het geheugengebruik over een dag

Grafiek geheugengebruik

Op deze manier kunnen we heel gemakkelijk CPU, geheugen, processor, I/O, swap, sockets en vele andere nuttige systeembronnen grafieken genereren voor de dagelijkse bewakingstaak.

Deel 3: De monitoring SCRIPT

KSAR GUI is erg gebruikersvriendelijk. Maar het script zal de dagelijkse KSAR grafiek effectiever genereren en tijd besparen.

In dit deel zullen we twee scripts maken.

Het eerste script zal dagelijks een grafiek voor een dag genereren.

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

Bovenstaand script zal een enkele dag systeembronnen rapport genereren. We kunnen dit script in cronjob zetten om het genereren van sar grafiek in pdf formaat te automatiseren.

crontab -e
* 10 * * * /bin/sh /home/admin/script/sar_script.sh

Deze cronjob genereert dagelijks pdf grafiek uit sar waarde om 10 uur ’s morgens.

Vervolgens genereren we sar statistiekrapport voor de hele maand.

#!/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

Nu nemen we dat tekstbestand als invoer voor het genereren van een pdf grafiek.

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

Dit zal het hele maandrapport in één pdf bestand genereren.

We kunnen cron instellen voor het automatisch genereren van het rapport zoals hierboven getoond. Als we direct kSar grafiekrapport van server naar lokale pc willen, kunnen we wachtwoordloze ssh instellen tussen server en lokale pc en automatisering instellen door rsync aan het bovenstaande script toe te voegen.

Op deze manier kunnen we het zeer krachtige sar hulpprogramma op een zeer effectieve manier gebruiken voor de dagelijkse bewakingstaak van het systeem.