- Pobierz link
- X
- Inne aplikacje
- Pobierz link
- X
- Inne aplikacje
Wstęp
ELK(https://www.elastic.co/) - Elasticsearch + Logstash + Kibana, czyli grupa narzędzi pomagająca scentalizować logi.Ostatnio w firmie zaprzegneliśmy ELK do zarządzania i analizowania access logów oraz logów aplikacyjnych.
Po krótce opisze proces instalacji i konfiguracji całego pakietu.
ElasticSearch
Sciągnij i zainstaluj ElasticSearchwget https://download.elasticsearch.org/elasticsearch/elasticsearch/elasticsearch-1.5.1.deb sudo dpkg -i elasticsearch-1.5.1.deb
zainstaluj Java Service Wrapper dla ElasticSearch
curl -L http://github.com/elasticsearch/elasticsearch-servicewrapper/tarball/master | tar -xz sudo mkdir /usr/local/share/elasticsearch sudo mkdir /usr/local/share/elasticsearch/bin sudo mv *servicewrapper*/service /usr/local/share/elasticsearch/bin/ rm -Rf *servicewrapper* sudo /usr/local/share/elasticsearch/bin/service/elasticsearch install sudo ln -s `readlink -f /usr/local/share/elasticsearch/bin/service/elasticsearch` /usr/local/bin/rcelasticsearch
w pliku elasticsearch.yml odkomentuje i zmien na poprawny IP np:
network.host: 192.168.XXX.XXX
starujemy ElasticSearch:
sudo service elasticsearch start
Upewnijmy się czy service wystartował:
curl http://192.168.XXX.XXX:9200
{ "status" : 200 , "name" : "Storm" , "version" : { "number" : "1.3.1" , "build_hash" : "2de6dc5268c32fb49b205233c138d93aaf772015" , "build_timestamp" : "2014-07-28T14:45:15Z" , "build_snapshot" : false , "lucene_version" : "4.9" }, "tagline" : "You Know, for Search" } |
Logstash
instalujemy:
cd ~ wget https://download.elasticsearch.org/logstash/logstash/logstash-1.4.2.tar.gz tar xzvf logstash-1.4.2.tar.gz mv logstash-1.4.2 /opt/logstash adduser --system --disabled-login --no-create-home --group logstash usermod -a -G adm logstash #auto start script for logstash # download init script wget -O /etc/init.d/logstash https://raw.githubusercontent.com/elasticsearch/logstash/master/pkg/logstash.sysv # make it executable chmod +x /etc/init.d/logstash # make it auto-startable update-rc.d logstash defaults # configure logstash folder # create logstash config dir mkdir -p /etc/logstash/conf.d # create logstash logs dir mkdir /var/log/logstash chown -R logstash: /var/log/logstash # make home folder mkdir /var/lib/logstash chown -R logstash: /var/lib/logstash
konfiguracja Logstasha i Logstash-forwardera
tworzymy certyfikaty SSL
sudo mkdir -p /etc/pki/tls/certs sudo mkdir /etc/pki/tls/private
OpenSSL configuration file:
sudo vi /etc/ssl/openssl.cnf
Znajdź sekcje
[ v3_ca ]
w pliku, i dodaj pod ną natępujący wpis (oczywiście z prawidłowym namiarem na maszynkę z logstashem):subjectAltName = IP: 192.168.XXX.YYY
Teraz wygeneruj certyfikat SSL i klucz prywatny (/etc/pki/tls/),za pomoca komendy:
cd /etc/pki/tls sudo openssl req -config /etc/ssl/openssl.cnf -x509 -days 3650 -batch -nodes -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt
konfigurujemy Logstasha
sudo vi /etc/logstash/conf.d/01-lumberjack-input.conf
wrzucamy konfiguracje input do pliku:
input { lumberjack { port => 5000 type => "logs" ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt" ssl_key => "/etc/pki/tls/private/logstash-forwarder.key" } } |
sudo vi /etc/logstash/conf.d/10-syslog.conf
wrzucamy konfigurację filter do pliku:filter { if [type] == "json" { json { source => "message" } } if [type] == "accesslog" { grok { match => { "message" => "%{COMBINEDAPACHELOG}" } } date { locale => 'en' match => [ "timestamp" , "dd/MMM/yyyy:HH:mm:ss Z" ] } } } |
sudo vi /etc/logstash/conf.d/30-lumberjack-output.conf
wrzucamy konfigurację output do pliku:output { if [type] == "json" { elasticsearch { host => "192.168.XXX.XXX" port => "9200" protocol => "http" index => "json-logs-%{+YYYY.MM.dd}" } stdout { codec => rubydebug } } } |
kopiowanie certyfikatu SSL
Z serwera Logstash , kopiujemy SSL'a na drugi Server, gdzie będzie zaintsalowany logstash-forwarder:scp /etc/pki/tls/certs/logstash-forwarder.crt user@server_private_IP:/tmp
konfiguracja Logstash Forwarder
instalujemy:wget https://download.elastic.co/logstash-forwarder/binaries/logstash-forwarder_linux_amd64 tar xzvf logstash-forwarder_linux_amd64 sudo chmod +x logstash-forwarder_linux_amd64 sudo mv logstash-forwarder_linux_amd64 /opt/logstash-forwarder/logstash-forwarder cd /etc/init.d/; sudo wget https://raw.githubusercontent.com/elasticsearch/logstash-forwarder/a73e1cb7e43c6de97050912b5bb35910c0f8d0da/logstash-forwarder.init -O logstash-forwarder sudo update-rc.d logstash-forwarder defaults sudo mkdir -p /etc/pki/tls/certs sudo cp /tmp/logstash-forwarder.crt /etc/pki/tls/certs/
sudo vi /etc/logstash-forwarder
w pliku wstawiamy:
{ "network" : { "servers" : [ "192.168.XXX.YYY:5000" ], "timeout" : 15 , "ssl ca" : "/etc/pki/tls/certs/logstash-forwarder.crt" }, "files" : [ { "paths" : [ "/path/to/json/log/file" , ], "fields" : { "type" : "json" } } { "paths" : [ "/path/to/access/log/file" ], "fields" : { "type" : " } } ] } |
sudo service logstash-forwarder restart
Instalacja Kibana
cd ~ wget https://download.elasticsearch.org/kibana/kibana/kibana-4.0.1-linux-x64.tar.gz tar xzvf kibana-4.0.1-linux-x64.tar.gz rm kibana-4.0.1-linux-x64.tar.gz mv kibana-4.0.1-linux-x64 /var/opt/kibana-4.0.1
#start screen which keeps running even if you disconnect your session
elasticsearch_url: "http://192.168.XXX.XXX:9200"
sudo wget https://gist.githubusercontent.com/thisismitch/8b15ac909aed214ad04a/raw/bce61d85643c2dcdfbc2728c55a41dab444dca20/kibana4 sudo chmod +x kibana4 sudo ./kibana4 start|stop|restart|status
Komentarze
Prześlij komentarz