Process accounting
1 . 패키지 설치 확인
# rpm –qa | grep –I acct
2. accounting 실행
# service psacct start
3 . 모든 사용자 계정명령어 자동입력
# accton /var/account/pacct
프로세스 통계용 소프트웨어는 수행된 모든 명령들을 디폴트로 /var/account/pacct에 저장한다.
프로세스 어카운팅
# rpm –qf | /sbin/accton
(psacct-6.3.2-24
# rpm –ql psacct
ac 명령어 사용
# ac –d
# ac –p
sa를 이용해 보고서 작성
# sa
로그 서버 만들기
대상 서버 (대상서버설정)
# vi /etc/hosts
192.168.46.100 loghost
#vi /etc/syslog.conf
*.info;mal.none;news.none;authpriv.none;cron.none @loghost
Page 744의 설정처럼 전부 변경, 설정 예 중 하나를 설정 하면 됨
# /etc/init.d/syslog restart
로그 서버 설정 법(log server)
# vi /etc/hosts
127.0.0.1 localhost. Localdomain localhost
192.168.40.46 loghost
192.168.40.45 web1
192.168.40.40 web2
# ps –ef | grep syslogd
# pkill -9 syslogd
# ps –ef | grep syslogd
# /sbin/syslogd –r –m 0
# vi /etc/sysconfig/syslog
SYSLOGD_OPTIONS= “-r –m 0”
-r 옵션은 리모트 로그를 받겠다는 의미
로그서버에서 모니터링
# tail –f /var/log/messages
web1, 대상 서버들에서 로그남기기
* 일부러 로그인 실패하기
* 자기 자신에게 root 로그인 실패해 보기
Tcp wrapper 설정
l Xinetd 서비스는 기본적으로 tcp wrapper 의 설정을 적용받는다.
l 설정 파일만 수정해 주면 됨
l /etc/hosts.deny
l /etc/hosts.allow
TCP Wrapper 란?
인터넷 상에서의 접속은 대부분 TCP 프로토콜을 이용하여 이루어지게 됩니다.
이러한 TCP 접속에 대해 Wrap를 씌워 서버로 접근하는 불필요한(?) 접속에 대해 적절한 제한을 가해주는 것이 바로 TCP Wrapper입니다.
TCP Wrapper는 그 특성상 서비스(데몬)별 및 IP별로 구분하여 설정할 수 있으며, “접속 거부”와 “접속 허용”을 적절히 제어함으로써 그 효과를 볼 수 있습니다.
① 접속 거부 : /etc/hosts.deny
TCP Wrapper에서 접속 거부를 설정하는 곳입니다.
여기에 설정된 주소들은 모두 접속이 거부됩니다.
② 접속 허용 : /etc/hosts.allow
TCP Wrapper에서 접속 허용을 설정하는 곳입니다.
여기에 설정된 주소들은 모두 접속이 허용됩니다.
/etc/hosts.deny
# vi /etc/hosts.deny
all:all ->모두 제한 ( 서비스: 사용자IP)
# telnet localhost ->모두 제한을 걸어 두었으므로 텔넷으로 접속이 되지 않는다
/etc/hosts.allow
# vi /etc/hosts.allow
in.telnetd : 192.168.40.46 -> 특정IP만 텔넷을 허용하겠다
sshd : all -> sshd 서비스는 모두 허용하겠다.
서비스명 : 허용IP
서비스명 : 허용 네트웍 (192.168.40.) ->네트웍IP 적용시 마지막에 꼭점을 찍을 것
서비스명 : all -> (전부허용)
deny 모두 닫아주고 난뒤에 allow로 특정IP, 네트웍만을 열어주기위해서 사용.
한마디로 보안을 위해서 제한을 걸어두는 것이다 .
관련 명령어
출력내용 끝의 접미사 구분
sa와 관련한 옵션
들은 프린트물을 참조하시오 ^^
스크립트 작성 실습
* 스크립트 파일명: sa.ksh
* 생성될 리포트 파일 명은 날짜가 파일명에 들어가도록 만들기
* 하루간 기록을 파일에 남기기
* 전체 기록을 파일에 남기기
* 사용자 기록을 파일에 남기기
* 현재 통계 기록을 병합하기
* 스크립트가 하루에 한번 새벽 2시에 실행하도록 crom 에 등록하기
/root/sa.ksh
# vi /root/sa.ksh
#!기록할 파일명
file_name=’date +%Y%m%d’
#file_name=’date +%Y%m%d-%H%M%S’ ->시분초까지 기록할 경우
#sa 프로그램경로
sa=”/usr/sbin/sa”
#기록할 디렉토리명
recorddir=/var/log/acct
#기록할 디렉토리가 없을 경우 디렉토리 생성
if [ ! –d $recorddir ] ; then
mkdir $recorddir
fi
# 디렉토리/파일명 지정
pathname=$recorddir/$file_name
######### 파일 기록 ###########
#날짜 기록 년월일
date =%Y/%m/%d > $pathname
#하루간 기록(cron을 매일 돌릴 경우)
echo “================================” >> $pathname
echo “Day’s Activity” >> $pathname
echo “================================” >> $pathname
$sa –I >> $pathname
#전체기록
echo “================================” >> $pathname
echo “Total’s Activity” >> $pathname
echo “================================” >> $pathname
$sa >> $pathname
# 사용자 기록
echo “================================” >> $pathname
echo “User Activity” >> $pathname
echo “================================” >> $pathname
$sa –m >> $pathname
#현재의 통계 기록을 savacct파일에 병합하기
#sa –s
시스템 모니터링 1
l 시스템의 성능은 여러 가지 프로그램의 요청에 효율적으로 조정하여 사용하는가에 달려 있다
l 가장 중요한 시스템 자원
n cpu
n 메모리
n I/O
n 네트웍
시스템 모니터링 분야와 관련 프로그램
시스템 모니터링 프로그램
분야 | 모니터링 프로그램 |
CPU | Top, ps, uptime, vmstat, pstree, iostat, sar |
메모리 | Free, vmstat, sar |
디스크 I/O | Df, du, quota, iostat, sar |
네트워크 | |
파일(소켓포함) | Lsof |
1. 시스템이 정상적으로 동작하고 있을 때 모니터링 하기
2. 주기 적인 점검 필수
3. 자동화 노력이 필요함
프로세스 상태
프린트물 참조 하기 . ^^
ps –aux | more 에 대한 기술
l 프로세스 상태에서 D는 인터럽트가 불가능한 sleep 상태로 page fault등을 의미하며 page fault 등을 통해 I/Ownd인 상태를 나타낸다.
l W는 memory에 상주하는 페이지가 없다는 것을 의미하며 프로세스가 swapout된 상태를 나타낸다.
Free
# free
cached total dsed free shared buffed cached
Menm: 386008 375153 10852 0 57912 139220
-/+buffers/cache; 160 204987
Swap: 2096472 160 2096312
문제 : 현재 여유가 있는 메모리 양은 ?
버퍼캐쉬
l 디스크를 읽는 일은 메모리 보다 느리다.
l 디스크의 동일 짧은 영역을 일은 빈번하다
l ls 명령어를 모든 사용자들이 얼마나 자주 사용할지 생각해 보자
l 디스크로부터 한번 읽어 들인 정보를 메모리에 상당시간 보관한다면 읽을 때만 시간이 소용 될 뿐 속도가 전반적으로 빨라질 것이다.
l 디스크 버퍼링 (disk buffering) 이라한다.
l 이런 목적으로 쓰이는 메모리를 버퍼 캐쉬
(buffer cashe)
0