Konfigurere logstash på Centos 6

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

{/code}

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

{/code}

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}”

{/code}

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

{code class=”brush:bash”}

# vi /etc/logstash/hostname.conf

{/code}

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”
}
}

{/code}

4: Vi må konfigurere elasticsearch

{code class=”brush:bash”}

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

{/code}

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

{/code}

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

{/code}

Sett Elasticsearch = “localhost:9200″

{code class=”brush:bash”}

# ruby kibana.rb

{/code}

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

{code class=”brush:bash”}

# vi /etc/rsyslog.conf

{/code}

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

{/code}

Restart rsyslog

{code class=”brush:bash”}

# /etc/init.d/rsyslog restart

{/code}

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

{/code}

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.

Leave a Reply

Your email address will not be published. Required fields are marked *