Ki jan yo enstale Elasticsearch sou openSUSE Leap 15

Elasticsearch se yon sous louvri trè évolutive motè rechèch ak analiz konplè tèks. Anjeneral, se motè/teknoloji ki kache pou aplikasyon yo ki gen karakteristik rechèch konplèks ak kondisyon. Lojisyèl la sipòte operasyon RESTful ki pèmèt ou estoke, rechèch, ak analize volim enpòtan nan done byen vit ak nan 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.

Nan leson patikilye sa a, ou pral aprann ki jan yo enstale Elastic Search sou openSUSE Leap 15.

Kondisyon

Mizajou sistèm operasyon

Mete ajou ou openSUSE sistèm operasyon pou asire tout pakè ki egziste deja yo ajou:

sudo zypper refresh

Tutorial la pral sèvi ak la sudo kòmand ak sipoze ou gen estati sudo.

Pou verifye estati sudo sou kont ou:

sudo whoami

Egzanp pwodiksyon ki montre estati sudo:

[joshua@opensuse ~]$ sudo whoami
root

Pou mete kanpe yon kont sudo ki deja egziste oswa nouvo, vizite leson patikilye nou an sou ajoute yon itilizatè nan Sudoers sou openSUSE.

Pou itilize kont rasin, sèvi ak lòd sa a ak modpas rasin lan pou konekte.

su

Enstale pake CURL

Jounal CURL se kòmand ki nesesè pou kèk pati nan gid sa a. Pou enstale pake sa a, tape lòd sa a:

sudo zyper install curl

Enstale Java Package

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

Tape lòd sa a pou enstale OpenJDK pake:

sudo zypper install java-11-openjdk-devel

reklam


Enstale Elasticsearch

Elasticsearch pa disponib nan estanda depo openSUSE, kidonk ou bezwen enstale li soti nan Elasticsearch depo.

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

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Pwochen etap la se kreye yon fichye repo Elasticsearch jan sa a:

sudo zypper ar https://artifacts.elastic.co/packages/7.x/yum elasticsearch

Koulye a, enstale Elasticsearch lè l sèvi avèk lòd sa a:

sudo zypper install elasticsearch

Egzanp pwodiksyon:

Ki jan yo enstale Elasticsearch sou openSUSE Leap 15

Kalite "Y," Lè sa a, peze la "ENTRE KLE" kontinye ak enstalasyon an

Pou pèmèt Elasticsearch aktive pa default, w ap bezwen enstale ensserv pake.

sudo zypper install insserv

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

Egzanp pwodiksyon:

Synchronizing state of elasticsearch.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch

Verifye ke Elasticsearch ap fonksyone kòrèkteman lè l sèvi avèk boukle lòd voye yon HTTP mande yo pò 9200 on lokalost jan sa a:

sudo curl http://localhost:9200?pretty

Egzanp pwodiksyon:

Ki jan yo enstale Elasticsearch sou openSUSE Leap 15

Ki jan yo 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 se 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

Scroll desann nan liy 56 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 openSUSE Leap 15

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

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 openSUSE Leap 15

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 Firewalld pou Elasticsearch

Pa default, pa gen okenn règ yo mete sou pye pou Elasticsearch, ki ka lakòz pwoblèm nan tras la.

Premyèman, ajoute yon nouvo zòn dedye pou politik firewalld Elasticsearch:

sudo firewall-cmd --permanent --new-zone=elasticsearch

Apre sa, presize adrès IP ki pèmèt yo gen aksè a Memcached la.

sudo firewall-cmd --permanent --zone=elasticsearch --add-source=1.2.3.4

Ranplase 1.2.3.4 ak IP la adrès ki pral ajoute nan lis la pèmèt.

Yon fwa ou fin ajoute adrès IP yo, louvri pò Memcached la.

Pou egzanp, TCP pò 11211.

sudo firewall-cmd --permanent --zone=elasticsearch --add-port=9200/tcp

Remake byen, ou ka chanje pò a default nan fichye konfigirasyon ou a si ou chanje règ la pò pare-feu louvri pi wo a nan nouvo valè a.

Apre w fin kouri kòmandman sa yo, rechaje firewall la pou aplike nouvo règ yo:

sudo firewall-cmd --reload

Egzanp pwodiksyon si siksè:

success

reklam


Kouman pou itilize 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 ka sèvi ak JSON tou, jan yo montre nan egzanp sa a. 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 nan 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"
            }
        }
}
}

Ki jan yo retire (Dezinstalle) Elasticsearch

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

sudo zypper remove elasticsearch

Egzanp pwodiksyon:

Ki jan yo enstale Elasticsearch sou openSUSE Leap 15

Kalite "Y," Lè sa a, peze la "ENTRE KLE" kontinye ak retire Elasticsearch la.


reklam


Kòmantè ak konklizyon

Ou te aprann kijan pou enstale Elasticsearch sou openSUSE 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 nivo eksepsyonèl nan 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