웹사이트 검색

Linux에서 일일 모니터링을 위해 sar 및 ksar를 설치 및 구성하고 PDF 보고서를 생성합니다.


이 페이지에서

  1. 1부: SAR 모니터링 소프트웨어 설치\n
  2. 파트 2: KSAR 설치
  3. 3부: 모니터링 스크립트

이 튜토리얼은 CentOS, Debian 및 Ubuntu에서 강력한 유틸리티 sar 및 ksar의 설치 및 구성에 중점을 두고 간단한 셸 스크립트를 사용하여 서버 리소스 사용량을 매일 쉽게 모니터링하여 PDF 보고서를 자동으로 생성하는 방법을 보여줍니다.

파트 1: SAR 모니터링 소프트웨어 설치

SAR은 시스템 활동 보고서를 의미합니다. SAR은 가벼운 실시간 시스템 모니터링 도구입니다. 그것은 우리의 요구 사항에 따라 서버 자원 사용 보고서를 제공할 수 있습니다. 기본적으로 터미널에 출력을 제공하고 정보를 하루 단위로 저장하므로 시스템 관리자에게 매우 편리하고 강력한 유틸리티가 될 것입니다.

SAR은 모든 Linux 버전에 설치할 수 있으며 sysstat 패키지의 일부입니다.

SAR 설치 및 구성

데비안/우분투용

# 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/ 아래에 sysstat가 설치됩니다.

설치 후 SAR 버전 확인

#:~$ sar -V
 sysstat version 11.2.0

그런 다음 SAR 데이터 수집이 활성화되었는지 확인하십시오.

우분투에서

#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은 바이너리 데이터를 수집하여 시스템 활동 일별 데이터 파일에 저장하는 쉘 스크립트이고 sa2는 하루가 끝날 때(23:53 위의 23:53) /var/log/sa에 일별 보고서를 작성하는 쉘 스크립트입니다. 크론잡).

파트 2: KSAR 설치

KSAR은 분석하기 매우 쉬운 SAR 값으로부터 그래프를 생성합니다. KSAR은 JAVA를 기반으로 하므로 시스템에 JDK 8 이상이 설치되어 있어야 합니다. KSAR은 시스템 리포지토리의 일부가 아니므로 KSAR을 수동으로 다운로드해야 합니다.

먼저 redhat/centos에 자바를 설치합니다.

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 스크립트를 실행해야 합니다. 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

위의 스크립트는 일일 시스템 리소스 보고서를 생성합니다. pdf 형식의 sar 그래프 생성을 자동화하기 위해 cronjob에서 이 스크립트를 설정할 수 있습니다.

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 그래프 보고를 원하는 경우 위 스크립트에 rsync를 추가하여 서버와 로컬 PC 간에 암호 없는 ssh를 설정하고 자동화를 설정할 수 있습니다.

이렇게 하면 시스템 일일 모니터링 작업에 매우 강력한 sar 유틸리티를 매우 효과적으로 사용할 수 있습니다.