ELK Stack põhine logiserver

Allikas: Kuutõrvaja
Redaktsioon seisuga 25. mai 2015, kell 12:27 kasutajalt Jj (arutelu | kaastöö)

Sissejuhatus

ELK stack nimi tuleb selle komponentide esitähtedest: Elasticsearch-Logstash-Kibana. Selle näol on tegemist logiserveri lahendusega, mis pakub indekseerimist ja põhjalikke otsinguid võimaldavat veebiliidest.

ELK stack koosneb kolmest komponendist

  1. Logstash: mis kuulab 5000 pordil ja võtab logid serveritest vastu
  2. Elasticsearch: tegeleb logi salvestamise ja indekseerimisega
  3. Kibana: weebiliides mis võimaldab otsingu ja visualiseerimisega
   _____   ELK logiserver 192.168.1.10
  |     |  :5000/tcp
  |_____|  :5000/udp
     |
     |
    -|---------|----------|----....---|--
               |          |           |
             __|__      __|__       __|__
            |     |    |     |     |     | (logi ELKi edastavad serverid)
            |_____|    |_____|     |_____|
        
              smtp       www         dns

Paigaldamine gentoos

Paigaldame vajalikud paketid

# emerge app-admin/logstash-bin app-misc/elasticsearch www-apps/kibana-bin virtual/jdk

Ning seejärel java versioon paika

# java-config --set-system-vm icedtea-bin-7"

Seejärel tuleb tekitada vajalikud konfifailid

/etc/elasticsearch/logging.yml
/etc/elasticsearch/elasticsearch.in.sh
/etc/elasticsearch/elasticsearch.yml
/etc/logstash/conf.d/agent.conf

Esimesed kolm võivad olla vaikimisi süsteemi näidetekausta paigaldatud ja muutmist ei nõua. Logstashi agent.conf konfifail võiks välja näha järgnev

input {
  tcp {
    port => 5000
    type => syslog
  }
  udp {
    port => 5000
    type => syslog
  }
}


filter {
  if [type] == "syslog" {
    grok {
      match => { "message" => "<%{POSINT:syslog_pri}>%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
    }
  }
}

output {
  elasticsearch { host => localhost }
  stdout { codec => rubydebug }
}

Teenused automaatselt startima

# ln -s /etc/init.d/kibana /etc/runlevels/default/
# ln -s /etc/init.d/logstash /etc/runlevels/default/
# ln -s /etc/init.d/elasticsearch /etc/runlevels/default/

Kliendid

TODO

Syslog-ng puhul võib seadistada

destination loghost { udp("192.168.1.10"); };
log { source(src); filter(f_mail); destination(mail); destination(loghost); flags(final); };

Kibana

Kibana veebiliides töötab pordil 5601

Discover-unfiltered.png

Lingid

https://secure.trifork.com/dl/goto-berlin-2014/GOTO_Night/logstash-kibana-intro.pdf

https://www.digitalocean.com/community/tutorials/how-to-use-kibana-dashboards-and-visualizations

https://hibern8.wordpress.com/2014/02/26/logstash-redis-elasticsearch-and-kibana-real-time-data-analysis-on-debian-wheezy/

https://home.regit.org/2014/02/02/

https://deviantony.wordpress.com/2014/05/19/centralized-logging-with-an-elk-stack-elasticsearch-logback-kibana/

https://www.digitalocean.com/community/tutorials/how-to-use-logstash-and-kibana-to-centralize-and-visualize-logs-on-ubuntu-14-04