김정균 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옵션을 사용했을 때와 사용하지 않았을 때의 차이점을 분명히 알고 있어야한다.
먼저, 제PC는 윈도우2000 Advance Server 입니다.
반드시 2000서버에서 작업을 하셔만 할 겁니다.
아래의 내용 중 대부분은 팁과 QA 게시판을 뒤져서 제가 테스트 해본 결과물들을 그대로 옮긴 것이니 만큼 그대로 따라만 하시면
반드시 성공하실 수 가 있을 겁니다.
--------------------------------------------------------------------
윈도우 2000 에서 PHP3 활용하는 방법...
1. PHP3 를 구한다. (위치 : http://www.php.net/download-php.php3)
2. PHP3 를 c:/php3 라는 디렉토리에 압축을 해제한다.
3. c:/php3 안의 php3.ini-dist 파일을 php3.ini 파일로 파일명을 변환후에
c:/winnt 디렉토리에 Copy 한다.
4. php3.ini 파일을 열어서 아래와 같이 변경해 준다.
doc_root = c:inetpubwwwroot
위에서 c:inetpubwwwroot 부분은 윈도우 2000 서버에서의 웹서비스
시작위치를 지정해 주면 된다.
지정방법은 시작>프로그램>관리도구>인터넷서비스관리자 를 열어서
기본웹사이트에서 마우스 오른쪽 버튼을 눌러서 등록정보를 연다.
여러개의 탭중에 홈디렉토리 라는 탭을 클릭하면 로컬경로가 나오는데
그 경로명을 doc_root 에 써주면 된다.
5. 윈도우2000 에서 PHP3,PHP,HTML,HTM 에서도 PHP 스크립트가 적용되게 하려면,
홈디렉토리 탭에서 중간의 구성을 클릭한다.
응용프로그램 매핑에서 추가버튼을 누른다.
실행파일 부분에는 c:php3php.exe 를 선택한다.
확장명에는 php3 를 입력하고 확인을 누르고, 같은 방법으로
php,html,htm 을 추가시켜준다.
(저의 경우 html,htm 부분은 삭제를 했습니다. 왜냐하면 ASP 도 함께 개발하기 때문이죠,
만약, html 과 htm 을 같이 추가시킨다면 웹브라우져에 html, htm 문서의 경우 CGI 에러라며 나타나거든요.
php 와 php3 정도만 하는 것이 좋을 것 같습니다.)
6. 서비스가 시작되는 디렉토리(여기서는 c:inetpubwwwroot)에 test.php3 파일을
하나 만든다.
아래와 같이...
phpinfo();
?>
7. MS-SQL 연결을 위한 셋팅을 한다.
c:/winnt 에 있는 php3.ini 파일을 열어서
아래와 같이 수정해 준다.
;Windows Extensions
;extension_dir = c:php3 ; directory in which the loadable extensions (modules) reside
extension=php3_mysql.dll
extension=php3_calendar.dll
;extension=php3_dbase.dll
extension=php3_gd.dll
;extension=php3_dbm.dll
extension=php3_mssql.dll
extension=php3_zlib.dll
;extension=php3_filepro.dll
;extension=php3_imap4r1.dll
;extension=php3_ldap.dll
;extension=php3_crypt.dll
;extension=php3_msql2.dll
;extension=php3_odbc.dll
8. ODBC 를 연결해서 사용하면 된다.
9. ODBC 를 연결해서 사용하는 방법...(간단한 소스입니다.)
$dbhost = "211.11.1.111"; // MS-SQL 의 주소를 쓰시면 됩니다.
$dbuser = "sa"; // MS-SQL DB 접속시 USERID 입니다.
$dbpwd = ""; // MS-SQL DB 접속시 USERPASSWORD 입니다.
$dbname = "MYPAGE"; // MS-SQL 의 ODBC 명을 써주시면 됩니다.
$que2 = "select * from daily_twinmoon" ;
$result = mssql_query($que2,$db_connect);
echo("토탈 ($total) 개 입니다.
");
for($i=0 ; $i< $mypagetotal ; $i++) // start 에서 scale 까지 만
{
if($i<$mypagetotal ) // 전체 자료 개수까지만 출력
{
mssql_data_seek($result,$i);
$row=mssql_fetch_array($result);
echo("$row[0],$row[1],$row[2],$row[3],$row[4],$row[5],$row[6],$row[7],$row[8],$row[9],$row[10] ");
// 위의 부분은 테스트 DB 를 하나 만드셔서 해보시면 될겁니댜.
}
}
}
?>
한번 웹브라우져에 올려보세요...
이정도면 MS-SQL 을 PHP3 로 연결하여 사용하실 수가 있을 겁니다.
아주 간단한 방법이니 꼭 성공하시리라 믿습니다.