RSS구독하기:SUBSCRIBE TO RSS FEED
즐겨찾기추가:ADD FAVORITE
글쓰기:POST
관리자:ADMINISTRATOR
'Linux'에 해당되는 글 103
2009.07.27  리눅스에 대하여  
2009.07.24  AWstats 설치법  

출처 : 대전 국제 IT 교육센터 : 정성재 강사

 

1.디렉토리란?
디렉토리라는 것은 파일을 보관하는 곳이다. 리눅스를 포함한 거의 모든 유닉스는 대체적으로 동일한 디렉토리구조를 가지고 있다. 물론, system V계열이냐 BSD계열이냐, 리눅스냐에 따라 약간의 차이는 있지만, 대체적으로 비슷하다. 또한 디렉토리의 구조는 도스(윈도우즈)나 리눅스 모두 디렉토리를 tree형태의 구조를 갖추어 계층적으로 관리된다.

2.리눅스의 디렉토리 구성

/bin : 일반적으로 bin은 binary의 약자로 실행코드를 가진(즉 실행이 되는) 파일들이 들어있다. 우리가 흔히 말하는 명령어라는 것들이 들어있는 디렉토리이고, 보통 Path가 설정되어 있다.대표적인 명령어인 cp, mkdir, rmdir, mv, rm, cat등이 있다.

예)/usr/bin, /usr/local/bin, /usr/X11R6/bin, /bin 등

/sbin : 'System Binaries'의 약자로 주로 시스템 관리에 대한 명령어들이 있다. 즉 이 디렉토리의 명령어들은 보통 super user가 사용한다. 대표적으로 파티션을 나눈다거나 유저추가 명령등 (fdisk, useradd, lilo, halt, reboot등)이 있다.

예)/sbin, /usr/sbin 등

/home : 사용자의 홈디렉토리로서 개개인의 사용자의 디렉토리 즉, 유저디렉토리가 있는 곳이다. 보통 posein이라는 계정을 만들면 /home/posein이라는 디렉토리가 생기게 되고 이를 홈디렉토리라고 부른다.

/etc : 이 디렉토리에는 시스템 환경설정 파일 및 부팅과 관련된 여러가지 스크립트 파일들이 들어 있다. 이들 파일에서 설정된 내용을 읽어서 이에 맞게 프로그램들이 설정을 맞추어 실행하게 된다. 시스템 운영에 관한 매우 중요한 파일들이 존재하므로 임의대로 삭제하거나 수정해서는 안된다.

/lib : MS-Windows에서 DLL파일과 비슷한 역할을 하는 library파일이 들어있다. 라이브러리라는 것은 프로그램의 실제 구현된 함수모듈들을 모아놓은 것을 말한다.

예) /lib/modules, /usr/lib, /usr/local/lib, /usr/X11R6/lib

/proc : 가상 파일 시스템으로 시스템에서 운영되고 있는 다양한 프로세서의 상태정보 및 기타 시스템 정보를 담고 있다. 하드웨어 설정 요소등도 알수있다.

예)cpuinfo, mounts, partitions,ioports, interrupts 등

/dev : 하드디스크, CD-ROM, 포트, 모뎀, 마우스 등과 같이 실제로 존재하는 물리적인 장치등을 파일화하여 관리하는 디렉토리이다.

예)/dev/hda, /dev/fd0, /dev/sda, /dev/cdrom 등

/root : 시스템관지자인 root사용자의 홈디렉토리영역이다.

/tmp : 임시지정 디렉토리로서 각종 프로그램이나 프로세서 작업을 할 때 임시로 파일을 저장하는 공간이다. 보통 이 디렉토리는 모든 사용자에게 접근 가능하도록 설정되어 있다.

/mnt : CD-ROM이나 플로피디스크, 기타 외부파티션(Windows나 DOS같은) 등을 접근할 때 사용하는 디렉토리이다.

예)/mnt/cdrom, /mnt/floppy등

/usr : 윈도우로 말하면 응용프로그램들이 위치하는 디렉토리이다. 커널소스, C-컴파일러와 같은 개발도구, X-window에서부터, 리눅스에서 서버관리를 위해 사용하는 아파치나 mysql, php등 이 모두 이 디렉토리의 하위디렉토리에 설치된다.

/var : 시스템 관리에 대한 여러가지 영역이 존재하는 곳으로 /usr디렉토리와 거의 비슷한 역할을 한다. /usr은 변하지 않는 요소를 저장한다면 /var 에서는 변화의 소지가 있는 파일등을 보관한다. 대표적인 것으로 로그파일이나 기타 스풀링 공간이 이곳에 존재한다.

예) /var/spool

/boot : 부팅이미지 파일이나 커널정보가 포함된 디렉토리이다. 참고로 예전버전의 리눅스를 사용하고 lilo를 사용한다면 1024실린더 내에 존재해야 된다. 대체적으로 8GB이내에 존재해야 함. 만약 파티션을 할당한다면 최소 35M를 할당하고, 커널컴파일을 하려면 70M는 되어야 한다.여유있게 100M를 할당한다.

/lost+found : fsck 명령어를 이용하여 파일시스템을 복구할 때 작업하는 디렉토리이다.

/opt : 응용프로그램들의 설치를 위해 남겨둔 디렉토리이다.

출처 : 대전국제 IT 교육센터 정성재 강사

 

. GNU와 FSF

(1) GNU

GNU란 재귀적 약어로 GNU's Not Unix 즉 "GNU는 유닉스가 아니다."라는 뜻이다. 리차드 스톨만을 주축으로 자유로운 소프트웨어를 희망하던 공동체들이 가장 먼저 운영체제인 유닉스를 모태로 개발을 시작하면서 이 말이 탄생되었다. GNU는 유닉스와 호환이 되도록 만들어진 운영체제이기는 하지만 유닉스와는 다른 운영체제라는 의미를 내포시키기 위해서 만들이름이라고 할 수 있다.
1984년에 시작된 프로젝트로 초기에는 이렇게 자유로운 UNIX를 만드는 데 목적이 있었으나 1990년 대에는 운영체제이외의 gcc, emacs 등 같은 응용프로그램도 만들었다.
(참고) 관련사이트:
http://www.gnu.org

(2) FSF(Free Software Foundation)

1) 개요: 비영리를 목적으로 하는 조직으로 GNU 프로젝트를 추진하는 단체이다. Free Software를 주창한다. 자유 소프트웨어라는 용어는 무료나 공짜라는 뜻은 아니다. 자유(Free)는 '구속되지 않는다'는 관점에서의 자유이다. 즉, 프로그램의 변경이나 수정의 자유를 말한다.

2) 자유 소프트웨어(Free Software)란?
ㄱ. 목적에 상관없이 프로그램을 실행시킬 수 있는 자유
ㄴ. 필요에 따라서 프로그램을 개작할 수 있는 자유(이러한 자유가 실제로 보장되기 위해서는 소스코드를 이용할 수 있어야 한다. 왜냐하면 소스 코드없이 프로그램을 개작한다는 것은 매우 어려운 일이기 때문이다.
ㄷ. 무료 또는 유료로 프로그램을 재배포할 수 있는 자유
ㄹ. 개작된 프로그램의 이익을 공동체 전체가 얻을 수 있도록 이를 배포할 수 있는 자유
3) 관련사이트:
http://www.fsf.org (http://www.gnu.org와 같다.)

(3) 카피레프트(Copyleft)와 GNU GPL

1) 카피레트트
ㄱ. 개요: 저작권을 뜻하는 Copy right의 반대를 뜻하는 의미에서 사용하였다. 저작권법을 근간으로 하지만 저작권법이 갖고 있는 주된 목적을 반대로 이용해서 소프트웨어를 개인의 소유로 사유화시키는 대신 자유로운 상태로 유지시키는 수단으로 삼는 것이다.
ㄴ. 핵심: 프로그램을 실행하고 복제할 수 있는 권리와 함께 개작된 프로그램에 대한 배포상의 제한조건을 별도로 설정하지 않는한, 개작과 배포에 대한 권리 또한 모든 사람에게 허용하는 것이다. 이러한 방법을 통해서 "자유 소프트웨어"라는 용어의 핵심인 "자유"를 모든 사람에게 보장할 수 있고 프로그램을 입수한 사람은 그 누구도 뺏을 수 없는 권리를 갖게 된다.
2) GNU GPL(General Public License): GNU 소프트웨어에서 카피레프트를 실제로 구현한 라이센스기준이다.

(4) 리눅스와 GNU/Linux

GNU 에서는 하나의 완성된 시스템을 만들기 위해서 HURD라는 이름의 커널을 개발중이었으나 하나의 제품으로 사용될 수 있을 말한 상태가 아니었다. 그러나 다행스럽게도 또 다른 커널이 사용 가능했는데, 1991년 리누스 토발스(Linus Torvalds)가 유닉스 커널과 호환가능하게 만든 리눅스라는 이름이 커널이 그것이었다. 1992년 무렵 GUN시스템과 리눅스를 결합함으로써 하나의 완성된 자유 운영체제를 만들 수 있었다. 현재 사용되고 있는 GNU시스템은 리눅스 덕분에 가능했던 것이라고 할 수 있다. 그래서 이 시스템을 GNU/Linux라고 부르는데, 이는 리눅스를 시스템 커널로 채용한 GNU시스템을 지칭한다.

2. 리눅스에 대하여

(1) 리눅스의 역사
리눅스를 커널을 지칭하는 말이다. 1991년 리누스 토발즈(Linus Torvalds)가 0.01버전의 리눅스를 인터넷상에 띄웠고, 곧 많은 해커들의 참여로 지속적인 커널로 개발되었다.

(2) 리눅스의 어원
리눅스는 커널 개발자인 리누스 토발즈(Linus Torvalds) + 유닉스 OS (특히 Minix라는 운영체제)의 합성어이다.

(3) 리눅스 커널의 특징: 리눅스는 Free Source Software로 커널코드의 대부분을 자유소프트웨어재단(FSF)의 라이센스 정책인 GNU GPL을 따른다.

(4) 리눅스의 특징
1) 유닉스와 같은 운영체제로 멀티유저, 멀티 태스킹 시스템이다.
2) 완전히 공개된 시스템이다.
3) 유연성과 확장성이 뛰어나다. - 다양한 하드웨어를 지원한다.
4) 강력한 네트워크를 지원하는 시스템이다.
5) 가격대 성능비가 매우 우수하다.

(5) 리눅스의 단점
1) 기술지원의 부족: 리눅스에서 사용되는 대부분의 응용프로그램들이 비상업적인 제품으로 인해
전세계에 흩어져 있는 개발자들이 일일히 기술지원을 하는 것이 불가능하다.
이로 인해 사용하면서 발생하는 문제점들은 모두 사용자의 몫이다.
2) 하드웨어 지원이 부족: 여전히 특정 하드웨어에 설치가 어렵고 모든 플랫폼에서 작동하지 않
는다.
3) 사용자의 숙련된 기술이 요구된다.

3. 리눅스배포판

(1) 개요: 리눅스는 오픈 소스(Open Source)에 기반을 두고 있기 때문에 다양한 리눅스 배포판이
나와 있다. 모든 배포판은 같은 리눅스 커널과 시스템 도구를 제공하지만 설치하는 방법
과 기본제공되는 응용 프로그램이 다르다. 각각의 배포판에는 장점과 단점이 있다. 배포
판에 대해 알아보자.

(2) 배포판의 종류
1) RedHat
ㄱ. 설명: 가장 인기있는 배포판으로 상용 리눅스 배포판 업체인 레드햇 소프트웨어사가 제공한다. 초보자들도 쉽게 설치할수 있다. 설치과정은 그래픽 사용자 인터페이스를 사용할 것인지 텍스트 기반의 인터페이스를 사용할 것인지 선택할 수 있다. 또한 RPM패키지방식을 사용하여 설치, 관리, 업그레이드 등이 용이하다. X 윈도우로 GNOME과 KDE를 동시에 제공하며 이 배포판은 인텔, 알파, SPARC 버전이 있다.
ㄴ. 사이트
http://www.redhat.com
2) Debian
ㄱ. 설명: 수많은 참여자가 참여하여 만들어진다. "The Debian Project"로 알려진 비영리기구가 제공하는 것으로 GNU가 공식적으로 후원한다. 이 배포판은 dpkg라는 유틸리티를 사용한다. 이 배포판은 인텔, 알파, 스팍, 모토롤러(매킨토시, 아미가, 아타리)용 버전이 나와있다.
ㄴ. 사이트
http://www.debian.org
3) SuSE
ㄱ. 설명: 상용소프트웨어로 독일업체인 S.u.S.E가 배포한다.유럽에서 선두의 자리를 지키고 있다. 이 배포판에는 KDE가 포함되어 있으며 쉬운 업그레이드와 패키지 관리를 위하여 'YaST'유틸리티를 제공한다. 이 배포판은 인텔용과 알파용 버전이 있다.
ㄴ. 사이트
http://www.suse.com
4) OpenLinux
ㄱ. 설명: 상용소프트웨어 업체인 칼데라사가 제공하는 기업사용자들을 목표로 하고 있다. 표준으로 KDE를 제공하며 이 배포판은 인텔용 버전만 있다.
ㄴ. 사이트
http://www.caldera.com
5) Linux Mandrake
ㄱ. 설명: 상용소프트웨어 업체인 MandrakeSoft S.A가 제공하는 것으로 프랑스의 배포판이다.
ㄴ. 사이트
http://www.linux-mandrake.com
6) Slackware
ㄱ. 설명: 월넛 크리크 소프트웨어사의 패트릭 폴커딩에 의하여 제공된다. 패트릭 폴커딩은 현재와 같은 리눅스 배포판의 원조에 해당하는 사람이다. 설치과정은 꽤 간단하지만 업그레이드와 패키지 관리 기능은 취약하다. 여전히 libc라이브러리에 기반하고 있다. 최신 버전은 glibc로 옮겨가고는 있다. 이 배포판은 리눅스에 친숙하고 기술이 뛰어나 사람에게 추천할 만 하다. 이 배포판은 인텔 버전만 있다.
ㄴ. 사이트
http://www.slackware.com
7) 기타: 터보리눅스(
http://www.turbolinux.com) 등 그외에도 많은 리눅스가 존재한다.

(3) 국내 리눅스 배포판 업체
1) 와우리눅스
http://www.wowlinux.com
2) 한컴리눅스
http://www.hancom.com
3) 미지리눅스
http://www.mizi.com

4. 리눅스문서관련사이트

(1) 외국

1)
http://www.linuxdoc.org
=> 최신의 리눅스문서를 볼 수있는 사이트로
http://www.tldp.org와 같다. tldp는 The Linux Documentation Project의 약자이다.
2)
http://www.linux.org
=> 리눅스의 전반적인 정보를 알 수 있다.
3)
http://www.linux.org.uk
=> 리눅스 커널의 네트워크 관련 코드 개발 책임자인 Alan Cox가 운영하는 사이트로 리눅스
네트워크와 커널에 관한 내용을 얻을 수 있다.
4)
http://www.linux.com
=> 리눅스 거대회사인 VA Linux System이 운영하는 사이트로 많은 리눅스 정보와 데이터를
제공한다.
5)
http://www.slashdog.org
=> 리눅스 제품 정보와 최신 뉴스가 빨리 업데이트되는 사이트이다.
6)
http://www.freshmeat.net
=> 리눅스의 마스코트 펭귄이 좋아한다는 신선한 고기(freshmeat)를 의미한다. 최근의 리눅스 소식과 관련된 사이트 링크를 위주로 질높은 정보를 제공하는 사이트이다.
7)
http://www.linuxgazette.com => 리눅스 저널 관련 사이트이다.

(2) 국내
1)
http://www.kldp.org
=> Korean Linux Documentation Project의 약자로 한국 리눅스문서 사이트이다. 많은 정보를 얻을 수 있는 사이트이다

기본적으로 awstats는 설치를 따로 하지 않고 압축을 풀기만 하면 됩니다.
최신버전에서는 기본적으로 한글을 지원하므로 별다른 한글패치를 하지 않고도 한글로 볼 수 있는 장점이 있습니다.
awstats는 웹로그 이외에도 ftp, mail 로그를 지원합니다.

설치
http://awstats.sourceforge.net/?seenIEPage=1 에서 awstats를 다운 받습니다.
last stable  : awstats-6.7.tar.gz

# wget http://prdownloads.sourceforge.net/awstats/awstats-6.7.tar.gz
# tar zxf awstats-6.7.tar.gz

awstats에 필요한 디렉토리를 만들어 줍니다.
# mkdir /etc/awstats         -----------> awstats의 conf 파일이 저장되는 장소
# mkdir /var/lib/awstats    -----------> awstats의 로그분석이 저장되는 장소

그리고 풀린 awstats를 설치하고픈 곳에 다가 옮겨줍니다. 여기에서는 /usr/loca/awstats로 옮깁니다.
# mv awstats-6.7 /usr/local/awstats

그리고 권한 설정을 잡아줍니다.
# chmod 755 /usr/local/awstats
# chown -R root.root /usr/local/awstats
이렇게만 하면 설치는 끝납니다.

설정
설정은 아래와 같이 awstats에서 지원하는 파일로 파일을 생성하는 방법이 있지만,
그냥 이미 만들어진 conf 파일을 고쳐서 써도 무방합니다.
# /usr/local/awstats/tools/awstats_configure.pl

----- AWStats awstats_configure 1.0 (build 1.7) (c) Laurent Destailleur -----
This tool will help you to configure AWStats to analyze statistics for
one web server. You can try to use it to let it do all that is possible
in AWStats setup, however following the step by step manual setup
documentation (docs/index.html) is often a better idea. Above all if:
- You are not an administrator user,
- You want to analyze downloaded log files without web server,
- You want to analyze mail or ftp log files instead of web log files,
- You need to analyze load balanced servers log files,
- You want to 'understand' all possible ways to use AWStats...
Read the AWStats documentation (docs/index.html).

-----> Running OS detected: Linux, BSD or Unix

-----> Check for web server install
  Found Web server Apache config file '/usr/local/apache/conf/httpd.conf'

-----> Check and complete web server config file '/usr/local/apache/conf/httpd.conf'
  AWStats directives already present.

-----> Update model config file '/usr/local/awstats/wwwroot/cgi-bin/awstats.model.conf'
  File awstats.model.conf updated.

-----> Need to create a new config file ?
Do you want me to build a new AWStats config/profile
file (required if first install) [y/N] ?  y

-----> Define config file name to create
What is the name of your web site or profile analysis ?
Example: www.mysite.com
Example: demo
Your web site, virtual server or profile name:
domain

-----> Define config file path
In which directory do you plan to store your config file(s) ?
Default: /etc/awstats
Directory path to store config file(s) (Enter for default):

-----> Add update process inside a scheduler
Sorry, configure.pl does not support automatic add to cron yet.
You can do it manually by adding the following command to your cron:
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=aaa
Or if you have several config files and prefer having only one command:
/usr/local/awstats/tools/awstats_updateall.pl now
Press ENTER to continue...

A SIMPLE config file has been created: /etc/awstats/awstats.aaa.conf
You should have a look inside to check and change manually main parameters.
You can then manually update your statistics for 'aaa' with command:
> perl awstats.pl -update -config=domain
You can also read your statistics for 'aaa' with URL:
> http://localhost/awstats/awstats.pl?config=domain

Press ENTER to finish...

이렇게 하면 /etc/awstats 디렉토리 안에 awstats.domain.conf 라는 파일이 생성이 되고 /usr/local/apache/conf/httpd.conf 안에
    # awstats alias
    Alias /awstatsclasses "/usr/local/awstats/wwwroot/classes/"
    Alias /awstatscss "/usr/local/awstats/wwwroot/css/"
    Alias /awstatsicons "/usr/local/awstats/wwwroot/icon/"
    ScriptAlias /awstats/ "/usr/local/awstats/wwwroot/cgi-bin/"

    # This is to permit URL access to scripts/files in AWStats directory.
    <Directory "/usr/local/awstats/wwwroot">
        Options None
        AllowOverride None
        Order allow,deny
        Allow from all
    </Directory>
의 정보가 들어갑니다.  기본적으로 /usr/local/apache와 /usr/local/apacheSSL이 설치된 몇몇 서버에는 apacheSSL의 httpd.conf 에 자동으로 들어가지 않아 직접 입력해주면 됩니다.

awstats.domain.conf
awstats는 기본적으로 apache log 방식을 combined을 기본으로 하고 있습니다. 물론 common방식으로 사용이 가능하지만 좀더 세밀한 분석을 위해서는 combined방식을 추천합니다. 설정에 꼭 필요한 것만 집고 넘어가겠습니다.

51째 줄: 아파치 로그 파일 위치
LogFile="/usr/local/apache/logs/dongabiz-access_log"

122째 줄: 1(combined), 4(common) 로그 포멧을 설정하는  곳인데 기본적으로 1번으로 잡혀있습니다.
LogFormat=1

153째 줄 : 표기 될 도메인 이름
SiteDomain="www.dongabiz.com"

892쨰 줄 : 표시될 언어 설정(기본은 auto인데 ko로 잡어줍니다)
Lang="ko"

이 정도만 잡아주면 문제 없이 로그를 뽑을 수 있습니다.

* 로그 분석 실행하기
/usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=domain

* 로그 페이지 보기
http://domain/awstats/awstats.pl?config=domain


awstats plug-in
awstats는 plug-in 기능을 이용하여 좀 더 강력한 분석이 가능합니다.
여기에서는 GeoIP를 이용하여 어느나라에서 접속을 하였는지를 확인 할 수 있도록 하겠습니다.

* GeoIP 다운로드
# wget http://www.maxmind.com/download/geoip/api/pureperl/Geo-IP-PurePerl-1.19.tar.gz
# wget http://www.maxmind.com/download/geoip/database/GeoIP.dat.gz

pureperl 버전 GeoIP를 설치합니다.
# tar zxf Geo-IP-PurePerl-1.19.tar.gz
# cd Geo-IP-PurePerl-1.19
# perl Makefile.PL && make && make install

GeoIP의 국가별 data 을 설치합니다. (단순히 압축만 풀면됩니다.)
# gzip -d GeoIP.dat.gz
# mkdir /usr/local/share/GeoIP
# mv GeoIP.dat /usr/local/share/GeoIP

* 설정
awstats.domain.conf에 설정을 합니다.
1289번째 줄
LoadPlugin="geoip GEOIP_STANDARD /usr/local/share/GeoIP/GeoIP.dat"

* XWhois
웹상에서 바로 whois를 효과를 낼 수 있는 플러그인. 약간에 버그가 있어서 호스트가 whois.xxx.xxxx.xxxx 인 4자리로 구분된 호스트는 찾아지지 않습니다.
# tar zxf Net-XWhois-0.90.tar.gz
# cd Net-XWhois-0.90
# perl Makefile.PL && make && make install

* 설정
awstats.domain.conf에 설정을 합니다.
1365번째 줄의 주석을 푼다
LoadPlugin="hostinfo"

검색엔진 추가하기
awstats는 외국산 웹로그 분석툴이기 때문에 유명한 검색엔진(google, yahoo 등)을 제외한 국내 엔진은 전부 Unknown으로 판단합니다. 이에 국내 엔진을 판별하기 위해 파일을 수정하여 줍니다. 이는 설명이 길어지기에 국내엔진이 추가된 파일을 첨부하였습니다.

첨부 파일을 다운받아서 아래와 같이 실행합니다.
# rm -f /usr/local/awstats/wwwroot/cgi-bin/lib/search_engines.pm
# mv search_engines.pm /usr/local/awstats/wwwroot/cgi-bin/lib/


우주곰:지구곰이 아닙니다.
지구곰이 아닙니다.
Categories (190)
Information (5)
About uzoogom (5)
My Advanced Linux (73)
Learning Linux (96)
OperatingSystem (5)
Databases (4)
OpenSource (1)
Tips! (1)
«   2021/03   »
  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      
  1. 2012/12 (2)
  2. 2012/04 (3)
  3. 2012/03 (6)
  4. 2012/02 (6)
  5. 2012/01 (2)