Keskse logilahenduse rakendamine V2: Difference between revisions
m →Nginx |
mNo edit summary |
||
(165 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
Juhend on mõeldud Algaja/Keskmise oskustega GNU/Linux administraaotritele. | |||
Juhend kehtib tarkvarale: | |||
-CentOS 6.6 | |||
-Trisquel GNU/Linux 7.0 | |||
-Debian GNU/Linux 7.7 | |||
-Logstash 1.4.2 | |||
-Kibana 3.0.1 | |||
-Elasticsearch 1.1.1 | |||
-Logstash-forwarder 0.3.1 | |||
Autor: Kristjan Indlo A41 | Autor: Kristjan Indlo A41 | ||
Kuupäev: 2014.11.22, 2014.12.03 | Kuupäev: 2014.11.22, 2014.12.03, 2014.12.09, 2014.12.10, 2014.12.11, 2015.01.13 | ||
= Eesmärk = | = Eesmärk = | ||
Antud juhendi põhiline eesmärk on algupärane labor [[Keskse logilahenduse rakendamine]] kaasajastada ja lihtsustada. | Antud juhendi põhiline eesmärk on algupärane labor [[Keskse logilahenduse rakendamine]] kaasajastada ja võimalikult palju lihtsustada. | ||
Sekundaarne eesmärk on kasutada kolme erinevat operatsioonisüsteemi, kahest erinevast perekonnast: | Sekundaarne eesmärk on kasutada kolme erinevat operatsioonisüsteemi, kahest erinevast perekonnast: | ||
Line 14: | Line 34: | ||
3) CentOS GNU/Linux (RHEL perekond) | 3) CentOS GNU/Linux (RHEL perekond) | ||
=== Juhendi eelised === | |||
Selle juhendi eelisteks on: | |||
-Uuema tarkvara kasutuselevõtt. Logstash, kibana ja elasticearch on muutunud palju. | |||
-See juhend katab rohkem vabu operatsioonisüsteeme. | |||
-Kasutusel on nii .deb, kui ka .rpm pakendusega süsteemid | |||
-Kerge rakendus logstash-forwarder kogub logisi ja edastab neid logiserverile | |||
-Ühenduse usalduse tagamiseks on kasutatud logiserveris loodud sertifikaati(nõutud parameeter logstash-forwarder poolt) | |||
=== Juhendi puudused === | |||
Selle juhendi miinusteks on: | |||
-Siin juhendis ei käsitleta Windows logide kogumist. [[Keskse logilahenduse rakendamine|Eelmisest juhendist võib sellisel juhul kasu olla]] | |||
-Antud juhend venib pikaks võrreldes juhendi esimese versiooniga | |||
= Sissejuhatus laborisse = | = Sissejuhatus laborisse = | ||
Line 21: | Line 62: | ||
Eelneva versiooni Keskse logihalduse laborist leiab [[Keskse logilahenduse rakendamine|SIIT]] | Eelneva versiooni Keskse logihalduse laborist leiab [[Keskse logilahenduse rakendamine|SIIT]] | ||
Selles juhendis on kasutatud logiserveri ülesseadmiseks samu põhikomponente: | |||
-Logstash | |||
-Elasticsearch | |||
-Kibana | |||
Logisi klientidel kogub logstash-forwarder | |||
''' NB! Kõik käsureategevused on läbi viidud juurkasutaja õigustes (root). ''' | |||
Line 62: | Line 114: | ||
Kuna kibana on veebirakendus, on vaja ka veebiserverit. | Kuna kibana on veebirakendus, on vaja ka veebiserverit. | ||
Siin laboris kasutatakse Nginx | Siin laboris kasutatakse veebiserveriks ja proksimiseks Nginx | ||
== Trisquel Belenos 7.0 x86_64 == | == Trisquel Belenos 7.0 x86_64 == | ||
Esimene tööjaam, millelt kogutakse logisi: '''syslog''' ja '''auth.log'''. | |||
Tööjaamal on graafiline liides LXDE. Paigladatud on "Trisquel Mini" | Tööjaamal on graafiline liides LXDE. Paigladatud on "Trisquel Mini" | ||
Line 90: | Line 142: | ||
└─vda1 253:1 0 8G 0 part / | └─vda1 253:1 0 8G 0 part / | ||
== CentOS 6.6 x86_64 == | |||
Server, millelt kogutakse sama tüüpi logisid. | |||
Logid(nende nimed) on erinevad, demonstreerimaks erinevusi Debianiliste ja Redhatiliste erinevust. | |||
Ip addr: | Ip addr: | ||
Line 104: | Line 157: | ||
CPU: 1x | CPU: 1x | ||
MEM: 512M | |||
Video: Cirrus Logic 9M | Video: Cirrus Logic 9M | ||
Line 115: | Line 170: | ||
└─VolGroup-lv_swap (dm-1) 253:1 0 816M 0 lvm [SWAP] | └─VolGroup-lv_swap (dm-1) 253:1 0 816M 0 lvm [SWAP] | ||
= Paigaldus ja konfigureerimine = | = Paigaldus ja konfigureerimine[https://www.digitalocean.com/community/tutorials/how-to-use-logstash-and-kibana-to-centralize-and-visualize-logs-on-ubuntu-14-04] = | ||
''' NB! Kõik käsureategevused on läbi viidud juurkasutaja õigustes (root). ''' | ''' NB! Kõik käsureategevused on läbi viidud juurkasutaja õigustes (root). ''' | ||
Line 155: | Line 210: | ||
Lisa elasticsearch | Lisa elasticsearch apt-varamuvõti: | ||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | {|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | ||
Line 162: | Line 217: | ||
Lisa ka elasticsearch | Lisa ka elasticsearch varamu(käsk uuendab tarkvaravaramute nimekirja): | ||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | {|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | ||
Line 169: | Line 224: | ||
Paigalda elasticsearch(v1.1.1.) | Paigalda elasticsearch(v1.1.1.)[http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup-repositories.html] | ||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | {|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | ||
Line 177: | Line 232: | ||
Turvalisuse suurendamiseks keela skriptide | Turvalisuse suurendamiseks keela skriptide dünaamiline koostamine. Skripte saab juurde lisada eraldi kaustast (sama põhimõte nagu httpd/apache konfiguratsiooni nö ''includemine'')[http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html] | ||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | {|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | ||
Line 189: | Line 244: | ||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | update-rc.d elasticsearch defaults 95 10 && service elasticsearch start | | style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | update-rc.d elasticsearch defaults 95 10 && service elasticsearch start | ||
|} | |} | ||
=== Kibana === | === Kibana === | ||
Line 209: | Line 263: | ||
|} | |} | ||
Konfigureeri Kibana kasutama õiget | Konfigureeri Kibana kasutama õiget serverinime/aadressi | ||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | {|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | ||
Line 227: | Line 281: | ||
+elasticsearch: {server: "http://logiserver.minudomeen.midagi:80", withCredentials: true}+ | +elasticsearch: {server: "http://logiserver.minudomeen.midagi:80", withCredentials: true}+ | ||
=== Nginx === | === Nginx === | ||
Line 237: | Line 290: | ||
|} | |} | ||
Lae alla | Lae alla nginx kibana sample konfiguratsioonifail kibana githubist: | ||
''' NB! Käsk kirjutab üle NGINX tavaveebikonfi, kui tahad seda alles hoida, siis tee sellest tagavarakoopia! ''' | ''' NB! Käsk kirjutab üle NGINX tavaveebikonfi, kui tahad seda alles hoida, siis tee sellest tagavarakoopia! ''' | ||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | | |||
wget https://gist.githubusercontent.com/thisismitch/2205786838a6a5d61f55/raw/f91e06198a7c455925f6e3099e3ea7c186d0b263/nginx.conf -O /etc/nginx/sites-available/default | |||
|} | |||
Muuda äsja allalaetud faili konfiguratsiooni: | |||
{|style="background:lightyellow;width:450px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | <tekstiredaktor> /etc/nginx/sites-available/default | |||
|} | |||
Muuda parameetrid vastavalt vajadusele: | |||
server_name kibana.myhost.org; | |||
root /usr/share/kibana3; | |||
Juhendi autori näite puhul: | |||
server_name logiserver.minudomeen.midagi; | |||
root /var/www/kibana-3.0.1; | |||
Paigalda parooli genereerimise jaoks vajalik apache2-utils pakk: | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | apt-get install apache2-utils | |||
|} | |||
Genereeri kasutajanimi ja parool kibana veebirakendusele | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | {|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | ||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | | | style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | htpasswd -c /etc/nginx/conf.d/<kibanaADDR>.htpasswd <USER> | ||
|} | |||
Juhendi autori näite puhul | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | htpasswd -c /etc/nginx/conf.d/logiserver.minudomeen.midagi.htpasswd student | |||
|} | |||
[[File:Screenshot_logiklient_belenos_2014-12-09_21-27-56.png|200px|thumb|right|Kibana tervitusleht]] | |||
Taaskäivita nginx teenus | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | service nginx restart | |||
|} | |||
Testi tulemust, mine veebilehitsejaga: | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | http://<sinu logiserveri fqdn> | |||
|} | |||
Juhendi autoril on Trisquel GNU/Linux virtuaalmasinas graafiline keskkond ja kohalik nimelahendus, seega test sai läbi viidud eelmainitud masinas | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | http://logiserver.minudomeen.midagi | |||
|} | |||
Tulemuseks peab olema kibana tervitusleht. | |||
=== Logstash === | |||
Lisa elasticsearch logstash apt-varamu (käsk uuendab ka varamunimekirja) | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | echo 'deb http://packages.elasticsearch.org/logstash/1.4/debian stable main' > /etc/apt/sources.list.d/logstash.list && apt-get update | |||
|} | |||
Paigalda logstash | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | apt-get install logstash=1.4.2-1-2c0f5a1 | |||
|} | |||
Logstashile SSL sertifikaatide genereerimine | |||
Esmalt loo sertifikaatide hoiustamiseks kaustad | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | mkdir -p /etc/pki/tls/certs && mkdir -p /etc/pki/tls/private | |||
|} | |||
Genereeri vajalik võti ja sertifikaat, sertifikaati kasutatakse hiljem logiserveri ja logitavate serveri vahel usalduse tekitamiseks | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | cd /etc/pki/tls; sudo openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt | |||
|} | |||
Muuda sertifikaat loetavaks, et seda saaks kopeerida klientidesse, mille logisi koguma hakatakse: | |||
{|style="background:lightyellow;width:450px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | chmod a+r /etc/pki/tls/certs/logstash-forwarder.crt | |||
|} | |||
Konfigureeri logstash input(käsk loob uue faili) | |||
{|style="background:lightyellow;width:450px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" |<tekstiredaktor> /etc/logstash/conf.d/01-lumberjack-input.conf | |||
|} | |||
Konfigureeri lumberjack: mis port on avatud, mis sertifikaati ja võtit kasutatakse, et luua usaldust logstash kliendi ja serveri vahel. | |||
input { | |||
lumberjack { | |||
port => 5000 | |||
type => "logs" | |||
ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt" | |||
ssl_key => "/etc/pki/tls/private/logstash-forwarder.key" | |||
} | |||
} | |||
Konfigureeri syslog filter(käsk loob uue faili): | |||
{|style="background:lightyellow;width:450px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | <tekstiredaktor> /etc/logstash/conf.d/10-syslog.conf | |||
|} | |||
Loo filter, mis filtreerib syslog nimelisi logisi: | |||
filter { | |||
if [type] == "syslog" { | |||
grok { | |||
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } | |||
add_field => [ "received_at", "%{@timestamp}" ] | |||
add_field => [ "received_from", "%{host}" ] | |||
} | |||
syslog_pri { } | |||
date { | |||
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] | |||
} | |||
} | |||
} | |||
Loo lumberjack väljundi konfiguratsioon(käsk loob uue faili): | |||
{|style="background:lightyellow;width:450px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | <tekstiredaktor> /etc/logstash/conf.d/30-lumberjack-output.conf | |||
|} | |||
Konfigureeri elasticsearch asukoht, localhost, kuna elasticsearch asub samas serveris mis logstash. | |||
Standardväljund, mis edastab informatsiooni tavasätetes standardväljundisse logstashi käsitsi käivitades, suunatakse nüüd rubydebug'i[http://logstash.net/docs/1.4.2/codecs/rubydebug] | |||
output { | |||
elasticsearch { host => localhost } | |||
stdout { codec => rubydebug } | |||
} | |||
Käivita logstash teenus, testimaks, kas siiani on kõik õigelt konfigureeritud | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | service logstash start | |||
|} | |||
Kontrolli kas teenus ka käivitus: | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | service logstash status | |||
|} | |||
Viimase käsu väljund peab olema: | |||
logstash is running | |||
Kontrolli, kas porti 5000(või sinu valitud porti) kuulatakse: | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | ss -lntp | |||
|} | |||
Eeldusel, et teenus toimib, siis muuda see ka automaatselt käivituvaks(käsk taaskäivitab ka logstash teenuse) | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | update-rc.d logstash defaults 95 10 && service logstash restart | |||
|} | |} | ||
== Logiklient1 == | == Logiklient1 == | ||
'''Need käsud vii läbi oma ''esimeses logikliendis'' juurkasutajana''' | |||
Lisa elasticsearch apt-varamuvõti | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add - | |||
|} | |||
Lisa logstash-forwarder apt-varamu(käsk uuendab ka tarkvaravaramu nimekirjad): | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | echo 'deb http://packages.elasticsearch.org/logstashforwarder/debian stable main' > /etc/apt/sources.list.d/logstashforwarder.list && apt-get update | |||
|} | |||
Paigalda logstash forwarder pakk | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | apt-get install logstash-forwarder | |||
|} | |||
Lae logstash serverist sertifikaat, mille alusel saab serveri ja kliendi vahel usalduse luua: | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | scp <kasutaja>@<serverIP>:<sertifikaati asukoht> <soovitud allalaadimiste kaust> | |||
|} | |||
Juhendi autori näitel: | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | scp student@192.168.56.110:/etc/pki/tls/certs/logstash-forwarder.crt /home/student/ | |||
|} | |||
Loo sertifikaadile kaust ning tõsta äsja allalaetud sertifikaat sinna kausta: | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | mkdir -p /etc/pki/tls/certs && mv /home/student/logstash-forwarder.crt /etc/pki/tls/certs/ | |||
|} | |||
Konfigureeri logstash-forwarder(käsk loob uue faili) | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | <tekstiredaktor> /etc/logstash-forwarder | |||
|} | |||
Lisa sinna faili: | |||
-logiserveri ip aadress | |||
-logstashis konfigureeritud port(kontrollida saab ''' ss -lntp ''') | |||
-sertifikaadi asukoht, mille abil usaldust serveri ja kliendi vahel luua | |||
Selles konfiguratsioonis saadetakse logiserverisse kaht logi: ''' syslog ja auth.log ''' | |||
{ | |||
"network": { | |||
"servers": [ "<logstash serveri addr>:<logstash serveri kuulatav port>" ], | |||
"timeout": 15, | |||
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt" | |||
}, | |||
"files": [ | |||
{ | |||
"paths": [ | |||
"/var/log/syslog", | |||
"/var/log/auth.log" | |||
], | |||
"fields": { "type": "syslog" } | |||
} | |||
] | |||
} | |||
Juhendi autori näites | |||
{ | |||
"network": { | |||
"servers": [ "192.168.56.110:5000" ], | |||
"timeout": 15, | |||
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt" | |||
}, | |||
"files": [ | |||
{ | |||
"paths": [ | |||
"/var/log/syslog", | |||
"/var/log/auth.log" | |||
], | |||
"fields": { "type": "syslog" } | |||
} | |||
] | |||
} | |||
Käivita logstash-forwarder teenus: | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | service logstash-forwarder start | |||
|} | |||
Logstash-forwarder teenuse automaatkäivitus süsteemi käivitumise ajal(käsk taaskäivitab ka hetkel töötava logstash forwarder teenuse): | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | update-rc.d logstash-forwarder defaults 95 10 && service logstash-forwarder restart | |||
|} | |||
Eelneva käsu edukuse testimiseks tuleb süsteem taaskäivitada ja vaadata kas pärast taaskäivitust logstash-forwarder teenus toimib: | |||
Taaskäivitus | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | reboot | |||
|} | |||
Test | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | service logstash-forwarder status | |||
|} | |||
Eelneva käsu väljund peab olema: | |||
* logstash-forwarder is running | |||
== Logiklient2 == | == Logiklient2 == | ||
''' Järgnevad käsud käivita teises logikliendis ''' | |||
''' NB! Kõik käsud on käivitatud juurkasutaja õigustes(root) ''' | |||
Lae alla logiserveri sertifikaat, selleks et luua usaldust logiserveri ja kliendi vahel: | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | scp <kasutaja>@<logiserver ip addr>:<sertifikaadi asukoht> <allalaadimiste kaust> | |||
|} | |||
Juhendi koostaja näites: | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | scp student@192.168.56.110:/etc/pki/tls/certs/logstash-forwarder.crt /home/student/ | |||
|} | |||
Loo sertifikaadile kaust ja tõsta see sinna: | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | mkdir -p /etc/pki/tls/certs/ && mv /home/student/logstash-forwarder.crt /etc/pki/tls/certs/ | |||
|} | |||
Paigalda logstash-forwarder: | |||
{|style="background:lightyellow;width:700px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | yum install http://packages.elasticsearch.org/logstashforwarder/centos/logstash-forwarder-0.3.1-1.x86_64.rpm | |||
|} | |||
Loo logstash-forwarder käivitusparameetrite konfiguratsioon logstash-forwarder käivitusskripti jaoks: | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | echo -e '# Options for the Logstash Forwarder | |||
LOGSTASH_FORWARDER_OPTIONS="-config /etc/logstash-forwarder -spool-size 100"'> /etc/sysconfig/logstash-forwarder | |||
|} | |||
Konfigureeri logstash-forwarder: | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | <tekstiredaktor> /etc/logstash-forwarder | |||
|} | |||
Täpsemalt vaja muuta: | |||
-logstash serveri ip aadress | |||
-logstash serveri port | |||
{ | |||
"network": { | |||
"servers": [ "<logstash servri ip addr>:<logstash server port>" ], | |||
"timeout": 15, | |||
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt" | |||
}, | |||
"files": [ | |||
{ | |||
"paths": [ | |||
"/var/log/messages", | |||
"/var/log/secure" | |||
], | |||
"fields": { "type": "syslog" } | |||
} | |||
] | |||
} | |||
Juhendi autori näites: | |||
{ | |||
"network": { | |||
"servers": [ "192.168.56.110:5000" ], | |||
"timeout": 15, | |||
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt" | |||
}, | |||
"files": [ | |||
{ | |||
"paths": [ | |||
"/var/log/messages", | |||
"/var/log/secure" | |||
], | |||
"fields": { "type": "syslog" } | |||
} | |||
] | |||
} | |||
''' Paraku RPM pakist saadud käivitusskript on vigane, seega tuleb luua uus SysVinit-stiilis käivitusskript. ''' | |||
Nimeta vana initscript ümber või tõsta see mujale, igaks juhuks: | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | mv /etc/init.d/logstash-forwarder /etc/init.d/logstash-forwarder.OLD | |||
|} | |||
Loo logstash-forwarder teenuse käivitusskript, skript saadaval ka siin[http://smuth.me/listings/logstash-forwarder/logstash-forwarder.init.html] | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | <tekstiredaktor> /etc/init.d/logstash-forwarder | |||
|} | |||
Lisa sinna: | |||
<source lang="bash"> | |||
#! /bin/sh | |||
# | |||
# chkconfig: 345 99 99 | |||
# description: logstash-forwarder | |||
# processname: logstash-forwarder | |||
# config: /etc/logstash-forwarder | |||
# Source function library. | |||
. /etc/init.d/functions | |||
NAME=logstash-forwarder | |||
DESC="log shipper" | |||
PATH=/sbin:/usr/sbin:/bin:/usr/bin | |||
PIDFILE=/var/run/$NAME.pid | |||
SCRIPTNAME=/etc/init.d/$NAME | |||
DAEMON=/opt/logstash-forwarder/bin/logstash-forwarder | |||
DAEMON_ARGS="-config /etc/logstash-forwarder -spool-size 100 -log-to-syslog" | |||
start() { | |||
echo -n "Starting $NAME: " | |||
daemon --pidfile $PIDFILE "nohup $DAEMON $DAEMON_ARGS >/dev/null 2>&1 &" | |||
touch /var/lock/subsys/$NAME | |||
echo $(pidofproc $NAME) > $PIDFILE | |||
echo | |||
return 0 | |||
} | |||
stop() { | |||
echo -n "Shutting down $NAME: " | |||
killproc -p $PIDFILE | |||
rm -f /var/lock/subsys/$NAME | |||
echo | |||
return 0 | |||
} | |||
case "$1" in | |||
start) | |||
start | |||
;; | |||
stop) | |||
stop | |||
;; | |||
status) | |||
status -p $PIDFILE $NAME | |||
;; | |||
restart) | |||
stop | |||
start | |||
;; | |||
*) | |||
echo "Usage: service $NAME {start|stop|status|restart}" | |||
exit 1 | |||
;; | |||
esac | |||
exit $? | |||
</source> | |||
Anna äsjaloodud skriptile käivitusbitt | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | chmod +x /etc/init.d/logstash-forwarder | |||
|} | |||
Käivita logstash-forwarder teenus: | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | service logstash-forwarder start | |||
|} | |||
Muuda logstash-forwarder teenus automaatselt käivituvaks: | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | chkconfig --add logstash-forwarder | |||
|} | |||
{|style="background:lightyellow;width:300px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | chkconfig logstash-forwarder on | |||
|} | |||
=== Tulemuse kontroll=== | |||
[[File:Kibana 3 - Introduction 2014 10 10 19 35.png|200px|thumb|right|Logstash vaate avamine]] | |||
Ava veebilehitsejaga kibana. Juhenid eeldatakse, et masin, kus veebilehitsejat kasutatakse oskab logiserveri nime lahendada. | |||
Juhendi autori näitel: | |||
[[File:Kibana 3 - Logstash Search 2014 12 10 19 31.png|200px|thumb|right|Kibana graafilise liidese näide]] | |||
logiserver.minudomeen.midagi | |||
Avaneb kibana tervitusaken. | |||
Sealt ava ''' Logstash Dashboard '''. | |||
Avaneb graafiline liides, kus on ülevaade kõikidest süsteemidest, kust logisi kogutakse. | |||
Avanenud liideses saab erinevaid trikke teha, näiteks võib proovida: | |||
-otsida oma logitavate seadmete hostname | |||
-otsida kasutajanime student(või sellist, mille ise lõid) | |||
-otsida sõne ''' root ''', saada teada, kes/mis juurkasutajaks eskaleerus | |||
-sirvida kogutud logisi | |||
-vaadata logide ülevaadet | |||
jne | |||
''' Juhul, kui on soov kibana vaikeleheks saada Logstash kuva ''' | |||
Seiska nginx ja logstash | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | service nginx stop && service logstash stop | |||
|} | |||
Nimeta logstash.json ümber default.json'iks | |||
{|style="background:lightyellow;width:800px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | mv /var/www/kibana-3.0.1/app/dashboards/default.json /var/www/kibana-3.0.1/app/dashboards/default.json.OLD | |||
|} | |||
{|style="background:lightyellow;width:800px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | mv /var/www/kibana-3.0.1/app/dashboards/logstash.json /var/www/kibana-3.0.1/app/dashboards/default.json | |||
|} | |||
Taaskäivita logstash ja nginx | |||
{|style="background:lightyellow;width:600px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 5px;font-family:courier;font-size:8pt;" | service nginx start && service logstash start | |||
|} | |||
Kontrolli tulemust ühendudes kibana veebirakendusega läbi veebilehitseja. | |||
Juhendi autori näitel: | |||
logiserver.minudomeen.midagi | |||
= Kokkuvõte = | |||
Autori arvamusel on juhend paraku pikk, kuid piisavalt lihtne, et end käsureal mugavalt tundev süsteemiadministraator saab labori eduka sooritusega hakkama. | |||
Kindlsti on algul konseptuaalsest poolest keerulisem aru saada. Sellisel puhul aitab labori õppimine teoreetilisel tasemel: kibana[http://www.elasticsearch.org/overview/kibana/],logstash[http://logstash.net/docs/1.4.2/configuration], elasticsearch[http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/index.html] juhendid näiteks. | |||
= Kasutatud kirjandus = | = Kasutatud kirjandus = | ||
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup-repositories.html | |||
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html | http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html | ||
Line 260: | Line 816: | ||
http://logstash.net/docs/1.4.2/configuration | http://logstash.net/docs/1.4.2/configuration | ||
http://logstash.net/docs/1.4.2/codecs/rubydebug | |||
http://smuth.me/posts/centos-logstash-forwarder-init-script.html | |||
http://www.elasticsearch.org/overview/kibana/ | |||
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/index.html | |||
[[Category:Linuxi administreerimine]] |
Latest revision as of 08:54, 13 January 2015
Juhend on mõeldud Algaja/Keskmise oskustega GNU/Linux administraaotritele.
Juhend kehtib tarkvarale:
-CentOS 6.6
-Trisquel GNU/Linux 7.0
-Debian GNU/Linux 7.7
-Logstash 1.4.2
-Kibana 3.0.1
-Elasticsearch 1.1.1
-Logstash-forwarder 0.3.1
Autor: Kristjan Indlo A41
Kuupäev: 2014.11.22, 2014.12.03, 2014.12.09, 2014.12.10, 2014.12.11, 2015.01.13
Eesmärk
Antud juhendi põhiline eesmärk on algupärane labor Keskse logilahenduse rakendamine kaasajastada ja võimalikult palju lihtsustada.
Sekundaarne eesmärk on kasutada kolme erinevat operatsioonisüsteemi, kahest erinevast perekonnast:
1) Debian GNU/Linux (Debainiliste perekond)
2) Trisquel GNU/Linux (Ubuntu vabastatud asendus, Debianiliste perekond)
3) CentOS GNU/Linux (RHEL perekond)
Juhendi eelised
Selle juhendi eelisteks on:
-Uuema tarkvara kasutuselevõtt. Logstash, kibana ja elasticearch on muutunud palju.
-See juhend katab rohkem vabu operatsioonisüsteeme.
-Kasutusel on nii .deb, kui ka .rpm pakendusega süsteemid
-Kerge rakendus logstash-forwarder kogub logisi ja edastab neid logiserverile
-Ühenduse usalduse tagamiseks on kasutatud logiserveris loodud sertifikaati(nõutud parameeter logstash-forwarder poolt)
Juhendi puudused
Selle juhendi miinusteks on:
-Siin juhendis ei käsitleta Windows logide kogumist. Eelmisest juhendist võib sellisel juhul kasu olla
-Antud juhend venib pikaks võrreldes juhendi esimese versiooniga
Sissejuhatus laborisse
See juhend on mõeldud Keskse logihalduse labori eelneva versiooni värskenduseks.
Eelneva versiooni Keskse logihalduse laborist leiab SIIT
Selles juhendis on kasutatud logiserveri ülesseadmiseks samu põhikomponente:
-Logstash
-Elasticsearch
-Kibana
Logisi klientidel kogub logstash-forwarder
NB! Kõik käsureategevused on läbi viidud juurkasutaja õigustes (root).
Juhendis kasutatav tarkvara
Hüperviisorina on kasutuses Virt-Manager, Qemu ja KVM komplekt.
Logiserver: Debain Wheezy 7.7 x86_64
Ip addr:
eth0: 192.168.122.43/24 (DHCP)
eth1: 192.168.56.110/24 (Static)
FQDN: logiserver.minudomeen.midagi
CPU: 1x
MEM: 2084M
Video: Cirrus Logic 9M
Disk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 254:0 0 8G 0 disk └─vda1 254:1 0 8G 0 part /
See on logiserver kuhu paigaldatakse järgnev tarkvara:
1. Logstash v1.4.2 (Logiserver)
2. Elasticsearch v1.1.1 (Logide otsing)
3. Kibana (Logide visualiseerimine veebiliideses)
Kuna kibana on veebirakendus, on vaja ka veebiserverit.
Siin laboris kasutatakse veebiserveriks ja proksimiseks Nginx
Trisquel Belenos 7.0 x86_64
Esimene tööjaam, millelt kogutakse logisi: syslog ja auth.log.
Tööjaamal on graafiline liides LXDE. Paigladatud on "Trisquel Mini"
Ip addr:
eth0: 192.168.122.20/24 (DHCP)
eth1: 192.168.56.111/24 (Static)
FQDN: logiklient1.minudomeen.midagi
CPU: 1x
MEM: 1024M
Video: QXL 64M
Disk:
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 8G 0 disk └─vda1 253:1 0 8G 0 part /
CentOS 6.6 x86_64
Server, millelt kogutakse sama tüüpi logisid.
Logid(nende nimed) on erinevad, demonstreerimaks erinevusi Debianiliste ja Redhatiliste erinevust.
Ip addr:
eth0: 192.168.56.221 (DHCP)
eth1: 192.168.56.112 (Static)
FQDN: logiklient2.minudomeen.midagi
CPU: 1x
MEM: 512M
Video: Cirrus Logic 9M
Disk:
vda 252:0 0 8G 0 disk ├─vda1 252:1 0 500M 0 part /boot └─vda2 252:2 0 7.5G 0 part ├─VolGroup-lv_root (dm-0) 253:0 0 6.7G 0 lvm / └─VolGroup-lv_swap (dm-1) 253:1 0 816M 0 lvm [SWAP]
Paigaldus ja konfigureerimine[1]
NB! Kõik käsureategevused on läbi viidud juurkasutaja õigustes (root).
CentOS puhul saab kasutada ka su, kuid tavakasutaja saab kirjeldada ära sudojate failis, mis võimaldab juurkasutajaks eskaleeruda tavakasutaja parooliga.
Selleks:
<tekstiredaktor> /etc/sudores |
või
visudo |
(avab sudojate faili programmiga vi).
Lisa polkki ## Allow root to run any commands anywhere:
<sinuusername> ALL=(ALL) ALL |
Logiserver
Java
Siin juhendis kasutatakse vaba java keskkonda. Üldiselt on see distributsioonide repositooriumites olemas, seega pole vaja alla laadida pakkfaile ega nõustuda kasutajatingimustega.
apt-get install openjdk-7-jre-headless |
Elasticsearch
Siin juhendis kasutatakse elasticsearch versioon 1.1.1, kuna see on soovitav versioon logstash 1.4.2'le.
Lisa elasticsearch apt-varamuvõti:
wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add - |
Lisa ka elasticsearch varamu(käsk uuendab tarkvaravaramute nimekirja):
echo 'deb http://packages.elasticsearch.org/elasticsearch/1.1/debian stable main' > /etc/apt/sources.list.d/elasticsearch.list && apt-get update |
Paigalda elasticsearch(v1.1.1.)[2]
apt-get install elasticsearch=1.1.1 |
Turvalisuse suurendamiseks keela skriptide dünaamiline koostamine. Skripte saab juurde lisada eraldi kaustast (sama põhimõte nagu httpd/apache konfiguratsiooni nö includemine)[3]
echo 'script.disable_dynamic: true' >> /etc/elasticsearch/elasticsearch.yml |
Muuda elasticsearch teenus automaatselt käivituvaks(käsuga ühtlasi käivitatakse elasticsearch teenus).
update-rc.d elasticsearch defaults 95 10 && service elasticsearch start |
Kibana
Siin juhendis on kasutaud kibana versioon 3.0.1, sest see on soovitatav versioon logstash 1.4.2'le.
Lae alla kibana tarpakk.
wget "https://download.elasticsearch.org/kibana/kibana/kibana-3.0.1.tar.gz" -O /tmp/kibana.tgz |
Loo httpd/apache veebiruudu kaust ja paki kibana sinna lahti.
mkdir -p /var/www && tar -xzvf /tmp/kibana.tgz -C /var/www/ |
Konfigureeri Kibana kasutama õiget serverinime/aadressi
<tekstiredaktor> /var/www/kibana-3.0.1/config.js |
Seal muuda konfiguratsiooniparameeter
+elasticsearch: {server: "http://localhost:9200", withCredentials: true}+
selliseks nagu süsteemis vaja
+elasticsearch: {server: "http://<SINU SERVERI FQDN>:<KIBANA ACCESS PORT>", withCredentials: true}+
Juhendi looja näites on sätitud kibana järgmiselt: <Serveri fqdn> ja port 80, selleks, et veebilehitsejast saada kibanale ligi läbi pordi 80.
+elasticsearch: {server: "http://logiserver.minudomeen.midagi:80", withCredentials: true}+
Nginx
Paigala nginx
apt-get install nginx |
Lae alla nginx kibana sample konfiguratsioonifail kibana githubist:
NB! Käsk kirjutab üle NGINX tavaveebikonfi, kui tahad seda alles hoida, siis tee sellest tagavarakoopia!
wget https://gist.githubusercontent.com/thisismitch/2205786838a6a5d61f55/raw/f91e06198a7c455925f6e3099e3ea7c186d0b263/nginx.conf -O /etc/nginx/sites-available/default |
Muuda äsja allalaetud faili konfiguratsiooni:
<tekstiredaktor> /etc/nginx/sites-available/default |
Muuda parameetrid vastavalt vajadusele:
server_name kibana.myhost.org; root /usr/share/kibana3;
Juhendi autori näite puhul:
server_name logiserver.minudomeen.midagi; root /var/www/kibana-3.0.1;
Paigalda parooli genereerimise jaoks vajalik apache2-utils pakk:
apt-get install apache2-utils |
Genereeri kasutajanimi ja parool kibana veebirakendusele
htpasswd -c /etc/nginx/conf.d/<kibanaADDR>.htpasswd <USER> |
Juhendi autori näite puhul
htpasswd -c /etc/nginx/conf.d/logiserver.minudomeen.midagi.htpasswd student |
Taaskäivita nginx teenus
service nginx restart |
Testi tulemust, mine veebilehitsejaga:
http://<sinu logiserveri fqdn> |
Juhendi autoril on Trisquel GNU/Linux virtuaalmasinas graafiline keskkond ja kohalik nimelahendus, seega test sai läbi viidud eelmainitud masinas
http://logiserver.minudomeen.midagi |
Tulemuseks peab olema kibana tervitusleht.
Logstash
Lisa elasticsearch logstash apt-varamu (käsk uuendab ka varamunimekirja)
echo 'deb http://packages.elasticsearch.org/logstash/1.4/debian stable main' > /etc/apt/sources.list.d/logstash.list && apt-get update |
Paigalda logstash
apt-get install logstash=1.4.2-1-2c0f5a1 |
Logstashile SSL sertifikaatide genereerimine
Esmalt loo sertifikaatide hoiustamiseks kaustad
mkdir -p /etc/pki/tls/certs && mkdir -p /etc/pki/tls/private |
Genereeri vajalik võti ja sertifikaat, sertifikaati kasutatakse hiljem logiserveri ja logitavate serveri vahel usalduse tekitamiseks
cd /etc/pki/tls; sudo openssl req -x509 -batch -nodes -days 3650 -newkey rsa:2048 -keyout private/logstash-forwarder.key -out certs/logstash-forwarder.crt |
Muuda sertifikaat loetavaks, et seda saaks kopeerida klientidesse, mille logisi koguma hakatakse:
chmod a+r /etc/pki/tls/certs/logstash-forwarder.crt |
Konfigureeri logstash input(käsk loob uue faili)
<tekstiredaktor> /etc/logstash/conf.d/01-lumberjack-input.conf |
Konfigureeri lumberjack: mis port on avatud, mis sertifikaati ja võtit kasutatakse, et luua usaldust logstash kliendi ja serveri vahel.
input { lumberjack { port => 5000 type => "logs" ssl_certificate => "/etc/pki/tls/certs/logstash-forwarder.crt" ssl_key => "/etc/pki/tls/private/logstash-forwarder.key" } }
Konfigureeri syslog filter(käsk loob uue faili):
<tekstiredaktor> /etc/logstash/conf.d/10-syslog.conf |
Loo filter, mis filtreerib syslog nimelisi logisi:
filter { if [type] == "syslog" { grok { match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" } add_field => [ "received_at", "%{@timestamp}" ] add_field => [ "received_from", "%{host}" ] } syslog_pri { } date { match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ] } } }
Loo lumberjack väljundi konfiguratsioon(käsk loob uue faili):
<tekstiredaktor> /etc/logstash/conf.d/30-lumberjack-output.conf |
Konfigureeri elasticsearch asukoht, localhost, kuna elasticsearch asub samas serveris mis logstash.
Standardväljund, mis edastab informatsiooni tavasätetes standardväljundisse logstashi käsitsi käivitades, suunatakse nüüd rubydebug'i[4]
output { elasticsearch { host => localhost } stdout { codec => rubydebug } }
Käivita logstash teenus, testimaks, kas siiani on kõik õigelt konfigureeritud
service logstash start |
Kontrolli kas teenus ka käivitus:
service logstash status |
Viimase käsu väljund peab olema:
logstash is running
Kontrolli, kas porti 5000(või sinu valitud porti) kuulatakse:
ss -lntp |
Eeldusel, et teenus toimib, siis muuda see ka automaatselt käivituvaks(käsk taaskäivitab ka logstash teenuse)
update-rc.d logstash defaults 95 10 && service logstash restart |
Logiklient1
Need käsud vii läbi oma esimeses logikliendis juurkasutajana
Lisa elasticsearch apt-varamuvõti
wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add - |
Lisa logstash-forwarder apt-varamu(käsk uuendab ka tarkvaravaramu nimekirjad):
echo 'deb http://packages.elasticsearch.org/logstashforwarder/debian stable main' > /etc/apt/sources.list.d/logstashforwarder.list && apt-get update |
Paigalda logstash forwarder pakk
apt-get install logstash-forwarder |
Lae logstash serverist sertifikaat, mille alusel saab serveri ja kliendi vahel usalduse luua:
scp <kasutaja>@<serverIP>:<sertifikaati asukoht> <soovitud allalaadimiste kaust> |
Juhendi autori näitel:
scp student@192.168.56.110:/etc/pki/tls/certs/logstash-forwarder.crt /home/student/ |
Loo sertifikaadile kaust ning tõsta äsja allalaetud sertifikaat sinna kausta:
mkdir -p /etc/pki/tls/certs && mv /home/student/logstash-forwarder.crt /etc/pki/tls/certs/ |
Konfigureeri logstash-forwarder(käsk loob uue faili)
<tekstiredaktor> /etc/logstash-forwarder |
Lisa sinna faili:
-logiserveri ip aadress
-logstashis konfigureeritud port(kontrollida saab ss -lntp )
-sertifikaadi asukoht, mille abil usaldust serveri ja kliendi vahel luua
Selles konfiguratsioonis saadetakse logiserverisse kaht logi: syslog ja auth.log
{ "network": { "servers": [ "<logstash serveri addr>:<logstash serveri kuulatav port>" ], "timeout": 15, "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt" }, "files": [ { "paths": [ "/var/log/syslog", "/var/log/auth.log" ], "fields": { "type": "syslog" } } ] }
Juhendi autori näites
{ "network": { "servers": [ "192.168.56.110:5000" ], "timeout": 15, "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt" }, "files": [ { "paths": [ "/var/log/syslog", "/var/log/auth.log" ], "fields": { "type": "syslog" } } ] }
Käivita logstash-forwarder teenus:
service logstash-forwarder start |
Logstash-forwarder teenuse automaatkäivitus süsteemi käivitumise ajal(käsk taaskäivitab ka hetkel töötava logstash forwarder teenuse):
update-rc.d logstash-forwarder defaults 95 10 && service logstash-forwarder restart |
Eelneva käsu edukuse testimiseks tuleb süsteem taaskäivitada ja vaadata kas pärast taaskäivitust logstash-forwarder teenus toimib:
Taaskäivitus
reboot |
Test
service logstash-forwarder status |
Eelneva käsu väljund peab olema:
* logstash-forwarder is running
Logiklient2
Järgnevad käsud käivita teises logikliendis NB! Kõik käsud on käivitatud juurkasutaja õigustes(root)
Lae alla logiserveri sertifikaat, selleks et luua usaldust logiserveri ja kliendi vahel:
scp <kasutaja>@<logiserver ip addr>:<sertifikaadi asukoht> <allalaadimiste kaust> |
Juhendi koostaja näites:
scp student@192.168.56.110:/etc/pki/tls/certs/logstash-forwarder.crt /home/student/ |
Loo sertifikaadile kaust ja tõsta see sinna:
mkdir -p /etc/pki/tls/certs/ && mv /home/student/logstash-forwarder.crt /etc/pki/tls/certs/ |
Paigalda logstash-forwarder:
yum install http://packages.elasticsearch.org/logstashforwarder/centos/logstash-forwarder-0.3.1-1.x86_64.rpm |
Loo logstash-forwarder käivitusparameetrite konfiguratsioon logstash-forwarder käivitusskripti jaoks:
echo -e '# Options for the Logstash Forwarder
LOGSTASH_FORWARDER_OPTIONS="-config /etc/logstash-forwarder -spool-size 100"'> /etc/sysconfig/logstash-forwarder |
Konfigureeri logstash-forwarder:
<tekstiredaktor> /etc/logstash-forwarder |
Täpsemalt vaja muuta:
-logstash serveri ip aadress
-logstash serveri port
{ "network": { "servers": [ "<logstash servri ip addr>:<logstash server port>" ], "timeout": 15, "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt" }, "files": [ { "paths": [ "/var/log/messages", "/var/log/secure" ], "fields": { "type": "syslog" } } ] }
Juhendi autori näites:
{ "network": { "servers": [ "192.168.56.110:5000" ], "timeout": 15, "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt" }, "files": [ { "paths": [ "/var/log/messages", "/var/log/secure" ], "fields": { "type": "syslog" } } ] }
Paraku RPM pakist saadud käivitusskript on vigane, seega tuleb luua uus SysVinit-stiilis käivitusskript.
Nimeta vana initscript ümber või tõsta see mujale, igaks juhuks:
mv /etc/init.d/logstash-forwarder /etc/init.d/logstash-forwarder.OLD |
Loo logstash-forwarder teenuse käivitusskript, skript saadaval ka siin[5]
<tekstiredaktor> /etc/init.d/logstash-forwarder |
Lisa sinna:
#! /bin/sh
#
# chkconfig: 345 99 99
# description: logstash-forwarder
# processname: logstash-forwarder
# config: /etc/logstash-forwarder
# Source function library.
. /etc/init.d/functions
NAME=logstash-forwarder
DESC="log shipper"
PATH=/sbin:/usr/sbin:/bin:/usr/bin
PIDFILE=/var/run/$NAME.pid
SCRIPTNAME=/etc/init.d/$NAME
DAEMON=/opt/logstash-forwarder/bin/logstash-forwarder
DAEMON_ARGS="-config /etc/logstash-forwarder -spool-size 100 -log-to-syslog"
start() {
echo -n "Starting $NAME: "
daemon --pidfile $PIDFILE "nohup $DAEMON $DAEMON_ARGS >/dev/null 2>&1 &"
touch /var/lock/subsys/$NAME
echo $(pidofproc $NAME) > $PIDFILE
echo
return 0
}
stop() {
echo -n "Shutting down $NAME: "
killproc -p $PIDFILE
rm -f /var/lock/subsys/$NAME
echo
return 0
}
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status -p $PIDFILE $NAME
;;
restart)
stop
start
;;
*)
echo "Usage: service $NAME {start|stop|status|restart}"
exit 1
;;
esac
exit $?
Anna äsjaloodud skriptile käivitusbitt
chmod +x /etc/init.d/logstash-forwarder |
Käivita logstash-forwarder teenus:
service logstash-forwarder start |
Muuda logstash-forwarder teenus automaatselt käivituvaks:
chkconfig --add logstash-forwarder |
chkconfig logstash-forwarder on |
Tulemuse kontroll
Ava veebilehitsejaga kibana. Juhenid eeldatakse, et masin, kus veebilehitsejat kasutatakse oskab logiserveri nime lahendada.
Juhendi autori näitel:
logiserver.minudomeen.midagi
Avaneb kibana tervitusaken.
Sealt ava Logstash Dashboard .
Avaneb graafiline liides, kus on ülevaade kõikidest süsteemidest, kust logisi kogutakse.
Avanenud liideses saab erinevaid trikke teha, näiteks võib proovida:
-otsida oma logitavate seadmete hostname
-otsida kasutajanime student(või sellist, mille ise lõid)
-otsida sõne root , saada teada, kes/mis juurkasutajaks eskaleerus
-sirvida kogutud logisi
-vaadata logide ülevaadet
jne
Juhul, kui on soov kibana vaikeleheks saada Logstash kuva
Seiska nginx ja logstash
service nginx stop && service logstash stop |
Nimeta logstash.json ümber default.json'iks
mv /var/www/kibana-3.0.1/app/dashboards/default.json /var/www/kibana-3.0.1/app/dashboards/default.json.OLD |
mv /var/www/kibana-3.0.1/app/dashboards/logstash.json /var/www/kibana-3.0.1/app/dashboards/default.json |
Taaskäivita logstash ja nginx
service nginx start && service logstash start |
Kontrolli tulemust ühendudes kibana veebirakendusega läbi veebilehitseja.
Juhendi autori näitel:
logiserver.minudomeen.midagi
Kokkuvõte
Autori arvamusel on juhend paraku pikk, kuid piisavalt lihtne, et end käsureal mugavalt tundev süsteemiadministraator saab labori eduka sooritusega hakkama.
Kindlsti on algul konseptuaalsest poolest keerulisem aru saada. Sellisel puhul aitab labori õppimine teoreetilisel tasemel: kibana[6],logstash[7], elasticsearch[8] juhendid näiteks.
Kasutatud kirjandus
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/setup-repositories.html
http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-scripting.html
http://logstash.net/docs/1.4.2/configuration
http://logstash.net/docs/1.4.2/codecs/rubydebug
http://smuth.me/posts/centos-logstash-forwarder-init-script.html
http://www.elasticsearch.org/overview/kibana/
http://www.elasticsearch.org/guide/en/elasticsearch/guide/current/index.html