Ki jan yo enstale Elasticsearch sou Debian 11 Bullseye

Elasticsearch se yon sous louvri trè évolutive motè rechèch ak analiz konplè tèks. Lojisyèl la sipòte operasyon RESTful ki pèmèt ou estoke, rechèch ak analize gwo volim done rapidman ak prèske an tan reyèl. Elasticsearch se byen renmen ak popilè pami sysadmins ak devlopè paske li se yon motè rechèch pwisan ki baze sou bibliyotèk Lucene la. Li se jeneralman itilize kòm motè/teknoloji ki kache pou aplikasyon yo ak karakteristik rechèch konplèks ak kondisyon.

Nan leson patikilye sa a, ou pral aprann ki jan yo enstale Elastic Search sou Debian 11 Bullseye.

Kondisyon

  • OS rekòmande: Debian 11 Bullseye
  • Kont itilizatè: Yon kont itilizatè ki gen aksè sudo oswa rasin.
  • Pakè obligatwa: Curl ak Java

Enstale Curl

Pli li nesesè pou kèk pati nan gid sa a. Pou enstale pake sa a, tape lòd sa a:

sudo apt install curl -y

Enstale Java

Pou enstale avèk siksè epi, pi enpòtan, itilize Elasticsearch, ou bezwen enstale Java. Pwosesis la se byen fasil.

Tape lòd sa a pou enstale OpenJDK pake:

sudo apt install default-jdk

Egzanp pwodiksyon ak pakè yo dwe enstale:

Ki jan yo enstale Elasticsearch sou Debian 11 Bullseye

Pou kontinye ak enstalasyon an, tape (Y) Lè sa a, peze la (ANTRE) kle.

Apre sa, verifye vèsyon an Java enstale ak bati a ak lòd sa a:

java -version

Egzanp pwodiksyon anba a:

Ki jan yo enstale Elasticsearch sou Debian 11 Bullseye

reklam


Enstale Elasticsearch

Elasticsearch pa disponib nan depo Debian 11 estanda yo, kidonk w ap bezwen enstale li nan depo Elasticsearch APT.

Anvan ou ajoute depo a, enpòte GPG kle avèk lòd sa a:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

Egzanp pwodiksyon ak (Dakò) konfime li te reyisi:

Ki jan yo enstale Elasticsearch sou Debian 11 Bullseye

Kounye a ke ou te ajoute kle GPG la, yo pral fè konfyans nan depo Elasticsearch yo kounye a. Kontinye enstale repozitwa ofisyèl la ak lòd tèminal sa a:

sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list'

Nan moman yo te kreye leson patikilye a, Elasticsearch 7.13.4 se dènye vèsyon an men li pral chanje nan tan, epi repozitwa ou te ajoute a ap travay pou nenpòt vèsyon 7.xx alavni.

Apre sa, mete ajou lis depo ou a epi enstale Elasticsearch jan sa a:

sudo apt update && sudo apt install elasticsearch

Pa default, sèvis Elasticsearch la enfim sou bòt epi li pa aktif. Pou kòmanse sèvis la epi pèmèt li sou bòt sistèm lan, tape sa ki annapre yo (systemctl) lòd:

sudo systemctl enable elasticsearch.service --now

Apre sa, pou verifye ke Elasticsearch ap kouri kòrèkteman, ou pral sèvi ak la pli kòmand pou voye yon HTTP mande yo pò 9200 on lokalost jan sa a:

curl -X GET "localhost:9200/"

Egzanp pwodiksyon pou verifye Elasticsearch k ap travay kòrèkteman:

Pou wè mesaj sistèm Elasticsearch anrejistre sou sistèm ou a, tape lòd sa a:

sudo journalctl -u elasticsearch

Egzanp jounal pwodiksyon:

Ki jan yo enstale Elasticsearch sou Debian 11 Bullseye

Konfigirasyon Elasticsearch

Done Elasticsearch estoke nan kote anyè default la (/var/lib/elasticsearch). Pou wè oswa modifye fichye konfigirasyon yo, ou ka jwenn yo nan kote anyè a (/etc/elasticsearch), ak opsyon demaraj java yo ka configuré nan la (/etc/default/elasticsearch) dosye konfigirasyon.

Anviwònman default yo sitou bon pou yon sèl sèvè opere kòm Elasticsearch kouri sou lokalost sèlman. Sepandan, si ou pral mete kanpe yon gwoup, w ap bezwen modifye fichye konfigirasyon an pou pèmèt koneksyon aleka.

Mete kanpe Aksè Remote (Si ou vle)

Pa default, Elasticsearch koute sèlman localhost. Pou chanje sa a, louvri dosye konfigirasyon an jan sa a:

sudo nano /etc/elasticsearch/elasticsearch.yml

Apre sa, desann epi jwenn seksyon Rezo a ak retire kòmantè (#) liy sa a epi ranplase li ak adrès IP Entèn Prive oswa adrès IP ekstèn jan sa a:

Ki jan yo enstale Elasticsearch sou Debian 11 Bullseye

Nan egzanp lan, nou dekomantè (#) nan (network.host) epi chanje li nan yon adrès IP Prive Entèn.

Pou rezon sekirite, li se ideyal pou espesifye adrès; sepandan, si ou gen plizyè adrès IP entèn oswa ekstèn ki frape sèvè a chanje koòdone rezo a pou koute tout moun ki antre. (0.0.0.0) jan sa a:

Ki jan yo enstale Elasticsearch sou Debian 11 Bullseye

Apre sa, sove fichye konfigirasyon an (CTRL+O) Lè sa a, sòti (CLTR+X).

Ou pral bezwen rekòmanse sèvis Elasticsearch la ak lòd sa a pou chanjman yo pran efè:

sudo systemctl restart elasticsearch

Konfigure UFW Firewall pou pèmèt Koneksyon Remote

Si ou pèmèt koneksyon aleka, w ap bezwen pèmèt firewall ou a pèmèt adrès IP sa yo konekte. Sa a ka fè ak lòd sa a:

sudo ufw allow from <IP Address> to any port 9200

Ou ka jwenn plis enfòmasyon sou Debian ak UFW firewall pou konfigirasyon an UFW firewall sou Debian.


reklam


Ki jan yo sèvi ak Elasticsearch

Pou itilize Elasticsearch lè l sèvi avèk boukle lòd se yon pwosesis ki senp. Anba a se kèk nan pi souvan itilize yo:

Efase endèks

Anba a se endèks la non echantiyon.

curl -X DELETE 'http://localhost:9200/samples'

Lis tout endèks yo

curl -X GET 'http://localhost:9200/_cat/indices?v'

Lis tout dokiman ki nan endèks

curl -X GET 'http://localhost:9200/sample/_search'

Rekèt lè l sèvi avèk paramèt URL

Isit la nou itilize fòma rechèch Lucene pou ekri q=school:Harvard.

curl -X GET http://localhost:9200/samples/_search?q=school:Harvard

Rechèch ak JSON aka Elasticsearch Query DSL

Ou ka fè rechèch lè l sèvi avèk paramèt sou URL la. Men, ou kapab tou itilize JSON, jan yo montre nan pwochen egzanp lan. JSON ta pi fasil pou li ak debogaj lè ou gen yon rechèch konplèks pase yon seri gwo paramèt URL.

curl -XGET --header 'Content-Type: application/json' http://localhost:9200/samples/_search -d '{
      "query" : {
        "match" : { "school": "Harvard" }
    }
}'

Lis kat endèks

Tout jaden Elasticsearch yo se endèks. Se konsa, sa a lis tout jaden ak kalite yo nan yon endèks.

curl -X GET http://localhost:9200/samples

Ajoute Done

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/1 -d '{
   "school" : "Harvard"			
}'

Mete ajou Doc

Men ki jan yo ajoute jaden nan yon dokiman ki egziste deja. Premyèman, nou kreye yon nouvo. Lè sa a, nou mete ajou li.

curl -XPUT --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2 -d '
{
    "school": "Clemson"
}'

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/samples/_doc/2/_update -d '{
"doc" : {
               "students": 50000}
}'

Endèks sovgad

curl -XPOST --header 'Content-Type: application/json' http://localhost:9200/_reindex -d '{
  "source": {
    "index": "samples"
  },
  "dest": {
    "index": "samples_backup"
  }
}'

Done chaje an gwo nan fòma JSON

export pwd="elastic:"

curl --user $pwd  -H 'Content-Type: application/x-ndjson' -XPOST 'https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/0/_bulk?pretty' --data-binary @<file>

Montre sante gwoup la

curl --user $pwd  -H 'Content-Type: application/json' -XGET https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/_cluster/health?pretty

Agrégation ak Agrégation bokit

Pou yon sèvè entènèt Nginx, sa a pwodui konte hit entènèt pa vil itilizatè:

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
             "cityName": {
                    "terms": {
                     "field": "geoip.city_name.keyword",
                                "size": 50

        }
   }
  }
}
'

Sa a ogmante sa a nan konte kòd repons pwodwi pa vil la nan yon boutèy demi lit sèvè entènèt Nginx

curl -XGET --user $pwd --header 'Content-Type: application/json'  https://58571402f5464923883e7be42a037917.eu-central-1.aws.cloud.es.io:9243/logstash/_search?pretty -d '{
        "aggs": {
          "city": {
                "terms": {
                        "field": "geoip.city_name.keyword"
                },
        "aggs": {
          "responses": {
                "terms": {
                     "field": "response"
                 }
           }
         }
      },
      "responses": {
                "terms": {
                     "field": "response"
                 }
        }
   }
}'

Sèvi ak ElasticSearch ak Otantifikasyon debaz

Si ou te aktive sekirite ak ElasticSearch, Lè sa a, ou bezwen bay itilizatè a ak modpas tankou yo montre anba a nan chak lòd boukl:

curl -X GET 'http://localhost:9200/_cat/indices?v' -u elastic:(password)

Joli Enprime

Ajoute ?pretty=true nan nenpòt rechèch pou bèl enprime JSON la. Tankou sa a:

 curl -X GET 'http://localhost:9200/(index)/_search'?pretty=true

Pou rechèch epi retounen sèlman sèten jaden

Pou retounen sèlman sèten jaden, mete yo nan etalaj la _source:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "_source": ["suricata.eve.timestamp","source.geo.region_name","event.created"],
    "query":      {
        "match" : { "source.geo.country_iso_code": "GR" }
    }
}

Pou demann pa dat

Lè jaden an gen kalite dat, ou ka itilize matematik dat, tankou sa a:

GET filebeat-7.6.2-2020.05.05-000001/_search
 {
    "query": {
        "range" : {
            "event.created": {
                "gte" : "now-7d/d"
            }
        }
}
}

Dezenstalasyon Elasticsearch

Si ou pa bezwen Elasticsearch ankò, ou ka retire lojisyèl an ak lòd sa a:

sudo apt remove elasticsearch

Retire depo apt la jan sa a:

sudo rm /etc/apt/sources.list.d/elastic-7.x.list

Lè sa a, mete ajou lis depo ou a pou reflete chanjman yo:

sudo apt update

reklam


Kòmantè ak konklizyon

Ou te aprann kijan pou enstale Elasticsearch sou Debian 11 Bullseye nan depo ofisyèl Elasticsearch a epi konfigirasyon debaz yo nan leson patikilye a. An jeneral, ElasticSearch gen anpil karakteristik popilè, kèk yo te mansyone nan kòmansman leson patikilye a, men lòt moun gen ladan pèmèt itilizatè yo fè rechèch nan divès domèn lè l sèvi avèk yon sèl rechèch. ElasticSearch bay yon gwo nivo sharding, ki vle di évolutivité orizontal, ki amelyore pèfòmans nan menm ak yon ogmantasyon nan chaj.

Pou plis lekti, vizite ofisyèl la paj dokimantasyon.

Leave a Comment