Konfigurere logstash på Centos 6

Konfigurere logstash på Centos 6

Tue 26 February 2013

I denne artikkelen ser jeg litt på videre konfigurasjon av logstash, redis, elastichsearch og kibana oppsett på Centos 6.

1: Vi begynner med å lage foldere for konfigurasjonsfiler og loggfiler.

{code class="brush:bash"}

# mkdir /etc/logstash

# mkdir /var/log/logstash

... mer kommer

2: Vi laster så ned init script til logstash. Dette slik at vi kan starte / stoppe og sjekke status på en enklere måte.

{code class="brush:bash"}

# wget http://cookbook.logstash.net/recipes/using-init/logstash.sh

# mv logstash /etc/init.d/logstash

# chmod +x /etc/init.d/logstash

Jeg legger til noen få endringer i denne.

{code class="brush:bash"}

LOGFILE=/var/log/logstash/logstash.log

JARNAME=logstash-1.1.9-monolithic.jar

FILE=/etc/logstash/hostname.conf

ARGS="-jar ${JARNAME} agent -v -f ${FILE} --log ${LOGFILE}"

3: Vi lager så fil input / output conf filen vi skal bruke

{code class="brush:bash"}

# vi /etc/logstash/hostname.conf

Vi legger inn et syslog input og elasticseach som output (+ debug).

{code class="brush:bash"}

input {
syslog {
type => syslog
port => 5514
}
}

output {
stdout {
debug => true
debug_format => "json"
}

elasticsearch {
host => "127.0.0.1"
}
}

4: Vi må konfigurere elasticsearch

{code class="brush:bash"}

# vi /opt/elasticsearch/config/elasticsearch.yml

Vi begynner med å skru på kompresjon på tcp-kommunikasjonen.

{code class="brush:bash"}

# Enable compression for all communication between nodes (disabled by default):
transport.tcp.compress: true


5: Vi må laste ned og installere Kibana

{code class="brush:bash"}

# git clone git://github.com/rashidkpc/Kibana.git

# gem install bundler

# bundle install

# vi KibanaConfig.rb

Sett Elasticsearch = "localhost:9200"

{code class="brush:bash"}

# ruby kibana.rb

6: Konfigurer rsyslog på hosten som skal sende logger inn til logstash

{code class="brush:bash"}

# vi /etc/rsyslog.conf

Legg til følgende nederst i filen. Om du har en mappe "rsyslog.d" kan du lage en ny fil "logstash.conf" istedetfor.

{code class="brush:bash"}

#Forward to logstash
*.* @@logstash_host.no:5514

Restart rsyslog

{code class="brush:bash"}

# /etc/init.d/rsyslog restart

7: Husk å åpne portene som trengs.

kibana - 5601

elasticseach - 9200

syslog - 5514


8: Starte alle tjenester som skal kjøre på logstashserveren

{code class="brush:bash"}

# /etc/init.d/logstash start

# /opt/elasticsearch/bin/./elasticsearch

# ruby /opt/kibana/kibana-daemon.rb start

9: Oppsummering

Vi har nå et oppsett som faktisk kan brukes for å shippe logger rundt omkring. Vi har fått testet en reell input (syslog) og en reell output (elasticsearch). Vi kan bruke andre verktøy en Kibane for å visulisere datene vi har i elasticsearch, og dette kommer jeg sikkert til å prøve etterhvert.