apache logs – fluentd – mongodb – Hizli , sipsak loglari toplamaca …

Senaryomuz ;

  • Elimizde bir adet sanal makinemiz mevcut, uzerine ubuntu kurulmus , apache yuklenmis , free bir web site template ile icerik yaratilmis durumda.
  • Yaratilan apache access log’larini hem aggregate edip hemde tek bir yere toplayacagiz
  • Hem store olarak hemde uzerinde sorgulama yapmak icin MongoDB kullanacagiz

 


 

Hizlica tek node mongodb kuralim 

Kullanilacak isletim sistemi

noroot@mongodb01single:~$ lsb_release -a

No LSB modules are available.

Distributor ID: Ubuntu

Description: Ubuntu 14.04.3 LTS

Release: 14.04

Codename: trusty

noroot@mongodb01single:~$ sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv 7F0CEB10

[sudo] password for noroot:

Executing: gpg –ignore-time-conflict –no-options –no-default-keyring –homedir /tmp/tmp.Ijdtvnfxbw –no-auto-check-trustdb –trust-model always –keyring /etc/apt/trusted.gpg –primary-keyring /etc/apt/trusted.gpg –keyserver hkp://keyserver.ubuntu.com:80 –recv 7F0CEB10

gpg: requesting key 7F0CEB10 from hkp server keyserver.ubuntu.com

gpg: key 7F0CEB10: public key “Richard Kreuter <richard@10gen.com>” imported

gpg: Total number processed: 1

noroot@mongodb01single:~$ echo “deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse” | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list

deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse

Tekrar guncelleyelim

noroot@mongodb01single:~$ sudo apt-get update

Kuralim gitsin 

noroot@mongodb01single:~$ sudo apt-get install mongodb-org

Varsayili olarak 127.0.0.1 uzerinden ve 27017 portunu dinler , asagidaki satiri devre disi birakin

#  bindIp: 127.0.0.1

sudo vi /etc/mongod.conf

Env degerlerine dikkat mutlaka UTF8 olsun , mongo yazili shell’e dusmeden once bunu yapin

noroot@mongodb01single:~$ cat /etc/environment

PATH=”/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games”

LANG=en_US.utf-8

LC_ALL=en_US.utf-8

Mongo servisine bir restart 

noroot@mongodb01single:~$ sudo service mongod restart

mongod stop/waiting

mongod start/running, process 1283


 

Fluentd Konfigrasyonu 

 

Oncelikle td-agent.conf dosyasini editleyelim

noroot@mongodb01single:~$ sudo vi /etc/td-agent/td-agent.conf

Dosyanin en sonuna asagidaki satirlari ekleyin …

<source>

#Bildigimiz tail ile okuayacagiz apache logunu

type tail

#Bu arada eski log dosyaslari okunmayacak, sadece yeni gelenler

format apache2

#Apache log dosyasi ve yolu

path /var/log/apache2/access.log

#Log dosyasini okurken nerede kaldigini bilmek icin pos file okunuyor

pos_file /var/log/td-agent/apache2.access_log.pos

#Routing i belirtmek icin etiketliyoruz

tag apache.access

</source>

<match apache.access>

#Mongo ya atacagiz

type mongo

#Mongodb db adi + collection adi

#Bu arada default kurulumda kullanici adi ve sifre geregi yok

database apachedb

collection accesslogs

#Mongodb dinledigi port ve ip adresi

host 10.111.21.161

port 27017

#Mongoya datayi atam suresi

flush_interval 10s

#Zaman etiketinin oldugunu garanti edelim

include_time_key true

</match>

 

ve servisi restart edin

noroot@apache01fluentd:~$ sudo service td-agent restart

* Restarting td-agent  td-agent

Logdan kontrol edelim , calisiyor mu cidde ? 

noroot@apache01fluentd:~$ tail -f /var/log/td-agent/td-agent

td-agent.log     td-agent-ui.log

noroot@apache01fluentd:~$ tail -f /var/log/td-agent/td-agent.log 

collection accesslogs

host 10.111.21.161

port 27017

flush_interval 10s

include_time_key true

</match>

</ROOT>

2015-12-24 15:05:15 +0200 [info]: listening fluent socket on 0.0.0.0:24224

2015-12-24 15:05:15 +0200 [info]: listening dRuby uri=”druby://127.0.0.1:24230″ object=”Engine”

2015-12-24 15:05:15 +0200 [info]: following tail of /var/log/apache2/access.log

Simdi Mongo tarafini kontrol edelim 

mongo shell >

> show dbs

apachedb  0.000GB

local     0.000GB

> use apachedb

switched to db apachedb

> show collections

accesslogs

> db.accesslogs.findOne()

{

“_id” : ObjectId(“567beb25cec70e0835000001”),

“host” : “10.111.21.160”,

“user” : null,

“method” : “GET”,

“path” : “/”,

“code” : 200,

“size” : 23479,

“referer” : null,

“agent” : “ApacheBench/2.3”,

“time” : ISODate(“2015-12-24T12:54:58Z”)

}

>

Baslangic icin simdilik bu …

VM

Posted on 24/12/2015, in BigData, fluent, Mongo and tagged , , , . Bookmark the permalink. Leave a comment.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: