Elasticsearch yra duomenų paieškos, indeksavimo ir analizės sistema. Elasticsearch suteikia galingą visatekstę paiešką ir pažangias analitikos galimybes.
Kibana, kurią taip pat įdiegsime kartu su Elasticsearch, yra naršyklėje veikianti konsolė, skirta jūsų žurnalų duomenims naršyti, analizuoti ir vizualizuoti.
0. Būtinosios sąlygos
Prieš diegdami Elasticsearch, įdiekite Nginx.
Įsitikinkite, kad ugniasienėje yra atidaryti http ir https prievadai. Jei ne, paleiskite šias komandas.
IPtables:
iptables -I INPUT -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -p tcp --dport 443 -j ACCEPT
Išsaugokite pakeitimus:
iptables-save | tee /etc/sysconfig/iptables
Perkraukite iptables, kad pakeitimai įsigaliotų:
systemctl restart iptables
Firewalld:
Jei naudojate firewalld, paleiskite šias komandas, kad leistumėte HTTP ir HTTPS srautą:
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
SVARBUS ĮSPĖJIMAS
Prieš diegdami Elasticsearch, turite žinoti, kad įjungtas SELinux neleis Elasticsearch veikti tinkamai. Kad diegimas ir veikimas būtų sklandūs, rekomenduojama arba išjungti SELinux, arba perjungti jį į Permissive režimą.
SELinux, arba Security Enhanced Linux, yra privalomo prieigos valdymo sistema, skirta Linux aplinkai. Ji taiko griežtas saugumo taisykles, kurios riboja procesų veiksmus net ir tada, kai jie vykdomi root teisėmis. Jei jūsų ugniasienė sukonfigūruota tinkamai, SELinux išjungimas nebūtinai padidins saugumo riziką.
Norėdami patikrinti SELinux būseną, paleiskite:
getenforce
Norėdami pakeisti SELinux būseną, atidarykite SELinux konfigūracijos failą pasirinktu teksto redaktoriumi:
nano /etc/selinux/config
Suraskite eilutę:
SELINUX=enforcing
Pakeiskite "enforcing" į "disabled" arba "Permissive".
Išsaugokite failą ir uždarykite jį.
Tada perkraukite sistemą:
reboot
1. Elasticsearch diegimas
1.1 Sistemos atnaujinimas
Pirmiausia atnaujinkite sistemą:
sudo dnf update -y
1.2 Java įdiegimas
Įdiekite Java šia komanda:
sudo dnf install java-11-openjdk-devel
Tada patikrinkite, ar Java įdiegta sėkmingai:
java -version
1.3 Elasticsearch GPG rakto importavimas
Paleiskite šią komandą:
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
1.4 Elastic paketų saugyklos sukonfigūravimas
Sukurkite failą /etc/yum.repos.d/elasticsearch.repo pasirinktu redaktoriumi:
sudo nano /etc/yum.repos.d/elasticsearch.repo
Į failą įklijuokite šį turinį:
[elasticsearch]
name=Elasticsearch repository for 8.x packages
baseurl=https://artifacts.elastic.co/packages/8.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md
Išsaugokite failą ir uždarykite jį.
1.5 Elasticsearch įdiegimas
Paleiskite šią komandą, kad įdiegtumėte Elasticsearch:
sudo dnf install --enablerepo=elasticsearch elasticsearch
Svarbu: baigus vykdyti komandą, išvestyje bus pateikta Security autoconfiguration informacija, įskaitant jūsų Elasticsearch naudotojo slaptažodį. Būtinai išsisaugokite jį saugioje vietoje.
1.6 Elasticsearch nustatymų koregavimas
Atidarykite Elasticsearch konfigūracijos failą /etc/elasticsearch/elasticsearch.yml pasirinktu redaktoriumi:
sudo nano /etc/elasticsearch/elasticsearch.yml
Atkomentuokite cluster.name parametrą ir nustatykite norimą klasterio pavadinimą:
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
cluster.name: your_cluster
Atkomentuokite node.name ir įrašykite savo serverio hostname:
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
node.name: server_hostname
Atkomentuokite network.host ir taip pat nustatykite savo serverio hostname:
# ---------------------------------- Network -----------------------------------
#
# By default Elasticsearch is only accessible on localhost. Set a different
# address here to expose this node on the network:
#
network.host: server_hostname
Atkomentuokite http.port, kad aiškiai nurodytumėte Elasticsearch klausytis 9200 prievado:
# By default Elasticsearch listens for HTTP traffic on the first free port it
# finds starting at 9200. Set a specific HTTP port here:
#
http.port: 9200
Išsaugokite failą, tada perkraukite systemd, kad būtų pritaikyta Elasticsearch konfigūracija:
sudo systemctl daemon-reload
1.7 Elasticsearch įjungimas
Paleiskite šią komandą, kad Elasticsearch būtų automatiškai paleidžiamas kiekvieno sistemos starto metu:
sudo systemctl enable --now elasticsearch
1.8 9200 prievado atidarymas
Ugniasienėje leiskite 9200 prievadą.
Jei naudojate firewalld, paleiskite:
sudo firewall-cmd --permanent --add-port=9200/tcp; sudo firewall-cmd --reload
Jei naudojate IPtables:
sudo iptables -A INPUT -p tcp --dport 9200 -j ACCEPT
sudo dnf install -y iptables-services
sudo service iptables save
1.9 Įrašykite Elasticsearch vidinį slaptažodį kaip aplinkos kintamąjį
Persijunkite į root naudotoją ir eksportuokite Elasticsearch vidinį slaptažodį į aplinkos kintamąjį ELASTIC_PASSWORD. Naudokite anksčiau išsaugotą slaptažodį:
export ELASTIC_PASSWORD="your_elasticseach_password"
Tada patikrinkite, ar viskas veikia, paleisdami šią komandą:
curl --cacert /etc/elasticsearch/certs/http_ca.crt -u elastic:$ELASTIC_PASSWORD https://localhost:9200
Turėtumėte matyti maždaug tokį rezultatą:
{
"name" : "server_hostname",
"cluster_name" : "your_cluster",
"cluster_uuid" : "QxRjxNL4QnK6qoCV0LXQdA",
"version" : {
"number" : "8.19.6",
"build_flavor" : "default",
"build_type" : "rpm",
"build_hash" : "48a287ab9497e852de30327444b0809e55d46466",
"build_date" : "2024-02-19T10:04:32.774273190Z",
"build_snapshot" : false,
"lucene_version" : "9.9.2",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}2. Kibana diegimas
2.1 Paleiskite Kibana diegimo komandą
Naudokite šią komandą:
sudo dnf install kibana
Sukurkite enrollment token, skirtą Kibana:
sudo /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana
Išvestyje bus pateiktas enrollment token, todėl būtinai nukopijuokite ir išsisaugokite jį.
2.2 Kibana konfigūravimas
Paleiskite šią komandą:
sudo /usr/share/kibana/bin/kibana-setup
Jūsų bus paprašyta įvesti enrollment token, kuris buvo sukurtas ankstesniame žingsnyje.
Įklijuokite token ir paspauskite Enter.
2.3 Kibana paleidimas
Paleiskite šią komandą, kad Kibana būtų paleista ir automatiškai startuotų kiekvieno sistemos paleidimo metu:
sudo systemctl daemon-reload; systemctl enable --now kibana
2.4 Gaukite Let’s Encrypt sertifikatą savo hostname
Paleiskite šias komandas, kad įdiegtumėte Let’s Encrypt:
sudo dnf install -y epel-release
sudo dnf install -y certbot python3-certbot-nginx
Paleiskite šią komandą, kad sugeneruotumėte sertifikatą savo serverio hostname. Vietoje server_hostname įrašykite tikrąjį VPS hostname:
sudo certbot --nginx -d server_hostname
Turėsite įvesti savo el. pašto adresą, kad gautumėte Let’s Encrypt pranešimus. Taip pat reikės sutikti su paslaugos teikimo sąlygomis, tai privaloma, ir pasirinkti, ar sutinkate dalintis savo el. pašto adresu su Electronic Frontier Foundation, tai neprivaloma.
Tuomet pamatysite tokią klaidą:
Could not automatically find a matching server block for server_hostname. Set the `server_name` directive to use the Nginx installer
Tai yra normalu. Sukurkite Nginx konfigūraciją su savo hostname.
nano /etc/nginx/conf.d/kibana.conf
Į failą įklijuokite šį turinį. Vietoje server_hostname įrašykite tikrąjį VPS hostname:
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name server_hostname;
ssl_certificate /etc/letsencrypt/live/server_hostname/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/server_hostname/privkey.pem;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
location / {
proxy_pass http://127.0.0.1:5601;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
Tada paleiskite šias komandas:
sudo nginx -t && sudo systemctl reload nginx
Galiausiai dar kartą pabandykite sugeneruoti sertifikatą savo serveriui:
sudo certbot --nginx -d server_hostname
Pamatysite tokį pranešimą:
What would you like to do?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
1: Attempt to reinstall this existing certificate
2: Renew & replace the certificate (may be subject to CA rate limits)
Pasirinkite 1: Attempt to reinstall this existing certificate, tiesiog įrašykite "1".
Tada atidarykite naršyklę, eikite į savo serverio hostname ir įsitikinkite, kad puslapis atsidaro per HTTPS su galiojančiu SSL sertifikatu.
https://server_hostname
Spustelėkite spynelės ikoną adreso juostoje, kad peržiūrėtumėte sertifikato informaciją.
3. Prisijungimas prie Elasticsearch
Atidarykite Kibana vartotojo sąsają naršyklėje:
https://server_hostname
Prisijunkite naudodami duomenis, kuriuos išsisaugojote anksčiau, Security Autoconfiguration Information skiltyje, 1.5 žingsnyje.
Po to spustelėkite "Explore on my own", jei nenorite pridėti jokių integracijų.
Sėkmingai prisijungus, jūsų Elasticsearch serveris veiks kartu su Kibana. Matysite pagrindinį valdymo skydelį.



