Elasticsearch yra paskirstyta paieškos ir analizės sistema, skirta duomenų indeksavimui, saugojimui ir paieškai realiuoju laiku. Ji suteikia galingas pilno teksto paieškos ir analizės galimybes.
0. Būtinos sąlygos
Prieš diegdami Elasticsearch, įsidiekite Nginx.
1. Elasticsearch diegimas
1.1 Importuokite Elastic GPG raktą į APT
Pirmiausia paleiskite šią komandą, kad pridėtumėte viešąjį Elasticsearch GPG raktą į APT:
curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch |sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
1.2 Pridėkite Elastic APT saugyklą
Tada įrašykite Elastic šaltinių sąrašą į "sources.list.d" katalogą, kuriame APT tikrina prieinamas saugyklas:
echo "deb [signed-by=/usr/share/keyrings/elastic.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-7.x.list
1.3 Atnaujinkite APT paketų sąrašą
Toliau atnaujinkite APT paketų indeksą, kad būtų įtraukta naujoji Elastic saugykla:
sudo apt update
1.4 Įdiekite Elasticsearch
Dabar galite įdiegti Elasticsearch:
sudo apt install elasticsearch
1.5 Pakoreguokite pagrindinį nustatymų failą
Tada atidarykite YAML failą pasirinktu redaktoriumi:
sudo nano /etc/elasticsearch/elasticsearch.yml
Norėdami apriboti prieigą tik vietinei sistemai vieno serverio aplinkoje, nustatykite susiejimo adresą. Raskite eilutę "network.host", pašalinkite komentaro simbolį ir pakeiskite reikšmę į localhost:
network.host: localhost
1.6 Paleiskite ir įjunkite Elasticsearch
Paleiskite šias komandas, kad įjungtumėte Elasticsearch servisą ir nustatytumėte automatinį paleidimą po sistemos perkrovimo:
sudo systemctl start elasticsearch
sudo systemctl enable elasticsearch
1.7 Patikrinkite, ar mazgas atsako
Patikrinkite vietinį HTTP galinį tašką:
curl -X GET "localhost:9200"
Turėtumėte matyti JSON išvestį su informacija apie mazgo versiją, build informaciją ir šūkį:
{
"name" : "server_hostname",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "ZDTEVTeURFGPsrdtpFh1aA",
"version" : {
"number" : "7.17.29",
"build_flavor" : "default",
"build_type" : "deb",
"build_hash" : "580aff1a0064ce4c93293aaab6fcc55e22c10d1c",
"build_date" : "2025-06-19T01:37:57.847711500Z",
"build_snapshot" : false,
"lucene_version" : "8.11.3",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}2. Kibana diegimas
Kibana yra internetinė sąsaja, skirta žurnalų duomenų paieškai ir vizualizavimui.
2.1 Paleiskite Kibana diegimo komandą
Naudokite šią komandą:
sudo apt install kibana
2.2 Įjunkite ir paleiskite Kibana servisą
Paleiskite šias komandas, kad įjungtumėte Kibana ir nustatytumėte automatinį paleidimą po kiekvieno sistemos perkrovimo:
sudo systemctl enable kibana
sudo systemctl start kibana
2.3 Sukurkite administratoriaus prisijungimą Kibana basic auth apsaugai
Kibana leidžia prieigą tik iš localhost, todėl sukonfigūruosime Nginx kaip atvirkštinį tarpinį serverį, kad Kibana būtų pasiekiama iš išorės.
Pasirinkite neakivaizdų naudotojo vardą vietoje pateikto pavyzdžio:
echo "kibanauser:`openssl passwd -apr1`" | sudo tee -a /etc/nginx/htpasswd.users
Jūsų bus paprašyta įvesti slaptažodį. Išsaugokite jį saugiai.
2.4 Sukurkite Nginx server block atvirkštiniam tarpiniam serveriui
Sukurkite failą, pakeisdami "your_domain.ltd" savo tikruoju domenu, nukreiptu į jūsų serverį:
sudo nano /etc/nginx/sites-available/your_domain.ltd
Tada įklijuokite šį turinį ir taip pat pakeiskite "your_domain.ltd":
server {
listen 80;
server_name your_domain.ltd;
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/htpasswd.users;
location / {
proxy_pass http://localhost:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
}
}2.5 Įjunkite svetainę ir patikrinkite Nginx
Sukurkite nuorodą, kad aktyvuotumėte konfigūraciją:
sudo ln -s /etc/nginx/sites-available/your_domain.ltd /etc/nginx/sites-enabled/your_domain.ltd
Patikrinkite sintaksę ir iš naujo įkelkite Nginx:
sudo nginx -t
sudo systemctl reload nginx
2.6 Atidarykite ugniasienėje Nginx prievadus, jei jie dar nėra atidaryti
Jeigu naudojate UFW, paleiskite šią komandą:
sudo ufw allow 'Nginx Full'
Jeigu naudojate IPtables, vykdykite šias komandas:
sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 443 -j ACCEPT
Išsaugokite IPtables taisykles:
sudo netfilter-persistent save
sudo netfilter-persistent reload
2.7 Patikrinkite, ar Kibana pasiekiama
Naršyklėje atidarykite šį adresą, pakeisdami "your_domain.ltd", ir prisijunkite naudodami duomenis, kuriuos sukūrėte 2.3 žingsnyje:
http://your_domain.ltd/status
Turėtumėte matyti serverio būseną, resursų naudojimą ir įdiegtus įskiepius.
3. Logstash diegimas
Su Logstash galite rinkti duomenis iš įvairių šaltinių, transformuoti juos į standartinį formatą ir persiųsti į kitą duomenų bazę.
3.1 Paleiskite Logstash diegimo komandą
Paleiskite šią komandą:
sudo apt install logstash
3.2 Sukurkite pagrindinį pipeline
Sukurkite naują konfigūracijos failą:
sudo nano /etc/logstash/conf.d/simple-pipeline.conf
Įrašykite šią konfigūraciją:
input {
tcp {
port => 5044
codec => json_lines
}
}
filter {
# Pasirinktinai: vėliau čia galėsite pridėti filtrus duomenų analizavimui ar transformavimui
}
output {
elasticsearch {
hosts => ["http://localhost:9200"]
index => "custom-logs-%{+YYYY.MM.dd}"
}
stdout { codec => rubydebug }
}
Paaiškinimas:
Įvestis: laukia gaunamų JSON duomenų per TCP 5044 prievadą.
Filtras: vieta duomenų transformacijoms, šiuo metu nenaudojama.
Išvestis: apdorotus žurnalus tiesiogiai siunčia į Elasticsearch.
"stdout": išveda rezultatą terminale derinimo tikslais.
3.3 Patikrinkite konfigūraciją
Prieš įjungdami Logstash nuolatiniam darbui, patikrinkite konfigūraciją:
sudo -u logstash /usr/share/logstash/bin/logstash --path.settings /etc/logstash -t
Turėtumėte matyti:
Config Validation Result: OK. Exiting Logstash after a few seconds.
3.4 Paleiskite ir įjunkite Logstash
Kai konfigūracija yra tinkama, vykdykite:
sudo systemctl start logstash
sudo systemctl enable logstash
Patikrinkite, ar servisas veikia:
sudo systemctl status logstash
3.5 Atidarykite 5044 prievadą ugniasienėje
Jeigu naudojate UFW, paleiskite šią komandą:
sudo ufw allow 5044/tcp
Jeigu naudojate IPtables, vykdykite šias komandas:
sudo iptables -A INPUT -p tcp --dport 5044 -j ACCEPT
sudo netfilter-persistent save
sudo netfilter-persistent reload
4. Prisijungimas prie Elasticsearch
Naršyklėje įveskite savo domeną arba serverio IP adresą. Jeigu ryšys su Kibana buvo nutrūkęs, prisijunkite iš naujo naudodami 2.3 žingsnyje sukurtus prisijungimo duomenis. Sėkmingai prisijungę matysite Kibana pradžios langą.


