소개

시스템 관리자로써 우리들 대부분은 시스템의 로그를 매일 확인 하게 됩니다. 만약 여러분이 10대 이상의 시스템을 가지고 있으면 이것은 정말 큰 작업입니다. 이 글은 3 가지 시스템 확인 스크립트를 제공하고 이 스크립트들은 솔라리스8,9,10 에서 이용하실 수 있습니다:

  • checkmessages 스크립트는 로그들을 확인 합니다. 만약 잘못된 점이 발견 되면 스크립트는 시스템 관리자에게 e-메일을 보냅니다. 스크립트는 cron 을 이용해서 일주기로 실행되도록 스케줄 되어야 합니다.

    checkmessages 스크립트의 소스코드 를 다운로드 하시기 바랍니다. 파일의 확장자를 .txt 대신에 .sh 로 변경해 주시기 바랍니다.

  • checkpatch 스크립트 (2008년 2월에 수정됨) 는 시스템에 적용할 수 있는 새로운 패치를 확인해 줍니다. 필자는 이것 또한 일주기로 실행할 것을 권장합니다. checkpatch 스크립트는 커뮤니티의 무료 툴인 Patch Check Advanced (PCA) 툴을 이용 합니다.

    checkpatch 스크립트의 소스코드 를 다운로드 하시기 바랍니다. 파일의 확장자를 .txt 대신에 .sh 로 변경해 주시기 바랍니다.

  • checkdisk 스크립트는 예측 가능한 디스크 오류를 확인합니다. 이것 또한 일주기로 실행되어야 합니다.

    checkdisk 스크립트의 소스코드 를 다운로드 하시기 바랍니다. 파일의 확장자를 .txt 대신에 .sh 로 변경해 주시기 바랍니다.


checkmessages
스크립트

syslog 에 의해 생성되는 각각의 메세지에서 5번째와 10번째 문자는 메세지가 수신된 날짜를 나타 내며 이것은 <mmm dd> 의 포맷으로, 예를 들어 Nov 13 의 형태가 됩니다. 그러므로 다음의 스크립트 라인은 오직 오늘 날짜의 메세지 만을 확인 하고 다른 날짜의 메세지는 확인하지 않습니다.

grep \"^`date|cut -c5-10`\" /var/adm/messages

스크립트는 severity 레벨이 "warning" 이상인 메세지를 확인 합니다. 몇몇 메세지들은 잘 알려진 문제이므로 무시될 수 있습니다. 예를 들어 솔라리스 볼륨 매니저를 사용하는 시스템에서 forceload of misc/md_trans failed 라는 메세지가 자주 나타 납니다. 다음의 스크립트 라인이 이러한 메세지와 No proxy found 메세지를 무시하도록 합니다. 여러분은 필요에 따라 다른 메세지들을 추가시키실 수 있습니다.

FILTER="| grep -v \"forceload of misc/md_trans failed\""
FILTER="$FILTER | grep -v \"No proxy found\""

if eval "$GREP" > /tmp/seriousmessages.txt 라인에서 스크립트의 eval 커맨드는 꼭 필요 합니다. 날짜가 한자리 수일 때, 예를 들어 Nov. 9 일때 $GREP 출력결과는 다음과 같을 것입니다:

grep "^Nov 9" /var/adm/messages

이 출력결과는 오직 "Nov" 와 "9," 사이에 하나의 공간만 존재 합니다. 그러나 /var/adm/messages 에서는 두개의 공간이 존재 합니다. 이것은 어떠한 메세지도 찾아지지 않을 것임을 뜻합니다. eval 을 추가해서 이 문제를 해결해 보도록 하겠습니다.

최종적으로 여러분은 cron 을 이용해서 스크립트가 밤에 돌 수 있도록 합니다. 예를 들어 아래는 스크립트가 자정이 되기 1분전에 실행 하도록 스케줄링 합니다:

59 23 * * * /home/<username>/bin/checkmessages

아마도 여러분의 시스템은 메세지들 다른 파일에 로깅 할 수도 있습니다. 그렇다면 /etc/syslog.conf 파일을 확인해서 스크립트를 여러분의 필요에 맞게 고쳐주어야 합니다.


checkpatch
스크립트

checkpatch 스크립트는 Martin Paul 의 Patch Check Advanced (PCA) 툴: http://www.par.univie.ac.at/solaris/pca/ 을 이용합니다. 여러분은 여기서 무료로 다운로드 하실 수 있습니다.

몇몇 새로운 패치들은 여러분의 시스템과 관련이 없을 수도 있습니다. 만약 다시한번 알림을 보길 원치 않는다면 스크립트에 아래와 같은 라인을 입력하면 됩니다:

IGNORE="$IGNORE --ignore 112925"
IGNORE="$IGNORE --ignore 112960"

시스템을 패치한 다음에 여러분은 스크립트에 해당 라인을 지워야 새로운 패치가 나왔을때 공지를 다시 받으실 수 있습니다.

checkpatch 스크립트는 보안 패치를 검사 합니다. 그러나 여러분은 스크립트를 missings 에서 missing 으로 수정해서 사용 가능한 전체 패치에 대한 정보를 얻으실 수도 있습니다.

다시한번 말해서 이 스크립트는 일주기로 실행 하시기 바랍니다.


checkdisk
스크립트

비록 모든 디스크 오류가 /var/adm/messages 에 저장되지만 여전히 checkdisk 스크립트를 이용해서 디스크 오류 예측 메세지를 살펴볼 필요가 있습니다. 이전에 언급했던 대로 일주기로 실행 하시기 바랍니다.


이 글의 영문 원본은
Scripts for Automating System Checks
에서 보실 수 있습니다.

2008/06/16 11:42 2008/06/16 11:42

TRACKBACK :: http://blog.sdnkorea.com/blog/trackback/602

댓글을 달아 주세요

[로그인][오픈아이디란?]

◀ Prev 1  ... 62 63 64 65 66 67 68 69 70  ... 624  Next ▶