반응형

fluentd로 로컬 MongoDB에 로그 저장해보기

 

1. mongoDB 설치

http://horae.tistory.com/entry/우분투에-mongo-DB-구축

 

 

2. fluentd 설치

http://horae.tistory.com/entry/ubuntu-에-fluentd-설치-tdagent

 

 

 

3. conf 수정

 

 

/var/log/test.log 에서 tail 정보를 소스로 가져 온다.

 

localhost mongo db 에 mongo.*.*로 매치되는 정보들을 저장한다.

즉 위에서 tag mongo.apache.access로 하였으니 해당 값이 저장이 된다.

따로 DB 생성할 필요 없이 알아서 collection 과 DB를 생성한 후 데이터를 삽입 해준다.

 

반응형
반응형

출처: http://junho85.tistory.com/343

 

http://docs.fluentd.org/articles/install-by-deb

보고 설치 하면 됨


ubuntu 라도 버전 별로 쉽게 설치 하는 방법을 제공 해 주고 있음.


내가 사용하는 ubuntu 서버는 14.04 tusty. 다음 스크립트 이용

curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-trusty-td-agent2.sh | sh


설치가 다 되면 알아서 실행 까지 해 준다.

junho85@junho85:~/program$ ps auxww | grep fluentd

junho85  20676  0.0  0.1  14180   932 pts/2    S+   11:35   0:00 grep --color=auto fluentd

junho85@junho85:~/program$ ps auxww | grep td-agent

td-agent 20641  0.0  3.9 116208 20016 ?        Sl   11:34   0:00 /opt/td-agent/embedded/bin/ruby /usr/sbin/td-agent --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid

td-agent 20644  0.8  6.4 162416 32492 ?        Sl   11:34   0:00 /opt/td-agent/embedded/bin/ruby /usr/sbin/td-agent --log /var/log/td-agent/td-agent.log --daemon /var/run/td-agent/td-agent.pid

junho85  20680  0.0  0.1  14180   932 pts/2    S+   11:35   0:00 grep --color=auto td-agent


기본 설정 경로는

/etc/td-agent/td-agent.conf


직접 로그를 쏴서 테스트 가능

$ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.test


기본 설정 로그는 다음 경로에서 확인 가능

/var/log/td-agent/td-agent.log


반응형
반응형

출처: http://parksk.tistory.com/20

 

SSH, FTP 등의 구축은 손쉽게 해왔는데 메일서버는 시간 날 때마다 조금씩 손봐왔음에도 불구하고...
실패였다. 왜 안되지?!
그냥 뭐 내 서버 내의 계정들끼리만 주거니 받거니...

내가 하고 있는게 메일서버 구축이 맞는건지도 제대로 모른채
무작정 검색하고 따라하고 검색하고 따라하기의 반복.

새벽 3시경. 드디어 성공했다.
아, 바로 이거 말하는 거였구나.
으이구. 머리가 나쁘면 손발이 고생이라더니,
뭔지도 모르고 무작정 덤벼든게 잘못이었다. 이렇게 쉬운걸 어휴...

결정적으로 메일서버를 운영하려면 도메인이 필요하다는 것을 모르고 있었던 것이다.
그걸 알게되고서야 부랴부랴 메일서버를 지원하는 무료계정을 찾아 만들고서
다시 우분투에 메일서버를 구축하였다.

메일서버를 지원하는 무료계정은 www.dnip.net 에서 회워가입 후 받을 수 있다.
나는 pskalyber.dnip.net 으로 계정을 받았으며, 아래 설명에도 내 계정을 사용하여 예를 들었다.

[닫기] postfix 메일 서버 구축

sendmail, qmail, postfix 등의 메일서버 프로그램중 제일 최신 으로 보이는 postfix 를 설치했다.
$sudo apt-get install postfix

그리고 postfix 환경설정을 위해
$sudo dpkg-reconfigure postfix

터미널에 파란화면(?) 비슷하게, 터미널 치고는 화려한 그래픽을 자랑하는 메뉴같은것이 나온다
각 질문마다 하나씩 답을 해야 하는 관문이다.



이제 postfix의 설정파일을 수정할 차례다.
$sudo gedit /etc/postfix/main.cf
설정 파일이 열렸으면 파일의 끝에 아래 내용을 추가한다.
아래 내용은 SASL을 사용하여 SMTP인증을 하기 위한 설정이다

home_mailbox = Maildir/
mailbox_command =

smtpd_sasl_local_domain = 
smtpd_sasl_auth_enable = yes
smtpd_sasl_security_options = noanonymous
broken_sasl_auth_clients = yes
smtpd_recipient_restrictions =
permit_sasl_authenticated,permit_mynetworks,reject_unauth_destination
myorigin = /etc/mailname
inet_protocols = all

그리고 그 아래에 또 아래 내용은 추가한다.
이는 들어오고 나가는 메일에 대한 TLS 인크립션 사용을 위한 설정이다. 

smtp_tls_auth_only = no
smtp_use_tls=yes
smtpd_use_tls=yes
smtp_tls_note_starttls_offer=yes
smtpd_tls_key_file=/etc/ssl/private/smtpd.key
smtpd_tls_cert_file=/etc/ssl/certs/smtpd.crt
smptd_tls_CAfile=/etc/ssl/certs/cacert.pem
'smtpd_tls_loglevel = 1
smtpd_tls_received_header = yes
smtpd_tls_session_cache_timeout = 3600s
tls_random_source = dev:/dev/urandom
myhostname = pskalyber.dnip.net


이제 클라이언트에서 메일을 보낼 때 인증절차를 위해 sasl2를 설치해야 한다
$sudo apt-get install iibsasl2 libsasl2-modules sasl2-bin

그리고 smtpd.conf에 다음 내용을 써넣는다.
$sudo gedit /etc/postfix/sasl/smtpd.conf

pwcheck_method: saslauthd
mech_list: plain login

위 내용을 smtpd.conf 에 추가하고나면 이제 saslauthd 를 수정한다
$sudo gedit /etc/default/saslauthd

start 와 options 을 수정한다
start=yes
options="-c -m /var/spool/postfix/var/run/saslauthd"

그리고 saslauthd 내용에 아래를 추가한다.

PWDIR="/var/spool/postfix/var/run/saslauthd"
PARAMS="-m ${PWDIR}"
PIDFILE="${PWDIR}/saslauthd.pid"

이제 /var/spool/postfix/var/run/saslauthd 를 dpkg 한다.
$sudo dpkg-statoverride --force --update --add root sasl 755 /var/spool/postfix/var/run/saslauthd

saslauthd 를 실행한다.
$sudo /etc/init.d/saslauthd start

이제 메일 수신 프로그램인 pop과 imap을 설치한다
$sudo apt-get install courier-pop
$sudo apt-get install courier-imap


smtp 포트 25, pop 포트 101 이 열려있는지 확인한다
$netstat -ntl

smtp 를 테스트 해본다
$ telnet localhost 25
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
220 pskalyber.dnip.net ESMTP Postfix (Ubuntu)
ehlo pskalyber.dnip.net
250-mail.yourdomain.com
250-PIPELINING
250-SIZE 10240000
250-VRFY
250-ETRN
250-STARTTLS
250-AUTH PLAIN LOGIN
250-AUTH=PLAIN LOGIN
250-ENHANCEDSTATUSCODES
250-8BITMIME
250 DSN
mail from: pskalyber@pskalyber.dnip.net
250 2.1.0 Ok
rcpt to: mylovejsm@love.com
250 2.1.5 Ok
data
354 End data with .
Subject: this is test
I Love U
. (and Enter In a new Line)
250 2.0.0 Ok: queued as C515B863FC
quit
221 2.0.0 Bye
Connection closed by foreign host.

pop을 테스트 해본다.
$ telnet localhost pop3
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
+OK Hello there.
user "사용자아이디"
+OK Password required.
pass "사용자패스워드"
+OK logged in.

[닫기] postfix 메일 서버 구축


이제 우분투에 기본으로 설치되어있는 에볼루션메일을 이용하여 메일을 보내고 받을 수 있도록 설정해보자.
에볼루션메일을 실행 후, 편집-기본 설정에서 [추가]를 눌러서 새 메일 계정을 추가한다
pop은 pskalyber.dnip.net 으로 설정했고 smtp는 pskalyber.dnip.net 으로 하니까 메일 송신이 안되길래
smtp대신에 sendmail을 하니까 메일 송신이 되었다. (왜 그런지는 나도 잘 ...-_-)
여하튼 일단 잘 보내지니까 왜 그런지는 나중에 생각해볼 일이고.

[닫기] 에볼루션메일 설정 스냅샷


[닫기] 에볼루션메일 설정 스냅샷


메일 송수신이 잘 되는 것을 확인!!!
OK!!!

복잡했다. 특히나 postfix설정 부분이 엄청 복잡했다.
저걸 다 저렇게 설정을 해야되는 것 같지는 않은데. 분명 쓸떼없는 설정 부분도 있겠지만
내가 일일이 그런 부분을 찾아볼 시간은 없었기 때문에 그냥 시키는대로 다 해버렸다.

투자한 시간은 많은데, 아무리 해도 안되길래 엄청 짜증났었지만
그래도 성공하고 보니 그만큼 보람이 있다.

아 좋아!

<참고 사이트>
https://help.ubuntu.com/community/PostfixBasicSetupHowto
https://help.ubuntu.com/community/Postfix

반응형
반응형

출처: http://linuxro-textcube.blogspot.kr/2010/01/vmware%EC%97%90-%EC%84%A4%EC%B9%98%EB%90%9C-linux%EC%9D%98-%EB%94%94%EC%8A%A4%ED%81%AC-%EC%9A%A9%EB%9F%89-%ED%82%A4%EC%9A%B0%EA%B8%B0lvm.html

 

2년전에 VMWare에 설치하여 지금껏 사용해 오던 리눅스 가상머신의 하드디스크 용량이 이제 거의 남아 있지 않게 되었다. 주로 개발용으로 사용할 목적으로 리눅스 가상머신을 만들고, 또 처음 설치할 당시에는 이 정도 용량이면 충분하겠지 했는데, 의외로 오랜 기간 동안 가상머신이 망가지지 않고 지금까지 개발환경으로 사용해 온 것이다. 이제 처음 할당했던 디스크가 거의 다 사용되어 하드 디스크의 확장이 필요하다. 실제 컴퓨터의 경우 하드디스크 용량을 늘리고 싶으면 하드디스크를 새로 구매해서 장착하고 파티션 잡고, 포멧해서 마운트 하는 과정을 거친다. VMWare상의 가상머신에서도 비슷한 과정으로 디스크 용량을 늘려준다.


VMWare에 배포판 리눅스를 설치하면 대부분 LVM타입으로 디스크가 설정된다. 따라서 본 포스트에서는 VMWare상에서 디스크의 파티션이 LVM으로 설정된 경우 디스크 용량을 늘리는 방법을 살펴본다.

VMWare에 설치된 리눅스의 디스크 용량을 늘리는 작업의 순서는 다음과 같다.

 

1)  용량을 늘리고자 하는 가상머신에 장착된 하드디스크의 용량을 키워준다.

2)  Guest OS인 리눅스를 부팅한다.

3)  fdisk 유틸을 이용해서 PV(Physical Volume)를 설정한다.

4)  VG(Volume Group)를 확장한다

5)  LV(Logical Volume) 늘리기.

6)  파일 시스템을 조정한다.

 

  각 단계를 살펴보자. 기존에 20GBytes의 하드디스크 용량을 할당해서 설치한 리눅스에 20GBytes의 용량을 늘려 줘서 총 40GBytes의 용량을 가진 리눅스 시스템으로 업그레이드 해본다. 참고로 설치되어 있는 리눅스는 Fedora8이고, 하드디스크는 20GBytes, LVM(Logical Volume Manager) 으로 관리되고 있다.


1. 가상머신상의 하드디스크 늘리기


  가상머신에 설치되어 있는 20GBytes 짜리 하드디스크를 40GBytes 짜리 하드디스크로 용량을 늘려 준다. 가상머신의 하드디스크 용량 확장은 vmware-vdiskmanager.exe 라는 유틸을 이용한다. vmware-vdiskmanager.exe VMWare 설치시 기본 설치되는 유틸리티이며C:\Program Files\VMware\VMware Workstation에 있다. 콘솔창에서 다음과 같이 명령을 수행한다. 여기서 "Other Linux 2.6.x kernel.vmdk"는 설치되어 있는 Fedora8의 가상머신 이미지 이다. –x 옵션은 가상디스크의 용량을 지정된 크기만큼 늘리라는 명령이다. 여기서는 40Gb를 지정해 줬기 때문에 가상디스크의 크기가 40GBytes로 확장되게 된다.

 

“C:\Program Files\VMware\VMware Workstation\vmware- vdiskmanager.exe” -x 40Gb "Other Linux 2.6.x kernel.vmdk"

 
  하드디스크 증설에는 시간이 꽤 걸린다. 마치 컴퓨터 전원을 내리고, 드라이버로
나사 풀고, 하드디스크 끼워 넣는 시간 만큼은 걸리는 것 같다.(시간이 꽤 걸린다.)  

2. 이제 하드디스크를 증설했으면 리눅스를 부팅한다.

  가상머신을 부팅해서 디스크 사용량과 디스크 관리 타입을 확인해 보니, 다음 그림과 같다. 디스크는 거의 다 사용해서 이제 남은 용량이 658Mb정도 이고, VolGroup00-LogVol00 “/” (Root)에 마운트 되어 있으며, 파일 시스템은 ext3 타입이다.


 


3. PV(Physical Volume)를 생성한다.

 

  /dev/sda3에 파티션을 만들기 위해서는 디바이스 노드 파일이 있어야 하므로, 미리 있는지 확인해 보고 없으면 만들어 준다. 살펴 봤더니, 없어서 다음과 같이 디바이스 노드를 만들어 주고, 소유권을 root:disk로 변경해 주었다.

 

mknod /dev/sda3 b 8 3

chown root:disk /dev/sda3


  fdisk를 이용해서 늘어난 디스크의 크기와 각 파티션별 디스크 타입을 확인해 보면 다음 그림과 같다. 기존에 20GBytes였는데, 42.9GBytes로 늘어 났고, /dev/sda2 Linux LVM 타입으로 파티션이 설정되어 있으며, 확장된20GBytes의 디스크 용량은 아직 파티션으로는 잡혀 있지 않은 상태임을 알 수 있다. 그림에서 처럼 새로운 파티션을 Primary partition 3로 추가 하고, 파티션 타입을 LinuxLVM타입(8e)으로 설정해 준다.


 


 파티션을 만들고 나서는 반드시 재부팅을 해 줘야 한다.

 

시스템 재부팅 후 /dev/sda3 PV(Physical Volume)를 생성해 준다.

pvcreate /dev/sda3

 PV 생성 명령의 수행 화면은 다음과 같다.

 


4. VG(Volume Group) 확장


  다음 명령을 수행하여 VG를 확장한다.

vgextend VolGroup00 /dev/sda3


  위의 명령은 VolGroup00 dev/sda3를 추가하라는 명령이다. pvscan명령을 이용하여 /dev/sda3VolGroup00에 제대로 추가되었는지 확인한다. vgdisplay VolGroup00 명령을 이용해 Volume group 00의 내용을 보면 다음과 같다.

 


5. LV(Logical Volume) 늘리기.

 

  LV의 확장은 lvextend 명령을 이용하여 수행한다. 기존의 LV에 새로 추가된 20GBytesPV를 확장하자.

lvextend –L +20g /dev/VolGroup00/LogVol00


 

6. 파일 시스템 크기 조정

 

  다음 명령어를 이용하여 변경된 LV를 파일 시스템에 반영한다.

resize2fs /dev/VolGroup00/LogVol00

 

  이제 하드디스크의 용량을 확인해 보면, 새로 추가한 20GBytes의 용량이 새로 확보되었음을 알 수 있다.

 

  지금까지 VMWare에 설치된 리눅스의 디스크 파티션 타입이 LVM으로 설정되어 있는 경우 디스크 용량을 확장하는 방법에 대해 간략히 살펴 보았으며, 쉽게 확장할 수 있음을 알 수 있다.


 

참조)

   1. vmware-vdiskmanager 사용법
    2. LVM 소개

    3. Logical Volume Manager(Linux)

반응형

+ Recent posts