Pereiti prie pagrindinio turinio

Kaip įdiegti Elasticsearch Ubuntu/Debian sistemoje

Šioje pamokoje įdiegsime Elasticsearch, Kibana ir Logstash Ubuntu bei Debian sistemose.

Atnaujinta šiandien

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ą.

Ar gavote atsakymą į savo klausimą?