IT/Linux

Debian/Ubuntu Sar 설치 과정 및 오류 해결

nofence 2016. 11. 23. 14:51

시스템 리소스 상태 모니터링 툴인 Sar가 Debian에는 기본적으로 내장되어 있지 않은 걸 알게 됐다. 바로 구글링을 통해 Sar 설치에 돌입했다. 



root@rasberrypi:~# apt-get -y install sysstat

Reading package lists... Done

Building dependency tree

Reading state information... Done

The following extra packages will be installed:

  libsensors4

Suggested packages:

  lm-sensors isag

The following NEW packages will be installed:

  libsensors4 sysstat

0 upgraded, 2 newly installed, 0 to remove and 6 not upgraded.

Need to get 0 B/310 kB of archives.

After this operation, 984 kB of additional disk space will be used.

Preconfiguring packages ...

Selecting previously unselected package libsensors4:armhf.

(Reading database ... 102860 files and directories currently installed.)

Preparing to unpack .../libsensors4_1%3a3.3.5-2_armhf.deb ...

Unpacking libsensors4:armhf (1:3.3.5-2) ...

Selecting previously unselected package sysstat.

Preparing to unpack .../sysstat_11.0.1-1_armhf.deb ...

Unpacking sysstat (11.0.1-1) ...

Processing triggers for man-db (2.7.0.2-5) ...

Processing triggers for systemd (215-17+deb8u5) ...

Setting up libsensors4:armhf (1:3.3.5-2) ...

Setting up sysstat (11.0.1-1) ...


Creating config file /etc/default/sysstat with new version

update-alternatives: using /usr/bin/sar.sysstat to provide /usr/bin/sar (sar) in auto mode

Processing triggers for libc-bin (2.19-18+deb8u6) ...

Processing triggers for systemd (215-17+deb8u5) ...



설치를 완료 후 Sar 명령어를 실행해 보았으나 아래와 같은 오류가 발생하였다.


root@rasberrypi:~# sar

Cannot open /var/log/sysstat/sa23: No such file or directory

Please check if data collecting is enabled


확인 결과 sysstat관련하여 환경 설정 값 수정을 통해 실행이 가능하다. 


root@rasberrypi:~# cat /etc/default/sysstat

#

# Default settings for /etc/init.d/sysstat, /etc/cron.d/sysstat

# and /etc/cron.daily/sysstat files

#


# Should sadc collect system activity informations? Valid values

# are "true" and "false". Please do not put other values, they

# will be overwritten by debconf!


ENABLED="false"


위와 같이 sar 실행을 위한 관련 파일인 /etc/default/sysstat 파일의 ENABLE 값이 "false"로 되어 있기 때문에 오류가 발생한 상황이고, 해당 값을 "true"로 변경하면 sar는 정상적으로 실행 된다.

또한 해당 파일을 수정하는 것 이외에도 다른 방법이 존재하는데, 다음과 같은 명령행을 통해 실행 되는 GUI 환경에서 "yes"로 상태를 변경 후에, 자동으로 /ect/default/sysstat 값이 변경 되어 sar 실행이 정상적으로 이루어진다.


root@rasberrypi:~# dpkg-reconfigure sysstat







Replacing config file /etc/default/sysstat with new version



위GUI 환경에서 "yes"로 상태가 변경 되면 위와 같은 결과 메시지가 출력 된다.

다음과 같이 /etc/default/sysstat의 ENABLE 값을 확인해 보면 수정 된 값으로 적용 된 걸 알 수 있다.

root@rasberrypi:~# cat /etc/default/sysstat | egrep -v "(^#|^$)"
ENABLED="true"


ENABLE 값이 "true"로 변경 되면 sysstat과 관련 된 cron 테이블이 등록 된다. 아래와 같이 확인 가능하다.

root@rasberrypi:~# ls /etc/cron.d/ | grep sysstat

sysstat

root@rasberrypi:~# ls /etc/cron.daily/ | grep sysstat
sysstat

sysstat과 관련 된 cron 테이블은 불필요하므로 제거하도록 하자.

root@rasberrypi:~# rm -rf /etc/cron.daily/sysstat
root@rasberrypi:~# rm -rf /etc/cron.d

또한 systat 서비스가 실행 되고 있음이 아래와 같이 확인 되므로 서비스를 중지하고 부팅 시 실행되지 않도록 disable 한다.

root@rasberrypi:/# service sysstat status
● sysstat.service - LSB: Start/stop sysstat's sadc
   Loaded: loaded (/etc/init.d/sysstat)
   Active: active (exited) since Fri 2016-11-25 20:56:40 KST; 2 days ago
  Process: 547 ExecStart=/etc/init.d/sysstat start (code=exited, status=0/SUCCESS)

Nov 25 20:56:39 rasberrypi sysstat[547]: Starting the system activity data c....
Nov 25 20:56:40 rasberrypi systemd[1]: Started LSB: Start/stop sysstat's sadc.
Hint: Some lines were ellipsized, use -l to show in full.

root@rasberrypi:/# service sysstat stop

root@rasberrypi:/# systemctl disable sysstat
Synchronizing state for sysstat.service with sysvinit using update-rc.d...
Executing /usr/sbin/update-rc.d sysstat defaults
Executing /usr/sbin/update-rc.d sysstat disable
insserv: warning: current start runlevel(s) (empty) of script `sysstat' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (2 3 4 5) of script `sysstat' overrides LSB defaults (empty).


sysstat과 관련 된 런레벨 상태를 확인하면 다음과 같다.

root@rasberrypi:/# ls /etc/rc*.d | grep sysstat
K01sysstat
K01sysstat
K01sysstat
K01sysstat


아래와 같이 sar 명령행이 정상적으로 실행 되는 걸 확인할 수 있다.

root@rasberrypi:/dev# sar -u 2 5
Linux 4.4.32-v7+ (rasberrypi)   23/11/16        _armv7l_        (4 CPU)

21:40:18        CPU     %user     %nice   %system   %iowait    %steal     %idle
21:40:20        all      0.13      0.00      0.00      0.00      0.00     99.87
21:40:22        all      0.12      0.00      0.12      0.00      0.00     99.75
21:40:24        all      0.25      0.00      0.12      0.00      0.00     99.62
21:40:26        all      0.00      0.00      0.13      0.00      0.00     99.87
21:40:28        all      0.00      0.00      0.13      0.00      0.00     99.87
Average:        all      0.10      0.00      0.10      0.00      0.00     99.80




참고 URL :

https://snippets.aktagon.com/snippets/265-how-to-install-sar-on-debian

https://danielgibbs.co.uk/2013/02/sysstat-no-such-file-or-directory/