Pereiti prie pagrindinio turinio

Kaip įdiegti Elasticsearch AlmaLinux 9 ir Rocky Linux 9 sistemose

Šioje pamokoje parodysime, kaip įdiegti Elasticsearch RHEL 9 pagrindu veikiančiose sistemose.

Atnaujinta šiandien

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

Ar gavote atsakymą į savo klausimą?