아파치 로그 파일 관리 스크립트

1.vi편집기로 아래와 같은 스크립트를 만듭니다.

[root@op root]# vi rotate.sh
#!/bin/bash
DATE=`/bin/date +%y%m%d`
/bin/cp /usr/local/apache/logs/access_log /usr/local/apache/logs/access_log.$DATE
cat /dev/null > /usr/local/apache/logs/access_log
/bin/gzip /usr/local/apache/logs/access_log.$DATE
/bin/cp /usr/local/apache/logs/error_log /usr/local/apache/logs/error_log.$DATE
cat /dev/null > /usr/local/apache/logs/error_log
/bin/gzip /usr/local/apache/logs/error_log.$DATE
위의 아파치 로그 경로는 실제 아파치 로그가 있는 경로로 설정해주면 됩니다.
예를 들어 /var/log/httpd/에 로그파일을 옮겼다면 모든 경로를
/var/log/httpd로 바꿔놓으면 됩니다.

2.다음과 같이 실행 가능한 파일로 변경 합니다.
[root@op root]# chmod 755 rotate.sh

3.위의 스크립트를 clontab에 넣어서 매일 실행하게 합니다.
[root@op root]# crontab -e
0 3 * * * /root/rotate.sh
스크립트가 있는 경로를 등록해주시면 되고 매일 3시에 돌게 되어있습니다.

4.스크립트가 실행되어 로그가 일자별로 압축되어 저장된 결과입니다.
[root@op root]# cd /usr/local/apache/logs/
[root@op logs]# ls
access_log access_log.031031.gz error_log error_log.031031.gz httpd.pid
로그체크를 할때 필요한 날짜의 로그만 압축을 풀어서 확인하시면 되겠죠?

위의 스크립트를 응용하면 아파치 로그뿐만 아니라 /var/log 아래
있는 여러 로그들을 일별로 효율적으로 관리할 수 있습니다.

//----------------------------------------------------

지울거라면
cat /dev/null > access.log
해서 파일내용 지우는게 편하겠죠..
아님 rm으로 지우고 touch로 파일을 만들던가..

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/01/30 10:58 2004/01/30 10:58
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/171

Webalizer 사용법 - 잊지마라~! combined

웹로그 분석기 Webalizer
Webalizer
Webalizer는 웹로그 분석기이다.
그렇다면 웹로그는 무엇인가?
웹로그는 웹서버가 만든 기록이다.
무엇에 대해 기록해 놓은걸까?
웹서버에 접속한 사람들이 요청한 데이터와 그에 대한 응답같은 것들이다.

웹로그는 어떤 특정형태의 규칙을 가지며 저장된다.
그렇기에 Webalizer는 그 규칙을 이용해서 유용한 정보를 찾아내 분석할 수 있다.

Webalizer는 실시간으로 정보를 업데이트하는 것이아니라 사용자가 실행해야만 정보를 업데이트하게 된다.
불편하게 왜 실행해야만 작동을 하는 것일까?
그 이유는 아주 간단하다. log를 분석하는데 많은 시스템자원이 필요하기 때문이다.
간단히 말해 서버가 부담스러워한다.
로그는 작게는 수십메가에서 수기가(분할하지 않을 경우)에 이른다.
이런 경우 한번 분석하는데는 많은 시간과 자원이 소요된다.
그렇기 때문에 일반적으로 하루에 한번 사람들의 접속이 거의 없는 시간에 분석을 시킨다.

설치
요즘 리눅스 패키지에는 Webalizer가 같이 배포되는 경우가 많다.
따라서 이미 설치된 경우는 이단계를 넘어가도록 하자.
Redhat 계열의 리눅스 시스템이라면 다음과 같은 방법으로 설치유무를 확인할 수 있다.


# rpm -qi webalizer


설치되어 있지 않다면 설치할 소스를 다운받아오자.

http://webalizer.org에서 최신버전을 다운받을 수 있다.

ftp://ftp.mrunix.net/pub/webalizer/webalizer-2.01-10-src.tgz
(위는 2003년 7월 현재 가장 최신버전이다.)

파일을 다운받아 /usr/local/src 디렉토리에 저장을 한다.
설치는 root 권한으로 하여야 한다.

# cd /usr/local/src
# tar xvzf webalizer-2.01-10-src.tgz
# cd webalizer-2.01-10



이제 configure를 해보자. 기본적으로 언어설정만 해주면 된다.
지원되는 언어는 lang 디렉토리에 존재한다.
만약 이 디렉토리에 korean 파일이 없다면 위 사이트에서 language 파일을 얻을 수 있다.

[root@ezphp lang]# ls
webalizer_lang.catalan webalizer_lang.korean
webalizer_lang.chinese webalizer_lang.latvian
webalizer_lang.croatian webalizer_lang.malay
webalizer_lang.czech webalizer_lang.norwegian
webalizer_lang.danish webalizer_lang.polish
webalizer_lang.dutch webalizer_lang.portuguese
webalizer_lang.english webalizer_lang.portuguese_brazil
webalizer_lang.estonian webalizer_lang.romanian
webalizer_lang.finnish webalizer_lang.romanian-iso-8859-2
webalizer_lang.french webalizer_lang.russian
webalizer_lang.galician webalizer_lang.serbian
webalizer_lang.german webalizer_lang.simplified_chinese
webalizer_lang.greek webalizer_lang.slovak
webalizer_lang.hungarian webalizer_lang.slovene
webalizer_lang.icelandic webalizer_lang.spanish
webalizer_lang.indonesian webalizer_lang.swedish
webalizer_lang.italian webalizer_lang.turkish
webalizer_lang.japanese webalizer_lang.ukrainian


anguage를 추가하는 옵션은 --with-language 이다.

# ./configure --with-language=korean


configure가 에러없이 성공하였다면 컴파일을 해보자.

# make
# make install


설치는 아주 간단하게 되어버렸다.
설치에 많은줄을 할애하였지만 실제로 설치부분은 위의 세줄밖에 되지 않는다.

환경 설정
Webalizer가 에러없이 잘 설치되었다면 설정파일을 수정해주어야만 사용이 가능하다.
설정파일은 /etc/webalizer.conf 이다. 한번 찾아보시라~~~~. 분명히 없을것이다! :-)
그러나 우리에겐 /etc/webalizer.conf.sample 이 있다.
이 파일은 설치시에 생긴 파일이다. 이걸 보고 설정을 하라고 친절하게 sample을 만들어주었다.
그럼 파일을 한번 열어보자.


# cp /etc/webalizer.conf.sample /etc/webalizer.conf
# vi /etc/webalizer.conf


열었더니 참으로 심오한 말들이 많이 있는거 같다.
도대체 어느 부분의 주석을 풀어줘야 하는지 어딜 고쳐야 하는지 감도 안잡힌다.
걱정마시라~.
그래서 이런 문서가 있는 것 아니겠는가? :-)

설정파일중 수정할 부분
1. 분석할 로그 파일의 위치
웹서버의 로그파일 위치를 적어주면 된다. 기본적으로는 아래의 위치에 로그가 쌓인다.


LogFile /var/log/httpd/access_log


위 경로에 로그가 없으면 어떻게 해야할까?
만약에 아파치 웹서버를 이용하고 있다면 웹서버의 설정파일을 통해 위치를 알아낼 수 있다.
아파치 설치 디렉토리의 conf/http.conf 파일에 CustomLog 부분에 적혀있다.

2. 분석 결과를 저장할 디렉토리

OutputDir /var/www/html/usage


/var/www/html 은 웹페이지가 존재하는 디렉토리이다.
따라서 http://ezphp.net/usage 와 같은 방법으로 접근 가능하다.

3. 로그 히스토리 파일 지정
로그 분석한 날짜와 시간을 기록해 둔다.

HistoryName webalizer.hist


4. 분석이 안된 최근 로그만 분석한다.

Incremental yes


5. 이미 분석한 로그의 정보를 저장

IncrementalName webalizer.current


6. 보고서에 나타날 제목

ReportTitle 사용량 통계:


7. 사이트 명

HostName ezphp.net


이제 /etc/webalizer.conf 파일의 설정이 모두 끝났다.


REFERER 정보를 보고 싶다면 아파치 설정 파일을 수정해야만 한다.

Referer 정보란?
현재 페이지를 접속하기 이전에 있었던 페이지를 말한다.
즉 야후 검색을 통해 ezphp.net 에 접속을 하였다면 Referer는 야후의 페이지 정보를 가진다.


# vi /usr/local/apache/conf/httpd.conf


위의 디렉토리는 설치방법과 버전에 따라 다르다.
위에 없을 경우 다음과 같은 방법으로 찾아보길 바란다.


# find / | grep httpd.conf


파일을 찾아서 편집기로 열었다면 CustomLog를 검색해서 찾아가 보자.


vi 편집기를 사용한다면 /CustomLog 를 통해서 찾을 수 있다.


CustomLog /var/log/httpd/access_log common


일반적으로 위와 같이 되어 있을 것이다. 아래와 같이 수정한다.

CustomLog /var/log/httpd/access_log combined


아파치 설정 파일을 수정하였으니 아파치 서버를 재시작해야한다.

# apachectl restart
또는
#/etc/init.d/httpd restart


이제 모든 설정이 끝나고 로그 분석을 시키는 일만 남았다.



버추얼 호스팅을 하는 경우
버추얼 호스팅 도메인에 해당하는 webalizer.conf 파일을 생성해 주면 된다.
각도메인별 LogFile,OutputDir,HostName 이 세항목만 수정하여 새 파일로 저장한다.
예를들면 webalizer-www.ezphp.net.conf , webalizer-docs.ezphp.net.conf

Webalizer 실행
# /usr/local/bin/webalizer -c /etc/webalizer.conf
또는
# /usr/bin/webalizer -c /etc/webalizer.conf


위와 같은 방법으로 Webalizer를 실행 할 수 있다.
webalizer 파일의 위치는 위의 설치방법을 통해 했을 경우이고 일반적으로 /usr/bin 디렉토리에 존재한다.

버추얼 호스팅으로 설정 파일이 여러개일 경우엔 각각 실행해 주면된다.


# /usr/local/bin/webalizer -c /etc/webalizer-www.ezphp.net.conf
# /usr/local/bin/webalizer -c /etc/webalizer-docs.ezphp.net.conf

크론탭에 등록하기
매일같이 위처럼 Webalizer를 실행하는 것은 얼마나 번거로운일인지 모른다.
그것도 사람들이 접속하지 않는 한밤중에 하는 것은 올빼미족을 제외하곤 힘든일이다.:-)

크론탭을 이용해 지정시간에 한번 실행하도록 만들어보자.

# cat > /etc/cron.daily/webalizer
/usr/local/bin/webalizer -c /etc/webalizer.conf


Ctrl+z 를 눌러 저장하고 나오자.
실행할 수 있게 실행권한을 준다.

# chmod 755 /etc/cron.daily/webalizer

크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/01/30 10:52 2004/01/30 10:52
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/170

친구의 비밀

당신에게 털어 놓은
친구의 비밀은 비단 당신만의 것이 아닙니다.
그것은 친구의 소중한 보물이고, 나아가
당신에게 보여준 믿음의 증거물입니다.
그리고 둘의 관계를 이어주는
다리가 되어줍니다.



- 이삭의 《나랑 닮은 친구에게 주고 싶은 책》 중에서 -



* 친구의 비밀은 양날의 칼과 같습니다.
오랜 우정을 한 순간에 깨뜨려버리기도 하고,
믿음과 우정의 깊이를 더해 주기도 합니다.
무덤까지 갖고 갈 친구의 비밀을 지켜주지 못하면
무덤도 가기 전에 친구도 죽고
자기도 죽습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License
이올린에 북마크하기

Posted by 홍반장

2004/01/30 09:13 2004/01/30 09:13
Response
No Trackback , No Comment
RSS :
http://tcbs17.cafe24.com/tc/rss/response/561


블로그 이미지

- 홍반장

Archives

Recent Trackbacks

Calendar

«   2004/01   »
        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
Statistics Graph

Site Stats

Total hits:
187742
Today:
542
Yesterday:
669