사실 제목은 CactiEZ를 이용해서 Cacti를 설치한다는 의미로 보이지만

실제론 그냥 CactiEZ를 설치하면 바로 Cacti를 사용할 수 있다.

Cacti는 대략 아래와 같다. (원글 : https://kldp.org/node/92013)

cacti 소개

  • ping, snmp를 이용한 모니터링
  • 쉬운 인터페이스 : MRTG, nagios가 설정파일을 이리저리 만져야 하는데 반해 웹 인터페이스에서 몇 번 만져주는 것으로 모니터링 설정 가능.
  • 플러그인 확장 : 기본 cacti는 그다지 기능이 많지 않으나 PIA(Plugin Architecture) 패치를 하면 플러그인을 사용할 수 있 각 플러그인을 사용하면 nagios에 버금가는 기능을 사용할 수 있음.
  • 동작 원리는 운영체제의 스케쥴러에서 일정 시간마다(기본값은 5분) poller 스크립트를 실행해 각 서버의 정보를 가져와 DB에 저장, 그 값을 참조해 rrd 그래프를 그리는 것 같음.
  • 모니터할 호스트가 많을 경우 poller 스크립트를 바이너리로 대체 가능. 성능은 기존 스크립트 사용에 비해 바이너리로 실행할 경우가 4배 정도 빠르다(기본으로 제공하지 않으며, 소스 받아와 컴파일을 해야함).
  • 단점으로, PIA을 비롯한 플러그인들은 정식 배포 버전을 가져다 사용해도 소스 수정을 하지 않으면 바로 사용하기 어려운 점이 있다.

 

설치는 앞서 말했듯이 CactiEZ를 설치해주면 상당히 쉽게 구동이 가능하다.

업무 차 사용해본게 다라서 소스설치나 기타 다른 설치방법은 정확히 모르겠다.

(소스 설치에 경우는 위 cacti 소개 원글 주소에 가보면 설명이 되어있다.)

 

우선 CactiEZ 홈페이지로 가서 CactiEZ를 다운받아보자

URL : http://cactiez.cactiusers.org/

접속을 해보면 상단 메뉴바에 Download라고 메뉴가 있는데 정작 들어가보면 다운을 받을 만한 링크가 없다.

당황하지말고 내용을 보면 홈페이지 최상단 우측에 "CactiEZ v0.7: Torrent - HTTP" 라고 써있는게 보일 것이다.

토렌트는 말 그대로 토렌트를 이용해서 CactiEZ를 다운 받는 방법이고 HTTP는 직접 다운로드 방법이다.

입맛대로 원하는 다운 방법으로 CactiEZ를 다운 받는다.

다운을 받고 나면 Hyper-V던 VM이던 VirtualBox든 로컬PC든 설치를 시작해보자

CactiEZ 기반이 CentOS기 때문에 특별히 설치에 어려운건 없다.

그냥 리눅스 설치하듯이 설치해주면 끝난다. 혹시나 설치과정이 보고 싶은 사람은 펼쳐보면 된다.

(특별히 설명은 없고 이미지로만 설치과정을 찍어놨다.)

 


이렇게 설치하고 재부팅이 끝나고 나면 바로 cacti에 접속할 수 있다.

웹 브라우저에서 CactiEZ의 IP를 입력해준다.

접속을 하게되면 로그인화면이 나오는데 ID/PW를 모른다고 당황하지 말자

cacti 기본 비밀번호는 admin/admin 으로 되어있다.

최초 로그인시에는 비밀번호 수정을 위한 페이지가 뜨게 되니 원하는 비번으로 변경 후 이용하면 되겠다.

참고로 CactiEZ에서 제공하는 것들의 기본적인 정보는 위에 기재 해놓은 CactiEZ 공식홈에 Documents 메뉴에 가보면

다 적혀있다.

이렇게 손 쉽게 Cacti 설치가 끝이 났다.

자세한 사용법은 좀 더 익숙해지고 나면 포팅할 예정이다.

아 마지막으로 참고할게 CactiEZ는 Cacti만 제공하는 것이 아닌 걸로 알고 있다.

기본적으로 Nagios도 제공되는 걸로 기억한다.

자세한건 검색과 공식홈페이지를 이용하도록 ..

 

참고 URL : https://kldp.org/node/92013

참고 URL : http://wnstjqdl.tistory.com/7

CactiEZ 공홈 : http://cactiez.cactiusers.org/

 

' 2016년 이전 > Server' 카테고리의 다른 글

Cacti WMI 이용해서 그래프 템플릿 만들기  (1) 2014.03.12
Cacti Windows Physical Memory 설정  (0) 2014.03.10
FTP Active Mode & Passive Mode  (0) 2014.01.08
vsftpd 설치 및 설정  (1) 2009.11.12

엊그제 주문하고 어제 배송받고 오늘 글을 쓰내

이기적 in 정보보안기사 / 산업기사 샀는데

어제 책 받고 진심 멘붕..

그 이유는 ...

 

 

총 6권이 그 실리콘 같은거에 붙어서 한 권처럼 되있고 분리해서 쓰는건데

분리하다 표지 다 찢어짐..

6권 중에 정상적으로 떨어진건 2권 뿐..

친구도 샀는데 저렇게 됬다더라

1권 저렇게 되고 조심한다고 했는데도 5권.. 저렇게 되버림..

이 책 구매하신분 분리할 때 진짜 완전 조심조심조심해서 분리하시길

책 내용은 일단.. 제대로 보질 못해서 뭐라 할 말은 없는데 그 빨간책이라는 책에 비해선

내용이 많이 간략하고 딱 시험용 책인듯

서점에서 빨간책 잠깐 봤는데 그건 암기용이 아니라 실제로 공부하기 좋아보였고

이 책은 좀 급하게 공부해야할 때 요점 보기 좋을듯..

난 시간이 없어서 이 책을 샀는데 다 볼 수 있을지나 모르겠내..

일하면서 필요해서 공부했던 내용입니다.

이리저리 검색하면서 한거라서 정확하지 않을 수 있습니다.

환경은 Hyper-V에 올린 FreeBSD 9.1 릴리즈 버전에서 했습니다.

----------------------------------------------------------------------------

Fedora 였다면 그냥 yum을 이용해서 snmp 패키지르 설치하면 되지만 FreeBSD는 내가 모르는 건지 따로 yum 같은 기능이 없어보여서 찾아봤다

주로 ports를 이용해서 패키지를 설치한다고 하는데 사용해보니 아마 해당 패키지 정보를 가지고 있고 설치를 진행하면 인터넷에서 다운 받아 설치하는 듯 했다.

Hyper-V에 올리고 외부 네트워크 안잡아주고 했다가 경로를 찾을 수 없다고 하길래 네트워크 잡아주니 바로 다운 받더라..

 

우선 root로 /usr/ports/net-mgmt/net-snmp/ 이 경로로 이동하고

make install clean을 친다.

make 명령어를 치고 나면 아래와 같은 화면이 뜨는데 원하는 기능을 선택하고 OK를 선택해준다.(저게 다 정확히 뭐하는지는 모르겠다..)

 

 

OK를 선택하면 마치 yum 처럼 혼자 열심히 다운 받고 설치하기 시작한다.

 

 

그러다 도중에 perl 설치 관련해서 화면이 또 뜨는데 이것도 입맛에 따라 선택하고 OK를 눌러준다.

뭐가 뭔지 모르면 나처럼 그냥 바로 엔터쳐도 된다.

 

 

그러면 또 열심히 perl을 설치하기 시작한다.

 

 

perl까지 설치가 완료가 되면 아래 사진과 같이 깔끔하게 종료가 될 것이다. 깔끔하지 않았다면 뭔가 문제가 있는게 아닐까 싶다.

 

이렇게 하면 FreeBSD에 net-snmp 패키지 설치가 완료 된다.

이후 아주 간단하게 설정을 한번 해보겠다.(나는 RRDTool인 Cacti에 붙게 하기 위해서만 설정해서 다른 기능은 잘 모른다..)

 

일단 snmp 관련해서 설정하는 법은 크게 두 가지가 있는걸로 알고있다.

하나는 직접 snmpd.conf 파일을 수정하는 것

다른 하나는 snmpconf를 이용해 수정하는 것

(snmpconf도 두 가지 방법이 있는데 하나는 -i 옵션으로 원하는 값만 골라서 수정하는 거고 하나는 snmpconf -g basic_setup을 입력하면

설정값 하나하나 step by step으로 모두 직접 설정하는 방법이있다.)

최초 설치 때는 snmpconf가 있는 줄 몰라서 직접 snmpd.conf를 수정했었는데 몇 번 해보면서 snmpconf로 설정하고 마무리로 직접 수정을 병행하고 있다.

물론 여기에는 병행하는 걸 쓸 것이다.(사실 snmpconf만으로 충분히 설정이 되는데 정확한 사용법을 몰라서 직접 수정도 같이 했다..)

 

우선 /usr/local/share/snmp/ 디렉토리에 가보면 snmpd.conf 파일은 없고 snmpd.conf.example이 존재할 것이다.

저 파일은 net-snmp 자체에서 설정값을 예시로 해놓은건데 몇 개 설정값 빼고는 그냥 둬도 되니 cp로 snmpd.conf로 카피해준다.

 

 

복사를 해주고 난 뒤 상위 디렉토리나 다른 아무 디렉토리로 이동하고 snmpconf -i를 입력한다.

(다른 디렉토리로 가는 이유는 정확하진 않는데 snmpd.conf가 있는 디렉토리에서 snmpconf를 실행하면 밑에 사진 처럼 상대 경로와 절대경로로 파일을

스캔해서 같은 snmpd.conf인데 파일이 2개 존재하는 걸로 인식해서 저장이 제대로 되지 않더라..)

(같은 파일을 다른 두 개 파일로 인식하는 문제의 경우)

 

그리고 snmpd.conf.example 파일을 미리 snmpd.conf로 복사 해놨기 때문에 아래 같이 뜰 것이다.

원래는 복사를 안해놔도 되지만 그렇게 되면 모든 설정값을 일일이 해줘야하기 때문에 미리 복사를 해놓았다.

저렇게 파일을 하나만 인식하면 저장이 잘 되니까 놀라지 말고 엔터를 쳐주자

 

엔터를 치면 아래와 같이 화면이 뜨는데 설정할 파일 종류를 선택하는 화면이다.

우리가 설정할 파일은 snmpd.conf 니까 당연히 1번을 누르고 엔터를 친다.

(아래 스샷은 snmpd.conf를 복사하기 전에 찍어서 위 사진 같은 말이 없는 것)

 

 

1번을 고르면 또 다시 선택지가 나오는데 이제서야 진짜 설정을 하기 시작한다.

궁금하면 하나씩 다 들어가서 설정해도 되지만.. 무턱대고 아무거나 설정해버리면 나중에 snmpd가 안올라가는 상황이 발생할 수도 있다.

이 선택지들 중에서 내가 하려는 Cacti를 위해 필요한 번호는 2, 3, 6번이다.

우선 2를 누르고 엔터를 치자

 

 

Access Control Setup을 선택하면 아래 처럼 또 다시  선택지가 나오는데

쉬운 영단어로 되있어서 금방 파악할 것이다.

1번은 SNMPv3 에서 읽고쓰기 권한을 갖는 유저 설정

2번은 SNMPv3 에서 읽기 권한만 갖는 유저 설정

3번은 SNMPv1/v2 에서 읽기 권한만 갖는 커뮤니티 이름 설정

4번은 SNMPv1/v2 에서 읽고쓰기 권한을 갖는 커뮤니티 이름 설정

여기서 cacti에 손 쉽게 붙이려면 3번을 선택해서 커뮤니티 이름을 설정해준다.

 

 

3번을 선택하면 먼저

The community name to add read-only access for:

라고 질의를 던진다. 그러면 원하는 커뮤니티 이름을 적고 엔터. cacti에서 기본 커뮤니티 이름은 public기 때문에 나는 public을 입력했다.

다음으로 The hostname or network address to accept this community name from [RETURN for all] 라고 바로 나온다.

그러면 cacti나 다른 RRDTool을 사용하고 있는, 즉 이 컴퓨터를 모니터링할 컴퓨터의 hostname이나 IP주소를 입력해준다.

나는 cacti가 설치되있는 컴퓨터의 IP를 입력해줬다.

그리고 나면 마지막 줄에 OID를 입력하라고 뜨는데 이건.. 정확히 뭔지 모르겠다..

OID라는 건 어느 정도 알겠는데 정확히 뭘 설정하는건지는 모르겠다..

(아시는분은 가르침을 부탁드립니다 ㅠ)

 

 

이렇게 Access Control Setup 란에서 설정하는 건 끝났다.

그럼 이제 finished를 입력하고 다시 초기 선택지 화면으로 돌아가준다.

돌아왔으면 이제 3을 누르고 엔터를 쳐주자

 

 

이번엔 Trap Destinations 관련 설정을 하는건데 Trap에 대한 정확한 개념을 몰라서 여기다 적기엔 부족하다..

아마 특정 이벤트에 대해 뭔가 작동하는 걸텐데.. 궁금하신 분은 따로 검색해보시는 걸 추천..!

어쩄든 여기 선택지에서 설정해줄 것은 2번인 A SNMPv2c trap receiver 이다.

2를 누르고 엔터를 치자

 

 

그럼 아까 커뮤니티 이름 설정하는 것 처럼 한 줄씩 질의를 던진다

맨 처음 Trap정보를 받을 host의 이름을 입력하고 뜨는데 이 것 역시 cacti가 설치된 host의 IP를 써주면 된다.

그리고 엔터를 치면 커뮤니티 이름을 쓰라고 나오는데 아까 위에서 설정했던 이름을 입력해주면 되고

마지막에는 사용할 포트를 입력하라고 나오는데 아무 것도 입력안하고 엔터를 치면

SNMP 기본값인 161포트가 설정이 된다.

 

 

다 입력했으면 다시 finished를 입력하고 초기 선택지 화면으로 돌아간다.

이제 마지막 6번 관련 설정을 하면 된다. 6을 누르고 엔터 ~

 

6번인 Agent Operationg Mode 에 진입하면 아래와 같이 뜨는데 1, 2, 3번에 대한 기능은 정확히 모르겠다..

설정을 한 번 해봤는데 딱히 다른 점을 모르겠더라..(저장이 안됬었나)

무튼 여기서 4번을 선택해준다.

 

 

4번을 선택하면 역시나 바로 질의를 던지는데 snmpd.conf에서 agentaddress 설정을 하는 곳이다.

통신 할 때 사용할 프로토콜이랑 포트 관련 설정을 하는 것이다.

사진에 udp:161이라고 입력했는데 이는 통신할 때 UDP를 사용하고 모든 네트워크에 대해 포트는 161을 사용하겠다는 의미다.

나는 모든 네트워크 말고 특정 네트워크만 설정해주고 싶어서 IP를 입력해봤지만 snmp 데몬이 실행이 안됬었다..

arguments를 보면 [transport:]port[@interface/address]라고 되어있는데

이 형식으로 입력하면 snmp 데몬이 실행이 안된다..혹여 잘 못입력한 건가 하고 검색을 해봤지만

저 형식으로 입력하는 사람을 보질 못했다..(내가 틀리게 한 걸 수도)

agentaddress 입력값에 대해 자세한 내용은

man 8 snmpd 를 참고하길 바란다.(거기 나온대로 해도 안되더라 ..)

 

 

이제 finished를 입력하고 마지막에 quit를 입력해주면 저장이 됬다고 출력될 것이다.

이렇게 하면 snmpconf로 필요한 설정을 다 해줬다..

더 해줘야 할게 있을 수도 있을테지만 적어도 Cacti 사용에는 문제가 없었다.

아 한 가지 빼먹은게 마지막에 agentaddress를 설정을 하고 나서 snmpd.conf를 수정해줘야한다.

snmpd.conf.example에 agentaddress가 최초에 udp:127.0.0.1:161로 정의되어있는데

이 라인을 지우거나 주석처리 해줘야 충돌없이 실행된다.

아마 snmpconf에서 지울 수 있지 않을까 싶은데 못 찾겠더라..

 

 

이렇게 수정하고 저장하면 일단 대략적인 설정 끝!

좀 더 세세하게 설정하고 싶은 분들은 구글링을 추천한다..

국내 블로그에 그렇게 많은 내용이 포팅되어 있지는 않아서..

이제 snmp를 실행해야하는데 그 전에 마지막으로 한 가지 더 해줘야할 것이 있다.

vi나 기타 에디터로 /etc/rc.conf를 열어 snmpd_enable="YES" 를 입력하고 저장해준다.

이걸 해주지 않으면 실행은 시킬 수 있으나 .. 해주는게 실행할 때 오류도 없고 나중에 편하다..

이제 /usr/local/etc/rc.d/snmpd start를 입력해주면 snmpd가 시작한다.

아마 net-snmp를 설치하자 마자 snmpd가 시작되어있을 수도 있다.

start나 restart를 사용하자.

아래처럼 깔끔하게 시작이 됬다면 설정 한 값이 시작하는데 크게 문제되는 것은 없는 것이다.

 

 

정상적으로 시작 되었으니 제대로 돌고 있는지 확인해보자

sockstat -4 -l | grep 161 를 입력해준다.(왜냐고 물어보지 않길)

netstat를 사용해도 된다.

 

 

다 됬으니까 이제 SNMP를 설치한 진짜 목적인 Cacti에서 접근이 되는지 확인해보자

간단하게 사진 두장으로 보겠다.

바로 아래 사진을 보면 hostname에 방금 SNMP를 설치한 host IP주소가 입력되있고

그 밑으로 SNMP Version 2가 선택되어있고 커뮤니티 이름으로 public, 사용 포트로 161이 입력되있다.

 

 

저렇게 제대로 값을 입력하고 Create를 눌렀을 때 아래와 같이 뜨면 성공한것이다.

 

 

------------------------------------------------------------------------------------------------------------

사진이 많으니 참 기내요..

별 내용도 없고 정확하지도 않은 내용들이니 혹 이 글 보신 분들은 참고용으로만 사용하시길 ~

제가 작업하면서 주로 본 사이트는 없구요..

단지 꽤 오랜 시간 구글에 기대있었내요

틀린 내용이 있다면 바로바로 알려주세요 ~

 

' 2016년 이전 > Network' 카테고리의 다른 글

FreeBSD Net-SNMP Source 설치  (2) 2014.07.21
Ubuntu에 SNMP 설치하기  (1) 2014.04.10
CentOS Setup으로 고정아이피 설정하기  (0) 2009.11.11
DHCP를 고정으로 바꾸는 법  (0) 2009.11.11

리마 1급을 준비할까 보안산기를 준비할까 하다가 결국 두 개 다 보기로 결정

보안산기 필기 : 4.5

리마 1급 실기 : 5.10 이었나

날짜가 한 달 정도 차이나길래 한 달에 한 개씩 공부해야지

토나오겠다.. 오 .. 젠장

 

어제 루팅안하고 곰돌라이트 올리려다가 부트로더 언락 안되서 참패하고

그냥 루팅하고 스피디하게 곰돌라이트 올려버렸다..

어제 다 올리고 집에가서 또 귀찮게 막 홈 살짝 꾸미고 어플 받고 다 하고 기분 좋게 그 상태로 출근도 했다..

근데 SuperSU 업데이트 해야된다길래 기분 좋게 업데이트 눌렀는데

리커버리 선택하래서 어제 설치한 CWM리커버리 선택했더니 지 혼자 리커버리 모드가서

업데이트하더니 .. 초기화 되버렸다.. 왜지

그래서 귀찮게 다시 꾸미고 어플받고.. ㅠㅠ

그러고 아까 언루팅하려고 루팅할 때 썼던 어플찾는데 그것만 지워졌더라..

루팅한채로 좀 쓰다가 나중에 다시 초기화하면서 언루팅도 해야겠다..

' 2016년 이전 > 그냥' 카테고리의 다른 글

정보보안기사/산업기사 필기 책 도착!  (0) 2014.03.06
정보보안산업기사 접수  (0) 2014.03.04
옵티머스 lte3 ..  (0) 2014.02.18
탭하나 사서 ..  (0) 2014.02.18
윈도우 PowerShell..  (0) 2014.01.22

회사에 유닉스/리눅스 계열 서버가 거의 없는데 유일하게 FreeBSD를 쓰는 서버가 있다..

입사하고 좀 처럼 유닉스나 리눅스 쪽을 만질 일이 없었는데 스크립트 한 번짜보라는 말에 Hyper-V에 FreeBSD 설치하고

가물가물한 기억을 더듬고 구글링을 하며 간단하게 파일존재 유무 판단하는 스크립트를 만들었다..

이쁘게 만들고 싶었는데 .. 문법이 제대로 맞는지도 모르겠고... 일단 작동하니까 됬다 싶다..

 

-------------------------------------------------------------------------------

#!/bin/sh


var_array="
123.123.123.121
123.123.123.122
123.123.123.123
123.123.123.124
123.123.123.125
123.123.123.126"


date1=$(date -v-1d "+%Y%m%d")
date2=$(date "+%Y%m%d")

for var in $var_array ; do
        if ( test -e "logfile/test_"$var"_$date1.log" )
                then
                        echo "test_"$var"_$date1.log exist" >> ./log/chkfiles
                else
                        echo "test_"$var"_$date1.log not exist" >> ./log/chkfiles
        fi
done
-------------------------------------------------------------------------------

우선 익숙한 bash가 기본으로 설치가 안되서 .. sh 기준으로 짜봤다..

음.. 솔직히 다 쉬운 구문들로 해놓은 거라 어려울건 없어보여서 따로 설명은 안해야지..

다만 내 검색실력이 부족한거겠지만 sh 기준으로 배열 선언하는 부분 찾는데 꽤나 애를 먹었다..

대부분의 블로그나 커뮤니티에 올라와있는 글들은 bash를 기준으로 작성을 해서

var_array="value..." 형식이 아니라 var_array=(value...)이런 형식으로만 써있었다..

bash 기준으로 sh에서 작성하니 Syntax error: newline unexpected (expecting ")") 이런 에러만 계속 나오더라..

그러다 우연히 찾은 블로그에서 sh 기준으로 써있는걸 발견! 괄호를 단지 따옴표로 바꿨을 뿐인데 배열이 정상적으로 선언되더라..

확실히 대세는 bash긴 한데 sh에 대한 정보가 생각보다 많이 없는거 같다는 생각이 든다..

게다가 찾아본 사람이나 아는사람은 알겠지만 배열 출력할 때 형식이

${var_array[index]} 라고 다들 글을 올려놨는데 .. 내가 설치한 버전이 이상한건지 출력되지 않는다..

그저 ${var_array[...}: Bad substitution 라고 에러만 나올뿐..

좀 더 찾아보면 왜 저걸로 내가 출력 못한건지 알 수 있겠지만.. 일단 작동도 되고 .. 퇴근시간 다 되서 나중에 찾아봐야겠다..

더구나 밑에 참고한 블로그에 가보면 두번 째 소스블록에 있는건 .. 나는 작동이 안된다 ㅠㅠ

왜 그런지 짐작되는 분 있으면 댓글 좀 달아주세요...ㅠㅠ

 

참고 블로그 : http://rasskang.tistory.com/31

처음에 구입하자마자 곰돌라이트 롬 올려서 쓰다가 ..

입사하면서 싹 초기화하고 순정에 언루팅까지 하고 쓰다가 ..

곰돌라이트 글 보니까 루팅 없이 롬올리는게 된다고 해서 이리저리 하던 중...

부트로더 언락이 안되있는건지 .. cwm리커버리 진입이 도저히 되지 않내..

별짓을 다 해 봤지만 결국 그냥 공초하고 루팅하고 지금 순정롬 백업 중...

은행어플 쓰려고 루팅안하려고 했는데 포기 ..

커롬을 위해 은행어플을 포기해야겠다...

곰돌이가 올라가고 있다.. 순정보단 확실히 빠르겠지 .. ?

체감 없으면 어쩌지.. 순정으로 돌려야되나..

' 2016년 이전 > 그냥' 카테고리의 다른 글

정보보안산업기사 접수  (0) 2014.03.04
결국 폰 루팅한채로 사용 중..  (0) 2014.02.19
탭하나 사서 ..  (0) 2014.02.18
윈도우 PowerShell..  (0) 2014.01.22
전역도 했고 입사도 했고 ..  (0) 2014.01.13

입사하고 첫 회식했다

생각보다 자유로운 분위기

1차에서 배터지게 감자탕 먹고 술도 마시고

2차가서 여유롭게 막걸리랑 맥주랑 소주랑 골고루 조금씩 마시고

새벅 1시 20분 즈음 해산한듯 ?

집에 도착하니 2시 넘어서...ㄷㄷㄷ

' 2016년 이전 > Diary' 카테고리의 다른 글

2014. 04. 10.  (0) 2014.04.10
2014. 03. 10.  (0) 2014.03.10
2014. 01. 22.  (0) 2014.01.22
2014. 01. 13.  (0) 2014.01.13
2013. 09. 21.  (0) 2013.09.21

+ Recent posts