Questo tutorial si concentra sull'installazione e la configurazione delle potenti utility sar e ksar su CentOS, Debian e Ubuntu e mostra come creare automaticamente report PDF utilizzando un semplice script di shell per un facile monitoraggio quotidiano dell'utilizzo delle risorse del server.
Parte 1:installazione del software di monitoraggio SAR
SAR significa rapporti sull'attività del sistema. SAR è lo strumento di monitoraggio del sistema leggero e in tempo reale. Può fornire il rapporto sull'utilizzo delle risorse del server secondo il nostro requisito. Fornisce output su un terminale per impostazione predefinita e memorizza anche le informazioni giornaliere, quindi sarà un'utilità molto utile e potente per gli amministratori di sistema.
SAR può essere installato in qualsiasi versione di Linux, fa parte dei pacchetti sysstat.
Installa e configura SAR
Per Debian/Ubuntu
# sudo apt-get install sysstat
Per RedHat/CentOS
# sudo yum install sysstat
Installa l'ultimo sysstat dal sorgente.
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
Se installi sar dal sorgente, verrà installato systat in /usr/local/bin/
Dopo l'installazione verificare la versione SAR
#[email protected]:~$ sar -V
sysstat version 11.2.0
Dopodiché assicurati di verificare che la raccolta dei dati SAR sia abilitata.
In Ubuntu
#sudo vi /etc/default/sysstat
ENABLED="true"
quindi riavvia il servizio sar e abilitalo all'avvio del sistema.
# systemctl start sysstat
# systemctl enable sysstat
Ora controlla che sar funzioni correttamente nel sistema eseguendo il comando seguente. Qui 2 secondi di intervallo di tempo e 4 volte in uscita.
[[email protected] ~]$ 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
Possiamo semplicemente eseguire il comando sar per controllare l'utilizzo delle risorse.
[[email protected] 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
Per impostazione predefinita, l'intervallo sar è impostato su ogni 10 minuti. Possiamo modificare questo valore modificando i seguenti file.
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
Nel file sopra, sa1 è lo script di shell per la raccolta e la memorizzazione di dati binari nel file di dati giornalieri dell'attività del sistema e sa2 è lo script di shell che scrive il rapporto giornaliero in /var/log/sa alla fine della giornata (23:53 sopra cronjob).
Parte 2:installazione di KSAR
KSAR genera un grafico dal valore SAR che è molto facile da analizzare. KSAR è basato su JAVA, quindi dobbiamo avere JDK 8 o superiore installato sul nostro sistema. KSAR non fa parte del repository di sistema, dobbiamo scaricare KSAR manualmente.
Innanzitutto, installa java su redhat/centos
sudo yum install java-1.8.0-OpenJDK.x86_64
Ora scarica e installa Ksar sul sistema.
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/
Ora raccogli le statistiche del comando sar usando il seguente comando.
LC_ALL=C sar -A -f /var/log/sa/sa21 > ~/Desktop/sar21
sudo chmod u+x run.sh
sh run.sh &
dovremmo eseguire lo script run.sh come utente normale, non eseguire lo script KSAR come utente root.
ora KSAR mostrerà una semplice GUI intuitiva.
Ora fai clic su Dati -> Carica da file di testo -> seleziona ~/Desktop/sar21 file .
Ora il nostro file sar è stato caricato in KSAR.
Ora possiamo esportare il grafico in formato pdf, jpg, png, csv, txt. Qui esportiamo il grafico in pdf e selezioniamo tutti i valori durante l'esportazione in pdf.
Ora apri quel pdf, mostrerà tutte le risorse utili del server.
Qui possiamo caricare la CPU per un giorno sul server.
Questo è l'utilizzo della memoria in un giorno
In questo modo possiamo generare facilmente grafici di CPU, memoria, processore, I/O, swap, socket e molte altre utili risorse di sistema per il monitoraggio quotidiano.
Parte 3:Lo SCRIPT di monitoraggio
La GUI di KSAR è molto intuitiva. Ma lo script genererà il grafico KSAR giornaliero in modo più efficace e farà risparmiare tempo.
In questa parte creeremo due script.
Il primo script genererà un grafico per un giorno al giorno.
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
Lo script sopra genererà un rapporto sulle risorse di sistema di un giorno. Possiamo impostare questo script in cronjob per automatizzare la generazione del grafico sar in formato pdf.
crontab -e
* 10 * * * /bin/sh /home/admin/script/sar_script.sh
Questo cronjob genera un grafico pdf giornaliero dal valore sar alle 10:00.
Successivamente, genereremo un rapporto sulle statistiche sar per l'intero mese.
#!/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
Ora prendiamo quel file di testo come input per generare un grafico 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
Questo genererà il rapporto dell'intero mese in un file pdf.
Possiamo impostare cron per la generazione automatizzata del report come mostrato sopra. Se vogliamo un rapporto diretto del grafico kSar dal server al PC locale, possiamo impostare ssh senza password tra il server e il PC locale e configurare l'automazione aggiungendo rsync nello script precedente.
In questo modo possiamo utilizzare un'utilità sar molto potente in modo molto efficace per le attività di monitoraggio quotidiano del sistema.