김정균 wrote..
: script 를 하나 만드셔야 할 것 같은데요.
:
: 김성환 wrote..
: : root나 디렉토리 및에서du -h하면 모든 폴더의 용량이 다 나오잖아요
: : 근데한50M이상짜리 용량만 볼 수 있는 명령어는 없습니까...
: : /usr밑에 용량이 3G나 되어서요!
웹로그 분석기 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 파일을 얻을 수 있다.
설치는 아주 간단하게 되어버렸다.
설치에 많은줄을 할애하였지만 실제로 설치부분은 위의 세줄밖에 되지 않는다.
환경 설정
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 디렉토리에 존재한다.
기존에 존재하는 계정정보를 삭제한다.
즉, /etc/passwd내의 계정내용, /etc/shadow내의 패스워드 내용, /etc/group파일내의 그룹정보내용, 그리고 -r옵션을 사용하여 계정을 삭제하면 /var/spool/mail/디렉토리에 있는 메일파일과 홈디렉토리의 내용모두를 삭제한다.
사용형식
userdel [-r] login
userdel은 -r옵션을 사용했을 때와 사용하지 않았을 때의 차이점을 분명히 알고 있어야한다.
>
> 2001.11.22 18:49:13에 박상우님께서 쓰신 글입니다.
>
> 아~ 그런방법이 있었군요...
> 그러면 /etc/passwd를 일일이 수정해야하는 번거러움이..
> 대부분의 계정을 다 막고 극히 몇몇계정만 허용하기 위한것이라서요..
> 반대상황이라면 좋은방법입니다만..
> 그래서 방금 여기저기 뒤지다가 적수네동네에서 알아냈습니다.
>
> auth required /lib/security/pam_listfile.so item=user sense=allow file
> =/etc/telnetusers onerr=succeed
>
> 위의 내용을 /etc/pam.d/login 파일에 추가하고
> /etc/telnetusers 라는 파일(저는 없어서 새로 만들었습니다)에 텔넷 접속을 허용할 계정들을 적어주면 됩니다.
>
> 이렇게 하니까 간단히 해결이 되네요..
> 하하~ 제가 질문하고 제가 답글을 달게되네요,..
>
>
> >
> > 2001.11.22 18:07:11에 박희수님께서 쓰신 글입니다.
> >
> > 물론 가능(?)합니다.
> >
> > /etc/passwd 파일을 열어 보시면 각 계정마다 어떠한 쉘을 사용하는지 명시가 되어 있습니다.
> >
> > 만약 쉘을 못쓰게 한다면....그 계정은 telnet 접속을 하지 못합니다.
> >
> > 처음 계정을 만들은 기본으로 bash shell이 지정되어 있을 겁니다.
> >
> > 이것을 false 로 바꾸어 주시면 됩니다.
> >
> > /bin/bash 이렇게 되어 있는 것을 /bin/false 로 바꾸시면 됩니다.
> >
> > 그럼...날지 못하는 피터팬이....
> >