Ինչպես տեղադրել OpenSearch-ը Debian 12-ում


Այս ձեռնարկը գոյություն ունի ՕՀ-ի այս տարբերակների համար

  • Debian 12 (Գիրքորդ)
  • Debian 11 (Bullseye)

Այս էջում

  1. Նախադրյալներ
  2. Քայլ 1 - Կարգավորել Firewall-ը
  3. Քայլ 2 - Համակարգի պատրաստում
  4. Քայլ 3 - Տեղադրեք OpenSearch-ը
  5. Քայլ 4 - Փորձարկել OpenSearch-ը
  6. Քայլ 5 - Կարգավորեք OpenSearch-ը
  7. Քայլ 6 - Կարգավորեք TLS-ը OpenSearch-ի համար

    1. Ստեղծեք արմատային վկայագրեր
    2. Ստեղծեք ադմինիստրատորի վկայականներ
    3. Ստեղծեք հանգույցի վկայագրեր
    4. Տեղադրման համար վկայագրերի պատրաստում
  8. Քայլ 7 - Տեղադրեք TLS-ը OpenSearch-ում
  9. Քայլ 8 - OpenSearch օգտվողի ստեղծում
  10. Քայլ 9 - Տեղադրեք OpenSearch Dashboards
  11. Քայլ 10 - Կարգավորեք OpenSearch Dashboards-ը
  12. Քայլ 11 - Տեղադրեք Nginx
  13. Քայլ 12 - Տեղադրեք SSL-ը
  14. Քայլ 13 - Կարգավորել Nginx-ը
  15. Քայլ 14 - Մուտք գործեք և օգտագործեք OpenSearch Dashboards
  16. Եզրակացություն

OpenSearch-ը Elasticsearch-ի և Kibana-ի բաց կոդով պատառաքաղ է, որը մշակվել է Amazon-ի կողմից: Այն իրական ժամանակի, բաշխված և մասշտաբային որոնման համակարգ է, որը թույլ է տալիս ամբողջական տեքստի որոնում, ինչպես նաև վերլուծություն: Այն օգտագործվում է մեծ քանակությամբ տվյալների ինդեքսավորման և որոնման համար: Այն սովորաբար տեղադրվում է OpenSearch Dashboard-ի կողքին (Kibana-ի պատառաքաղ), որը տվյալների վիզուալիզացիայի հզոր վահանակ է OpenSearch-ի համար: OpenSearch Dashboards-ը թույլ է տալիս ուսումնասիրել OpenSearch-ի մատյանների տվյալները և ստեղծել վահանակներ և հարցումներ՝ ձեր հավելվածի վերաբերյալ պատկերացում կազմելու համար:

Այս ձեռնարկը ցույց կտա ձեզ, թե ինչպես տեղադրել OpenSearch-ը Debian 12 սերվերի վրա: Դուք նաև կսովորեք, թե ինչպես ապահովել ձեր տեղադրումը հատուկ TLS վկայագրերով և միացնել նույնականացումը OpenSearch-ում:

Նախադրյալներ

    Debian 12-ով աշխատող սերվեր՝ նվազագույնը 4 ԳԲ օպերատիվ հիշողությամբ:

    Ոչ արմատային օգտատեր՝ sudo արտոնություններով:

    Ոչ բարդ Firewall-ը (UFW) միացված է և աշխատում է:

    Լիովին որակավորված տիրույթի անուն (FQDN), ինչպիսին է opensearch.example.com-ը, որը ցույց է տալիս ձեր սերվերը: Սա ձեռնտու է, եթե ցանկանում եք սպասարկել OpenSearch Dashboard-ները SSL-ի միջոցով՝ օգտագործելով պրոքսի սերվեր:

    Ամեն ինչ թարմացվում է։

    $ sudo apt update && sudo apt upgrade
    

    Ձեռնարկի և Craft CMS-ի գործարկման համար պահանջվում են մի քանի կարևոր փաթեթներ: Դրանցից մի քանիսն արդեն կլինեն ձեր սերվերում:

    $ sudo apt install curl wget nano software-properties-common dirmngr apt-transport-https ca-certificates lsb-release debian-archive-keyring gnupg2 ufw unzip -y
    

Քայլ 1 - Կարգավորել Firewall-ը

Փաթեթներ տեղադրելուց առաջ առաջին քայլը firewall-ի կազմաձևումն է, որպեսզի թույլ տա HTTP և HTTPS կապեր:

Ստուգեք firewall-ի կարգավիճակը:

$ sudo ufw status

Դուք պետք է տեսնեք հետևյալի նման մի բան.

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Թույլատրել HTTP և HTTPs նավահանգիստները:

$ sudo ufw allow http
$ sudo ufw allow https

Ստուգեք կարգավիճակը կրկին հաստատելու համար:

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443/tcp                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443/tcp (v6)               ALLOW       Anywhere (v6)

Քայլ 2 - Համակարգի պատրաստում

Նախքան OpenSearch-ը տեղադրելը, մենք պետք է պատրաստենք և օպտիմալացնենք մեր համակարգը դրա համար: Կան մի քանի քայլեր, որոնք ներառում են անջատել ցանկացած փոխանակման հիշողություն, եթե ունեք այն, սահմանել ձեր համակարգի հիշողության քարտեզների քանակը և տեղադրել համակարգի հոսթի անունը:

Նախ ստուգեք՝ արդյոք միացված եք փոխանակման հիշողությունը:

$ free -m

Եթե դուք միացրել եք փոխանակումը, ապա դուք պետք է տեսնեք նմանատիպ արդյունք:

               total        used        free      shared  buff/cache   available
Mem:            7945        1083        6492          34         636        6861
Swap:           4242           0        4242

Գործարկեք հետևյալ հրամանները՝ փոխանակման տարածքը ընդմիշտ անջատելու համար:

$ sudo swapoff -a
$ sudo sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

Կրկին ստուգեք փոխանակման հիշողությունը, և այն պետք է ցույց տա հետևյալը.

               total        used        free      shared  buff/cache   available
Mem:            7945        1113        6449          37         651        6831
Swap:              0           0           0

OpenSearch-ը լռելյայն օգտագործում է mapfs գրացուցակը` իր ինդեքսները պահելու համար: Օպերացիոն համակարգի լռելյայն սահմանաչափերը nmap հաշվում չափազանց ցածր են, ինչը կարող է հանգեցնել հիշողության սխալների:

Ստուգեք առկա արժեքը vm.max_map_count փոփոխականի համար:

$ sysctl -n vm.max_map_count
65530

Յուրաքանչյուր գործընթացի կողմից օգտագործվող հիշողության քարտեզների քանակը մեծացնելու համար գործարկեք հետևյալ հրամանը.

$ sudo sysctl -w vm.max_map_count=262144

Սա կաշխատի միայն մինչև համակարգը վերագործարկվի: Այս արժեքը մշտական դարձնելու համար ավելացրեք vm.max_map_count=262144 տողը /etc/sysctl.conf ֆայլում՝ օգտագործելով հետևյալ հրամանը։

$ echo "vm.max_map_count=262144" | sudo tee -a /etc/sysctl.conf

Դուք կարող եք փոփոխությունը մշտական դարձնել՝ կա՛մ համակարգը վերաբեռնելով, կա՛մ գործարկելով հետևյալ հրամանը:

$ sudo sysctl -p

Վերջին քայլը հյուրընկալողի անվան կարգավորումն է: Կախված նրանից, թե որտեղ եք հյուրընկալում ձեր սերվերը, որոշ ամպային ընկերություններ թույլ են տալիս սահմանել ձեր հոսթի անունը անմիջապես իրենց կառավարման վահանակի միջոցով: Այնուամենայնիվ, ավելի լավ է դա անել տերմինալի միջոցով:

Գործարկեք հետևյալ հրամանը՝ հյուրընկալողի անունը սահմանելու համար:

$ sudo hostnamectl set-hostname opensearch

Ավելացրեք FQDN (Լիովին որակավորված տիրույթի անուն) /etc/hosts ֆայլում: Այստեղ մենք քարտեզագրում ենք հոսթի անունը opensearch տիրույթի անունը opensearch.example.com և մատնացույց անում այն սերվերի IP հասցեին: Փոխարինեք ստորև նշված հրամանում ձեր սերվերի IP հասցեով:

$ echo "<serverIPaddress>  opensearch.example.com  opensearch" | sudo tee -a /etc/hosts

Ստուգեք հյուրընկալողի անունը և FQDN-ը՝ օգտագործելով հետևյալ հրամանները.

$ hostname
opensearch
$ hostname -f
opensearch.example.com

Սա ավարտում է մեր համակարգի օպտիմալացման գործընթացը OpenSearch-ի հետ աշխատելու համար:

Քայլ 3 - Տեղադրեք OpenSearch-ը

Ներմուծեք OpenSearch GPG ստեղնը, որն օգտագործվում է տեղադրման փաթեթը ստորագրելու համար:

$  curl -o- https://artifacts.opensearch.org/publickeys/opensearch.pgp | sudo gpg --dearmor --batch --yes -o /usr/share/keyrings/opensearch-keyring

Ստեղծեք OpenSearch APT պահեստային ֆայլը:

$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-2.x.list

Թարմացրեք համակարգի պահեստների ցանկը:

$ sudo apt update

Ստուգեք OpenSearch-ի բոլոր հասանելի տարբերակները:

$ sudo apt list -a opensearch
Listing... Done
opensearch/stable 2.12.0 amd64
opensearch/stable 2.11.1 amd64
opensearch/stable 2.11.0 amd64
opensearch/stable 2.10.0 amd64
opensearch/stable 2.9.0 amd64
opensearch/stable 2.8.0 amd64
opensearch/stable 2.7.0 amd64
opensearch/stable 2.6.0 amd64
opensearch/stable 2.5.0 amd64

OpenSearch v2.12.0-ի վերջին տարբերակը պահանջում է, որ տեղադրեք ադմինիստրատորի ցուցադրական գաղտնաբառը, հակառակ դեպքում այն չի հաջողվի:

Դուք կարող եք տեղադրել OpenSearch-ի վերջին տարբերակը՝ օգտագործելով հետևյալ հրամանը. Մենք կարող ենք սահմանել ադմինիստրատորի ցուցադրական գաղտնաբառը՝ օգտագործելով շրջակա միջավայրի փոփոխականը հենց տեղադրման հրամանում: Ընտրեք ուժեղ գաղտնաբառ:

$ sudo env OPENSEARCH_INITIAL_ADMIN_PASSWORD=<custom-admin-password> apt install opensearch

Եթե տեղադրման ընթացքում տեսնեք հետևյալ նախազգուշացումը, կարող եք ապահով կերպով անտեսել այն:

......
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
chown: warning: '.' should be ':': ‘opensearch.opensearch’
......

Կամ կարող եք տեղադրել կոնկրետ տարբերակ:

$ sudo apt install opensearch=2.11.1

Վերաբեռնել սպասարկման դեյմոնը:

$ sudo systemctl daemon-reload

Միացնել OpenSearch ծառայությունը:

$ sudo systemctl enable opensearch

Սկսեք OpenSearch ծառայությունը:

$ sudo systemctl start opensearch

Ստուգեք OpenSearch ծառայության կարգավիճակը:

$ sudo systemctl status opensearch

Դուք պետք է ստանաք հետևյալ արդյունքը.

? opensearch.service - OpenSearch
     Loaded: loaded (/lib/systemd/system/opensearch.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 06:37:01 UTC; 5s ago
       Docs: https://opensearch.org/
   Main PID: 31109 (java)
      Tasks: 75 (limit: 4652)
     Memory: 1.3G
        CPU: 1min 3.128s
     CGroup: /system.slice/opensearch.service
             ??31109 /usr/share/opensearch/jdk/bin/java -Xshare:auto -Dopensearch.networkaddress.cache.ttl=60 -Dopensearch.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true...

Քայլ 4 - Փորձարկել OpenSearch-ը

Նախքան հետագա շարունակելը, եկեք ստուգենք՝ տեղադրումը լավ է աշխատում, թե ոչ: Գործարկեք հետևյալ հրամանը՝ ստուգելու, թե արդյոք OpenSearch-ն աշխատում է ըստ նախատեսվածի:

$ curl -X GET https://localhost:9200 -u 'admin:<custom-admin-password>' --insecure

Դուք պետք է ստանաք նմանատիպ արդյունք:

{
  "name" : "opensearch",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.12.0",
    "build_type" : "deb",
    "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
    "build_date" : "2024-02-20T02:18:31.541484890Z",
    "build_snapshot" : false,
    "lucene_version" : "9.9.2",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Հարցրեք OpenSearch պլագինների վերջնակետը՝ հասանելի փլագինների ցանկը տեսնելու համար:

$ curl -X GET https://localhost:9200/_cat/plugins?v -u 'admin:<custom-admin-password>' --insecure

Նույնի համար կարող եք նաև օգտագործել հետևյալ հրամանը.

$ /usr/share/opensearch/bin/opensearch-plugin list

Դուք պետք է ստանաք նմանատիպ արդյունք:

name       component                            version
opensearch opensearch-alerting                  2.12.0.0
opensearch opensearch-anomaly-detection         2.12.0.0
opensearch opensearch-asynchronous-search       2.12.0.0
opensearch opensearch-cross-cluster-replication 2.12.0.0
opensearch opensearch-custom-codecs             2.12.0.0
opensearch opensearch-flow-framework            2.12.0.0
opensearch opensearch-geospatial                2.12.0.0
opensearch opensearch-index-management          2.12.0.0
opensearch opensearch-job-scheduler             2.12.0.0
opensearch opensearch-knn                       2.12.0.0
opensearch opensearch-ml                        2.12.0.0
opensearch opensearch-neural-search             2.12.0.0
opensearch opensearch-notifications             2.12.0.0
opensearch opensearch-notifications-core        2.12.0.0
opensearch opensearch-observability             2.12.0.0
opensearch opensearch-performance-analyzer      2.12.0.0
opensearch opensearch-reports-scheduler         2.12.0.0
opensearch opensearch-security                  2.12.0.0
opensearch opensearch-security-analytics        2.12.0.0
opensearch opensearch-skills                    2.12.0.0
opensearch opensearch-sql                       2.12.0.0

Դուք կարող եք տեղադրել լրացուցիչ պլագիններ՝ օգտագործելով հետևյալ հրամանը.

$ /usr/share/opensearch/bin/opensearch-plugin install <plugin-name>

Դուք կարող եք գտնել հասանելի OpenSearch հավելվածների ցանկը նրանց պաշտոնական կայքում:

Քայլ 5 - Կարգավորեք OpenSearch-ը

OpenSearch-ի լռելյայն կարգավորումները չեն համապատասխանում արտադրական միջավայրին: Լռելյայնորեն, OpenSearch-ը կապված չէ ցանցային ինտերֆեյսի հետ և անհասանելի է դրսից: Ավելին, օգտագործվում են լռելյայն օգտագործողի անուններն ու գաղտնաբառերը, որոնք կարող են անվտանգության հետ կապված խնդիրներ առաջացնել, եթե դրանք ուղղակիորեն օգտագործվեն արտադրական միջավայրում:

OpenSearch-ը պահպանում է իր կոնֆիգուրացիան /etc/opensearch/opensearch.yml ֆայլում: Բացեք այն խմբագրելու համար:

$ sudo nano /etc/opensearch/opensearch.yml

Գտեք #network.host: 192.168.0.1 տողը և ապամեկնաբանեք այն՝ հեռացնելով դրա դիմացի հեշը (#) և փոխելով դրա արժեքը, ինչպես ցույց է տրված: Սա կապում է OpenSearch-ը բոլոր հասանելի միջերեսների հետ: Կարող եք նաև ընտրել որոշակի IP մուտքագրել՝ այն որոշակի ինտերֆեյսի հետ կապելու համար:

# Set the bind address to a specific IP (IPv4 or IPv6):
#
network.host: 0.0.0.0

Ֆայլի ներքևում ավելացրեք հետևյալ տողերը.

# Unless you have already configured a cluster, you should set
# discovery.type to single-node, or the bootstrap checks will
# fail when you try to start the service.
discovery.type: single-node

# If you previously disabled the Security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false

Քանի որ մենք տեղադրում ենք մեկ սերվերի վրա, մենք սահմանել ենք discovery.type մեկ հանգույցի: plugins.security.disabledfalse-ի սահմանումը հնարավորություն է տալիս OpenSearch անվտանգության պլագինը:

Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ հուշում է:

Մենք նաև պետք է նշենք JVM-ի (Java Virtual Memory) կույտի սկզբնական և առավելագույն չափերը: Այս կարգավորումը կախված է ձեր սերվերի RAM-ի չափից: Օրինակ, մենք օգտագործում ենք 4 ԳԲ օպերատիվ հիշողություն ունեցող սերվեր, ուստի կույտի չափը դնում ենք 3 ԳԲ-ի:

Ստեղծեք և բացեք heapsize.options /etc/opensearch/jvm.options.d գրացուցակում խմբագրման համար: Այն կվերագրի /etc/opensearch/jvm.options ֆայլում սահմանված լռելյայն արժեքը:

$ sudo nano /etc/opensearch/jvm.options.d/heapsize.options

Դրան ավելացրեք հետևյալ տողերը.

-Xms3g
-Xmx3g

Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ հուշում է:

Փոփոխություններն իրականացնելու համար վերագործարկեք OpenSearch ծառայությունը:

$ sudo systemctl restart opensearch

Դուք կարող եք ստուգել ընթացիկ կույտի չափը և առավելագույն հիշողությունը՝ օգտագործելով հետևյալ հրամանը:

$ curl -sS "https://localhost:9200/_cat/nodes?h=heap*&v" -u 'admin:<custom-admin-password>' --insecure

Դուք պետք է ստանաք հետևյալ արդյունքը.

heap.current heap.percent heap.max
     345.5mb           11      3gb

Քայլ 6 - Կարգավորեք TLS-ը OpenSearch-ի համար

Այստեղ մենք կստեղծենք վկայագրեր՝ OpenSearch-ն ապահովելու համար: TLS վկայագրերն ապահովում են անվտանգություն՝ թույլ տալով հաճախորդներին հաստատել հոսթների ինքնությունը և գաղտնագրել երթևեկությունը հաճախորդի և հյուրընկալողի միջև: Մենք կստեղծենք հետևյալ վկայագրերը

  1. Root CA վկայագրեր - Սրանք հիմնական վկայագրերն են, որոնք կստորագրեն բոլոր մյուս վկայագրերը:
  2. Ադմինիստրատորի վկայականներ - Այս վկայագրերն օգտագործվում են անվտանգության հավելվածի հետ կապված ադմինիստրատիվ առաջադրանքների կատարման բարձր իրավունքներ ստանալու համար:
  3. Հանգույցի վկայագրեր - Այս վկայագրերն օգտագործվում են հանգույցի և հաճախորդի միջև հաղորդակցվելու համար:

OpenSearch-ի բոլոր վկայականները պահվում են /etc/opensearch գրացուցակում: Առաջին քայլը OpenSearch-ի տեղադրման ընթացքում սահմանված լռելյայն վկայագրերի հեռացումն է:

Անցեք OpenSearch գրացուցակին:

$ cd /etc/opensearch

Հեռացրեք լռելյայն վկայականները:

$ sudo rm -f *.pem

Բացեք OpenSearch կազմաձևման ֆայլը խմբագրման համար:

$ sudo nano opensearch.yml

Մեկնաբանեք հետևյալ կոդը ֆայլի ներքևում՝ յուրաքանչյուր տողի դիմաց դնելով հեշ՝ OpenSearch Security Demo Configuration բաժնում, ինչպես ցույց է տրված ստորև:

######## Start OpenSearch Security Demo Configuration ########
# WARNING: revise all the lines below before you go into production
#plugins.security.ssl.transport.pemcert_filepath: esnode.pem
#plugins.security.ssl.transport.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.transport.pemtrustedcas_filepath: root-ca.pem
#plugins.security.ssl.transport.enforce_hostname_verification: false
#plugins.security.ssl.http.enabled: true
#plugins.security.ssl.http.pemcert_filepath: esnode.pem
#plugins.security.ssl.http.pemkey_filepath: esnode-key.pem
#plugins.security.ssl.http.pemtrustedcas_filepath: root-ca.pem
#plugins.security.allow_unsafe_democertificates: true
#plugins.security.allow_default_init_securityindex: true
#plugins.security.authcz.admin_dn: ['CN=kirk,OU=client,O=client,L=test,C=de']
#plugins.security.audit.type: internal_opensearch
#plugins.security.enable_snapshot_restore_privilege: true
#plugins.security.check_snapshot_restore_write_privileges: true
#plugins.security.restapi.roles_enabled: [all_access, security_rest_api_access]
#plugins.security.system_indices.enabled: true
#plugins.security.system_indices.indices: [.plugins-ml-config, .plugins-ml-connector,
#  .plugins-ml-model-group, .plugins-ml-model, .plugins-ml-task, .plugins-ml-conversation-meta,
#  .plugins-ml-conversation-interactions, .plugins-ml-memory-meta, .plugins-ml-memory-message,
#  .opendistro-alerting-config, .opendistro-alerting-alert*, .opendistro-anomaly-results*,
#  .opendistro-anomaly-detector*, .opendistro-anomaly-checkpoints, .opendistro-anomaly-detection-state,
#  .opendistro-reports-*, .opensearch-notifications-*, .opensearch-notebooks, .opensearch-observability,
#  .ql-datasources, .opendistro-asynchronous-search-response*, .replication-metadata-store,
#  .opensearch-knn-models, .geospatial-ip2geo-data*, .plugins-flow-framework-config,
#  .plugins-flow-framework-templates, .plugins-flow-framework-state]
#node.max_local_storage_nodes: 3
######## End OpenSearch Security Demo Configuration ########

Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ պահանջվում է:

Հաջորդը, ստեղծեք գրացուցակ՝ վկայագրերը պահելու համար /etc/opensearch գրացուցակում:

$ sudo mkdir /etc/opensearch/certs

Փոխեք գրացուցակի թույլտվությունը տվյալ պահին մուտք գործած օգտատիրոջը՝ վկայագրերը ստեղծելիս sudo-ից խուսափելու համար:

$ sudo chown $USER:$USER /etc/opensearch/certs -R

Անցեք վկայագրի գրացուցակին:

$ cd /etc/opensearch/certs

Ստեղծեք արմատային վկայագրեր

Ստեղծեք անձնական բանալի արմատային վկայագրի համար:

$ openssl genrsa -out root-ca-key.pem 2048

Ստեղծեք ինքնաստորագրված արմատային CA վկայագիր: Մենք օգտագործում ենք -subj պարամետրը՝ վկայագրում ներկառուցված տեղեկություններ տրամադրելու համար: Եթե դուք չեք օգտագործում -subj դրոշը, ձեզնից կպահանջվի այս ամբողջ տեղեկատվությունը:

$ openssl req -new -x509 -sha256 -key root-ca-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=ROOT" -out root-ca.pem -days 730

Դուք կարող եք փոխել տեղեկատվությունը ձեր հատուկ հյուրընկալողին համապատասխանելու համար:

-subj պարամետրի փոփոխականները նշանակում են հետևյալը.

C=Երկրի անուն (2 տառ ծածկագիր), ST=նահանգի կամ նահանգի անվանումը (լրիվ անուն), L=տեղանքի անվանումը (օրինակ, քաղաք), O=կազմակերպության անվանումը, OU=կազմակերպչական միավորի անվանումը (օրինակ, բաժին), CN=ընդհանուր Անունը (օրինակ՝ սերվերի FQDN)

Ձեր արմատային վկայականն այժմ հասանելի է:

Ստեղծեք ադմինիստրատորի վկայականներ

Ստեղծեք ադմինիստրատորի վկայագրի անձնական բանալին՝ օգտագործելով հետևյալ հրամանը.

$ openssl genrsa -out admin-key-temp.pem 2048

Փոխակերպեք անձնական բանալին PKCS#8 ձևաչափի Java-ում օգտագործելու համար՝ օգտագործելով PKCS#12 համատեղելի ալգորիթմ (3DES):

$ openssl pkcs8 -inform PEM -outform PEM -in admin-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out admin-key.pem

Ստեղծեք ադմինիստրատորի CSR (Վկայագրի ստորագրման հարցում) մասնավոր բանալիից: Քանի որ այս վկայագիրը կապված չէ որևէ հոսթինգի հետ և օգտագործվում է բարձրացված մուտքի նույնականացման համար, մենք օգտագործում ենք A արժեքը ընդհանուր անվան համար (CN):

$ openssl req -new -key admin-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=A" -out admin.csr

Ստորագրեք ադմինիստրատորի CSR-ն ձեր նոր ստեղծված արմատային վկայականով և անձնական բանալիով:

$ openssl x509 -req -in admin.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out admin.pem -days 730
Certificate request self-signature ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = A

Ստեղծեք հանգույցի վկայագրեր

Ստեղծեք մասնավոր բանալի հանգույցի վկայագրի համար:

$ openssl genrsa -out node1-key-temp.pem 2048

Փոխակերպեք հանգույցի մասնավոր բանալին PKCS#8 ձևաչափի:

$ openssl pkcs8 -inform PEM -outform PEM -in node1-key-temp.pem -topk8 -nocrypt -v1 PBE-SHA1-3DES -out node1-key.pem

Ստեղծեք նոր CSR հանգույցի վկայագրի համար մասնավոր բանալիից: Համոզվեք, որ փոխեք CN փոփոխականի արժեքը ձեր հանգույցի հոսթի անվան հետ: Այս վկայագիրը կապված է ձեր հոսթների հետ և այն պետք է համընկնի հոսթի անվան կամ հանգույցի IP հասցեի հետ:

$ openssl req -new -key node1-key.pem -subj "/C=CA/ST=ONTARIO/L=TORONTO/O=ORG/OU=UNIT/CN=opensearch.example.com" -out node1.csr

Ստեղծեք SAN (Subject Alternative Name) ընդլայնման ֆայլ, որը պարունակում է հանգույցի հոսթի անունը կամ FQDN կամ IP հասցեն:

$ sh -c 'echo subjectAltName=DNS:opensearch.example.com > node1.ext'

Ստորագրեք հանգույցի վկայագրի CSR-ն ձեր նոր ստեղծած արմատային վկայականով և մասնավոր բանալիով:

$ openssl x509 -req -in node1.csr -CA root-ca.pem -CAkey root-ca-key.pem -CAcreateserial -sha256 -out node1.pem -days 730 -extfile node1.ext
Certificate request self-signature ok
subject=C = CA, ST = ONTARIO, L = TORONTO, O = ORG, OU = UNIT, CN = opensearch.example.com

Տեղադրման համար վկայագրերի պատրաստում

Հեռացրեք ցանկացած ժամանակավոր վկայական, CSR և SAN ընդլայնման ֆայլ:

$ rm -f *temp.pem *csr *ext

Հաջորդը, մենք կտեղադրենք արմատային CA վկայագիրը սերվերի վրա: Դրա համար արմատական CA վկայագիրը փոխարկեք .crt ձևաչափի։

$ openssl x509 -outform der -in root-ca.pem -out root-ca.crt

Պատճենեք root-ca.crt ֆայլը /usr/local/share/ca-certificates/ գրացուցակում:

$ sudo cp root-ca.crt /usr/local/share/ca-certificates/

Ավելացրեք արմատային CA վկայագիրը ձեր Debian սերվերին՝ օգտագործելով հետևյալ հրամանը.

$ sudo update-ca-certificates

Դուք պետք է տեսնեք հետևյալ ելքը ( 1 ավելացված), որը հաստատում է, որ արմատային CA վկայագիրը ավելացվել է ձեր համակարգին:

Updating certificates in /etc/ssl/certs...
rehash: warning: skipping ca-certificates.crt,it does not contain exactly one certificate or CRL
rehash: warning: skipping root-ca.pem,it does not contain exactly one certificate or CRL
1 added, 0 removed; done.
Running hooks in /etc/ca-certificates/update.d...
done.

Փոխեք գրացուցակի սեփականության իրավունքը opensearch օգտվողին:

$ sudo chown opensearch:opensearch /etc/opensearch/certs -R

Փոխեք գրացուցակի թույլտվությունը 0700-ի:

$ sudo chmod 0700 /etc/opensearch/certs

Փոխեք վկայագրերի թույլտվությունը 0600-ի:

$ sudo chmod 0600 /etc/opensearch/certs/{admin-key,admin,node1-key,node1,root-ca-key,root-ca}.pem
$ sudo chmod 0600 /etc/opensearch/certs/root-ca.crt

Քայլ 7 - Տեղադրեք TLS-ը OpenSearch-ում

Այժմ, երբ բոլոր վկայագրերը ստեղծվել և կարգավորվել են, ժամանակն է տեղադրել և ավելացնել վկայականները ձեր OpenSearch տեղադրման մեջ:

Առաջին քայլը bash սկրիպտի ստեղծումն է, որը կավելացնի ստեղծված բոլոր հավաստագրերը և TLS անվտանգության հավելումների կարգավորումները OpenSearch-ի կազմաձևման ֆայլում (/etc/opensearch/opensearch.yml):

Ստեղծեք add-opensearch-tls.sh անունով ֆայլ և բացեք այն խմբագրման համար:

$ cd ~
$ nano add-opensearch-tls.sh

Դրա մեջ տեղադրեք հետևյալ կոդը.

#! /bin/bash

# Before running this script, make sure to replace the CN in the 
# node's distinguished name with a real DNS A record.

echo "plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.enabled: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.allow_default_init_securityindex: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.authcz.admin_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo "  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.nodes_dn:" | sudo tee -a /etc/opensearch/opensearch.yml
echo "  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.audit.type: internal_opensearch" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.enable_snapshot_restore_privilege: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.check_snapshot_restore_write_privileges: true" | sudo tee -a /etc/opensearch/opensearch.yml
echo "plugins.security.restapi.roles_enabled: [\"all_access\", \"security_rest_api_access\"]" | sudo tee -a /etc/opensearch/opensearch.yml

Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ պահանջվում է:

Դարձրեք ֆայլը գործարկելի:

$ chmod +x add-opensearch-tls.sh

Գործարկեք սցենարը:

$ ./add-opensearch-tls.sh

Դուք պետք է ստանաք հետևյալ արդյունքը.

plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]

Բացեք /etc/opensearch/opensearch.yml ֆայլը՝ ստուգելու համար, թե արդյոք ձեր կարգավորումները կիրառվել են:

$ sudo nano /etc/opensearch/opensearch.yml

Ոլորեք ֆայլի ներքևում և կտեսնեք հետևյալը.

# If you previously disabled the Security plugin in opensearch.yml,
# be sure to re-enable it. Otherwise you can skip this setting.
plugins.security.disabled: false
....
plugins.security.ssl.transport.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.transport.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.transport.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.ssl.http.enabled: true
plugins.security.ssl.http.pemcert_filepath: /etc/opensearch/certs/node1.pem
plugins.security.ssl.http.pemkey_filepath: /etc/opensearch/certs/node1-key.pem
plugins.security.ssl.http.pemtrustedcas_filepath: /etc/opensearch/certs/root-ca.pem
plugins.security.allow_default_init_securityindex: true
plugins.security.authcz.admin_dn:
  - 'CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.nodes_dn:
  - 'CN=opensearch.example.com,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA'
plugins.security.audit.type: internal_opensearch
plugins.security.enable_snapshot_restore_privilege: true
plugins.security.check_snapshot_restore_write_privileges: true
plugins.security.restapi.roles_enabled: ["all_access", "security_rest_api_access"]

Երբ դուք բավարարված եք, պահեք ֆայլը սեղմելով Ctrl + X:

Քայլ 8 - OpenSearch օգտվողի ստեղծում

Այս քայլում մենք կհեռացնենք բոլոր ցուցադրական օգտատերերին, բացառությամբ admin օգտվողի և կփոխարինենք լռելյայն admin գաղտնաբառը՝ օգտագործելով սկրիպտը:

Անցեք OpenSearch անվտանգության հավելումների գործիքների գրացուցակին:

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Գործարկեք hash.sh սկրիպտը` նոր գաղտնաբառ ստեղծելու համար:

$ ./hash

Սցենարը չի հաջողվի, և դուք կստանաք հետևյալ սխալը, քանի որ Java-ի գործարկվող (JDK) ուղին սահմանված չէ:

**************************************************************************
** This tool will be deprecated in the next major release of OpenSearch **
** https://github.com/opensearch-project/security/issues/1755           **
**************************************************************************
WARNING: nor OPENSEARCH_JAVA_HOME nor JAVA_HOME is set, will use 
./hash.sh: line 35: java: command not found

Կրկին գործարկեք հրամանը՝ հայտարարելով շրջակա միջավայրի փոփոխականը OPENSEARCH_JAVA_HOME JDK-ի գտնվելու վայրով:

$ OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./hash.sh

Դուք կստանաք նմանատիպ արդյունք:

**************************************************************************
** This tool will be deprecated in the next major release of OpenSearch **
** https://github.com/opensearch-project/security/issues/1755           **
**************************************************************************
[Password:]
$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2

Այն կստեղծի գաղտնաբառի հեշ, որը մեզ ավելի ուշ պետք կգա:

Բացեք OpenSearch օգտվողի կազմաձևման ֆայլը internal_users.yml /etc/opensearch/opensearch-security/ գրացուցակում՝ խմբագրելու համար:

$ sudo nano /etc/opensearch/opensearch-security/internal_users.yml

Մեկնաբանեք բոլոր ցուցադրական օգտագործողներին՝ նրանց առջև հեշ ավելացնելով, ինչպես ցույց է տրված:

---
# This is the internal user database
# The hash value is a bcrypt hash and can be generated with plugin/tools/hash.sh

_meta:
  type: "internalusers"
  config_version: 2

# Define your internal users here

## Demo users

#admin:
#  hash: "$2y$12$Twy84uxOX0SQ1QMQ68og8O/i1MvqWItt/phZX3DiJMjpBoT9u9KX6"
#  reserved: true
#  backend_roles:
#  - "admin"
#  description: "Demo admin user"

#anomalyadmin:

Ավելացրեք ադմինիստրատորի օգտատիրոջը վերևում ստեղծված հեշով, ինչպես ցույց է տրված:

---
# This is the internal user database
# The hash value is a bcrypt hash and can be generated with plugin/tools/hash.sh

_meta:
  type: "internalusers"
  config_version: 2

# Define your internal users here

admin:
  hash: "$2y$12$4NL0LqEnN4FXaUdQQC.gOupeCQT2IuMo9gN0b5d3nxdMVbLX088f2"
  reserved: true
  backend_roles:
  - "admin"
  description: "Admin user"

## Demo users

#admin:

Ավարտելուց հետո պահեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ հուշվի:

Այժմ, երբ տեղադրվել են TLS վկայականները, և ցուցադրական օգտատերերը հանել կամ նոր գաղտնաբառեր են նշանակել, ժամանակն է կիրառել կազմաձևման փոփոխությունները: Փոփոխությունները կիրառելու համար մենք կկանչենք securityadmin.sh սկրիպտը /usr/share/opensearch/plugins/opensearch-security/tools գրացուցակի ներսում: Սցենարը պահանջում է OpenSearch ծառայության գործարկումը:

Վերագործարկեք OpenSearch ծառայությունը:

$ sudo systemctl restart opensearch

Անցեք /usr/share/opensearch/plugins/opensearch-security/tools գրացուցակին:

$ cd /usr/share/opensearch/plugins/opensearch-security/tools

Գործարկեք սցենարը՝ օգտագործելով հետևյալ հրամանը.

$ sudo OPENSEARCH_JAVA_HOME=/usr/share/opensearch/jdk ./securityadmin.sh -h opensearch.nspeaks.com -p 9200 -cd /etc/opensearch/opensearch-security/ -cacert /etc/opensearch/certs/root-ca.pem -cert /etc/opensearch/certs/admin.pem -key /etc/opensearch/certs/admin-key.pem -icl -nhnv

Անվտանգության հավելվածը պահպանում է իր կոնֆիգուրացիան՝ ներառյալ օգտվողներին, թույլտվությունները, դերերը և հետին պլանի կարգավորումները OpenSearch կլաստերի վրա գտնվող համակարգի ինդեքսում: Այս կարգավորումները կլաստերում պահելը թույլ է տալիս փոխել կարգավորումները՝ առանց կլաստերի վերագործարկման և վերացնում է կազմաձևման ֆայլը յուրաքանչյուր հանգույցում խմբագրելու անհրաժեշտությունը: Սա կատարվում է securityadmin.sh սկրիպտը գործարկելու միջոցով:

  • -cd տարբերակը նշում է, թե որտեղ են գտնվում անվտանգության հավելումների կազմաձևման ֆայլերը:
  • -icl (--ignore-clustername) տարբերակը անվտանգության հավելավճարին հրահանգում է վերբեռնել կոնֆիգուրացիան՝ անկախ կլաստերի անունից: Դուք կարող եք նաև նշել կլաստերի անունը՝ -cn (--clustername) տարբերակն օգտագործելու փոխարեն:
  • Քանի որ վկայագրերը ինքնստորագրված են, մենք օգտագործում ենք -nhnv (--disable-host-name-verification) տարբերակը:
  • --cacert, --cert և --key տարբերակները սահմանում են արմատային վկայագրի, ադմինիստրատորի վկայագրի և մասնավորի գտնվելու վայրը: ադմինիստրատորի վկայականի բանալին: Եթե մասնավոր բանալին ունի գաղտնաբառ, կարող եք այն սահմանել՝ օգտագործելով -keypass տարբերակը:

Դուք կարող եք ավելին իմանալ անվտանգության հավելվածի կազմաձևման մասին OpenSearch փաստաթղթերում:

Դուք պետք է ստանաք նմանատիպ արդյունք, ինչպես ցույց է տրված ստորև նշված հրամանով:

**************************************************************************
** This tool will be deprecated in the next major release of OpenSearch **
** https://github.com/opensearch-project/security/issues/1755           **
**************************************************************************
Security Admin v7
Will connect to opensearch:9200 ... done
Connected as "CN=A,OU=UNIT,O=ORG,L=TORONTO,ST=ONTARIO,C=CA"
OpenSearch Version: 2.12.0
Contacting opensearch cluster 'opensearch' and wait for YELLOW clusterstate ...
Clustername: opensearch
Clusterstate: GREEN
Number of nodes: 1
Number of data nodes: 1
.opendistro_security index already exists, so we do not need to create one.
Populate config from /etc/opensearch/opensearch-security/
Will update '/config' with /etc/opensearch/opensearch-security/config.yml 
   SUCC: Configuration for 'config' created or updated
Will update '/roles' with /etc/opensearch/opensearch-security/roles.yml 
   SUCC: Configuration for 'roles' created or updated
Will update '/rolesmapping' with /etc/opensearch/opensearch-security/roles_mapping.yml 
   SUCC: Configuration for 'rolesmapping' created or updated
Will update '/internalusers' with /etc/opensearch/opensearch-security/internal_users.yml 
   SUCC: Configuration for 'internalusers' created or updated
Will update '/actiongroups' with /etc/opensearch/opensearch-security/action_groups.yml 
   SUCC: Configuration for 'actiongroups' created or updated
Will update '/tenants' with /etc/opensearch/opensearch-security/tenants.yml 
   SUCC: Configuration for 'tenants' created or updated
Will update '/nodesdn' with /etc/opensearch/opensearch-security/nodes_dn.yml 
   SUCC: Configuration for 'nodesdn' created or updated
Will update '/whitelist' with /etc/opensearch/opensearch-security/whitelist.yml 
   SUCC: Configuration for 'whitelist' created or updated
Will update '/audit' with /etc/opensearch/opensearch-security/audit.yml 
   SUCC: Configuration for 'audit' created or updated
Will update '/allowlist' with /etc/opensearch/opensearch-security/allowlist.yml 
   SUCC: Configuration for 'allowlist' created or updated
SUCC: Expected 10 config types for node {"updated_config_types":["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"],"updated_config_size":10,"message":null} is 10 (["allowlist","tenants","rolesmapping","nodesdn","audit","roles","whitelist","internalusers","actiongroups","config"]) due to: null
Done with success

Ստուգեք նոր հավատարմագրերը, օգտագործելով հետևյալ հրամանը.

Նախորդ փորձարկման ժամանակ մենք հարցումներն ուղղեցինք localhost: Այժմ, երբ ստեղծվել են TLS վկայագրերը, և նոր վկայականները վերաբերում են հյուրընկալողի իրական DNS գրառումին, localhost հարցումները չեն անցնի CN ստուգումը, և վկայագիրը կհամարվի անվավեր: Հետևաբար, ստուգելու համար ավելացրեք ձեր իրական DNS գրառումը ստորև նշված հրամանում:

$ curl https://your.host.address:9200 -u admin:yournewpassword -k

Դուք պետք է տեսնեք հետևյալ պատասխանը.

{
  "name" : "opensearch",
  "cluster_name" : "opensearch",
  "cluster_uuid" : "3oFvYn96St2MOpDP3Sf29g",
  "version" : {
    "distribution" : "opensearch",
    "number" : "2.12.0",
    "build_type" : "deb",
    "build_hash" : "2c355ce1a427e4a528778d4054436b5c4b756221",
    "build_date" : "2024-02-20T02:18:31.541484890Z",
    "build_snapshot" : false,
    "lucene_version" : "9.9.2",
    "minimum_wire_compatibility_version" : "7.10.0",
    "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "The OpenSearch Project: https://opensearch.org/"
}

Քայլ 9 - Տեղադրեք OpenSearch Dashboards

Քանի որ մենք արդեն տեղադրել ենք OpenSearch-ը, մենք կարող ենք բաց թողնել OpenSearch GPG ստեղնի ներմուծման քայլը:

OpenSearch-ի վահանակները տեղադրելու համար գործարկեք հետևյալ հրամանը՝ դրա համար APT պահոց ստեղծելու համար:

$ echo "deb [signed-by=/usr/share/keyrings/opensearch-keyring] https://artifacts.opensearch.org/releases/bundle/opensearch-dashboards/2.x/apt stable main" | sudo tee /etc/apt/sources.list.d/opensearch-dashboards-2.x.list

Թարմացրեք համակարգի պահեստների ցանկը:

$ sudo apt update

Թվարկե՛ք OpenSearch Dashboards-ի բոլոր հասանելի տարբերակները:

$ sudo apt list -a opensearch-dashboards

Դուք պետք է տեսնեք նմանատիպ արդյունք:

Listing... Done
opensearch-dashboards/stable 2.12.0 amd64
opensearch-dashboards/stable 2.11.1 amd64
opensearch-dashboards/stable 2.11.0 amd64
opensearch-dashboards/stable 2.10.0 amd64
opensearch-dashboards/stable 2.9.0 amd64
opensearch-dashboards/stable 2.8.0 amd64
opensearch-dashboards/stable 2.7.0 amd64
opensearch-dashboards/stable 2.6.0 amd64
opensearch-dashboards/stable 2.5.0 amd64

Տեղադրեք OpenSearch Dashboard-ի վերջին տարբերակը:

$ sudo apt install opensearch-dashboards

Կամ տեղադրեք OpenSearch Dashboard-ի հատուկ տարբերակը:

$ sudo apt install opensearch-dashboards=2.12.0

OpenSearch-ի վահանակների և OpenSearch-ի տարբերակը պետք է լինի նույնը, հակառակ դեպքում կարող եք բազմաթիվ խնդիրների առաջ կանգնել:

Վերաբեռնել սպասարկման դեյմոնը:

$ sudo systemctl daemon-reload

Միացնել OpenSearch Dashboards ծառայությունը:

$ sudo systemctl enable opensearch-dashboards

Սկսեք OpenSearch Dashboards ծառայությունը:

$ sudo systemctl start opensearch-dashboards

Ստուգեք OpenSearch Dashboards ծառայության կարգավիճակը:

$ sudo systemctl status opensearch-dashboards

Դուք պետք է տեսնեք հետևյալ արդյունքը.

? opensearch-dashboards.service - "OpenSearch Dashboards"
     Loaded: loaded (/lib/systemd/system/opensearch-dashboards.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 16:01:25 UTC; 4s ago
   Main PID: 7098 (node)
      Tasks: 11 (limit: 9484)
     Memory: 175.4M
        CPU: 5.389s
     CGroup: /system.slice/opensearch-dashboards.service
             ??7098 /usr/share/opensearch-dashboards/node/bin/node /usr/share/opensearch-dashboards/src/cli/dist

Mar 02 16:01:25 opensearch systemd[1]: Started opensearch-dashboards.service - "OpenSearch Dashboards".

Քայլ 10 - Կարգավորեք OpenSearch Dashboards-ը

OpenSearch Dashboards-ը պահում է իր կոնֆիգուրացիան /etc/opensearch-dashboards/opensearch_dashboards.yml ֆայլում: Բացեք այն խմբագրելու համար:

$ sudo nano /etc/opensearch-dashboards/opensearch_dashboards.yml

Գտեք # server.host: «localhost» տողը և ապամեկնաբանեք այն՝ հեռացնելով դրա դիմացի հեշը և փոխելով դրա արժեքը, ինչպես ցույց է տրված:

# Specifies the address to which the OpenSearch Dashboards server will bind. IP addresses and host names are both valid values.
# The default is 'localhost', which usually means remote machines will not be able to connect.
# To allow connections from remote users, set this parameter to a non-loopback address.
server.host: 0.0.0.0

server.host-ի արժեքը 0.0.0.0 սահմանելը կապում է OpenSearch Dashboard-ը ցանկացած արտաքին IP-ի հետ, որն այն հասանելի է դարձնում Համաշխարհային ցանցի միջոցով: Եթե ցանկանում եք սպասարկել Dashboards-ը SSL-ի միջոցով՝ օգտագործելով հակադարձ պրոքսի, ապա թողեք այս արժեքը անփոփոխ:

Ոլորեք ներքև՝ գտնելու հետևյալ բաժինը։

opensearch.hosts: [https://localhost:9200]
opensearch.ssl.verificationMode: none
opensearch.username: kibanaserver
opensearch.password: kibanaserver
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

Փոխեք արժեքները, ինչպես կազմաձևված է մեր OpenSearch տեղադրման համար:

opensearch.hosts: [https://opensearch:9200]
opensearch.ssl.verificationMode: none
opensearch.username: admin
opensearch.password: <custom-admin-password>
opensearch.requestHeadersWhitelist: [authorization, securitytenant]

Ավարտելուց հետո պահեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ հուշվի:

Վերագործարկեք OpenDashboards ծառայությունը:

$  sudo systemctl restart opensearch-dashboards

Բացեք պորտը 5601 UFW firewall-ում:

$ sudo ufw allow 5601

Բացեք URL http://:5601 կամ http://opensearch.example.com:5601՝ OpenSearch Dashboards կայքը գործարկելու համար:

Եթե դուք օգտվում եք OpenSearch Dashboards մուտք գործելով HTTP-ի միջոցով և URL-ում պորտի համարով, կարող եք կանգ առնել այստեղ: Այնուամենայնիվ, ավելի լավ է սպասարկել Dashboard-ները SSL-ի միջոցով: Դրա համար մենք Nginx-ը կտեղադրենք որպես հակադարձ պրոքսի և դրա վրա կծառայենք SSL-ին:

Քայլ 11 - Տեղադրեք Nginx

Debian 12-ը առաքվում է Nginx-ի ավելի հին տարբերակով: Վերջին տարբերակը տեղադրելու համար անհրաժեշտ է ներբեռնել պաշտոնական Nginx պահոցը:

Ներմուծեք Nginx-ի ստորագրման բանալին:

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

Ավելացրեք պահեստը Nginx-ի հիմնական տարբերակի համար:

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

Թարմացրեք համակարգի պահեստները:

$ sudo apt update

Տեղադրեք Nginx-ը:

$ sudo apt install nginx

Ստուգեք տեղադրումը: Debian համակարգերում հետևյալ հրամանը կաշխատի միայն sudo-ի հետ։

$ sudo nginx -v
nginx version: nginx/1.25.4

Գործարկեք Nginx սերվերը:

$ sudo systemctl start nginx

Ստուգեք ծառայության կարգավիճակը:

$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Sat 2024-03-02 12:53:57 UTC; 4s ago
       Docs: https://nginx.org/en/docs/
    Process: 3976 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 3977 (nginx)
      Tasks: 3 (limit: 9484)
     Memory: 2.7M
        CPU: 9ms
     CGroup: /system.slice/nginx.service
             ??3977 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??3978 "nginx: worker process"
             ??3979 "nginx: worker process"

Mar 02 12:53:57 opensearch systemd[1]: Starting nginx.service - nginx - high performance web server...
Mar 02 12:53:57 opensearch systemd[1]: Started nginx.service - nginx - high performance web server.

Քայլ 12 - Տեղադրեք SSL-ը

SSL վկայագիր ստեղծելու համար մենք պետք է տեղադրենք Certbot-ը: Կարող եք կա՛մ տեղադրել Certbot-ը՝ օգտագործելով Debian-ի պահոցը, կա՛մ ձեռք բերել վերջին տարբերակը՝ օգտագործելով Snapd գործիքը: Մենք կօգտագործենք Snapd տարբերակը:

Debian 12-ը չի գալիս Snapd-ի տեղադրմամբ: Տեղադրեք Snapd փաթեթը:

$ sudo apt install snapd

Գործարկեք հետևյալ հրամանները՝ համոզվելու համար, որ Snapd-ի ձեր տարբերակը արդիական է:

$ sudo snap install core && sudo snap refresh core

Տեղադրեք Certbot-ը:

$ sudo snap install --classic certbot

Օգտագործեք հետևյալ հրամանը՝ համոզվելու համար, որ Certbot հրամանը կարող է գործարկվել՝ ստեղծելով խորհրդանշական հղում դեպի /usr/bin գրացուցակը:

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

Ստուգեք, արդյոք Certbot-ը ճիշտ է աշխատում:

$ certbot --version
certbot 2.9.0

Գործարկեք հետևյալ հրամանը՝ SSL վկայական ստեղծելու համար:

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m [email  -d craftcms.example.com

Վերոնշյալ հրամանը վկայական կներբեռնի ձեր սերվերի /etc/letsencrypt/live/craftcms.example.com գրացուցակում:

Ստեղծեք Diffie-Hellman խումբ վկայագիր:

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

Ստուգեք Certbot-ի նորացման ժամանակացույցի ծառայությունը:

$ sudo systemctl list-timers

Դուք կգտնեք snap.certbot.renew.service որպես սպասարկվող ծառայություններից մեկը:

NEXT                        LEFT           LAST                        PASSED    UNIT                         ACTIVATES                   ---------------------------------------------------------------------------------------------------------------------------------------  
Sat 2024-03-02 16:25:00 UTC 3h 27min left  -                           -         snap.certbot.renew.timer     snap.certbot.renew.service
Sat 2024-03-02 23:00:51 UTC 10h left       Sat 2024-03-02 06:29:02 UTC 6h ago    apt-daily.timer              apt-daily.service
Sun 2024-03-03 00:00:00 UTC 11h left       -                           -         dpkg-db-backup.timer         dpkg-db-backup.service
.....

Կատարեք գործընթացի չոր գործարկում՝ ստուգելու, թե արդյոք SSL-ի նորացումը լավ է աշխատում:

$ sudo certbot renew --dry-run

Եթե սխալներ չեք տեսնում, ամեն ինչ պատրաստ է: Ձեր վկայականը ինքնաբերաբար կերկարաձգվի:

Քայլ 13 - Կարգավորել Nginx-ը

Բացեք ֆայլը /etc/nginx/nginx.conf խմբագրման համար:

$ sudo nano /etc/nginx/nginx.conf

Ավելացրեք հետևյալ տողը include /etc/nginx/conf.d/*.conf; տողից առաջ:

server_names_hash_bucket_size 64;

Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ հուշում է:

Ստեղծեք և բացեք ֆայլը /etc/nginx/conf.d/opensearch.conf խմբագրման համար:

$ sudo nano /etc/nginx/conf.d/opensearch.conf

Դրա մեջ տեղադրեք հետևյալ կոդը. Փոխարինեք opensearch.example.com ձեր տիրույթի անունով:

server {

    listen 443 ssl;
    listen [::]:443 ssl;

    http2 on;
    http3 on;
    quic_retry on;

    server_name opensearch.example.com;

    access_log  /var/log/nginx/opensearch.access.log;
    error_log   /var/log/nginx/opensearch.error.log;

    ssl_certificate      /etc/letsencrypt/live/opensearch.example.com/fullchain.pem;
    ssl_certificate_key  /etc/letsencrypt/live/opensearch.example.com/privkey.pem;
    ssl_trusted_certificate /etc/letsencrypt/live/opensearch.example.com/chain.pem;

    ssl_session_timeout  5m;
    ssl_session_cache shared:MozSSL:10m;
    ssl_session_tickets off;
    ssl_early_data on;

    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_prefer_server_ciphers on;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
    ssl_stapling on;
    ssl_stapling_verify on;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;

    location / {
        proxy_pass http://localhost:5601;
        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;
    }
}
# enforce HTTPS
server {
    listen 80;
    listen [::]:80;
    server_name  opensearch.example.com;
    return 301   https://$host$request_uri;
}

Պահպանեք ֆայլը՝ սեղմելով Ctrl + X և մուտքագրելով Y, երբ պահանջվում է:

Ստուգեք ձեր Nginx կոնֆիգուրացիան:

$ sudo nginx -t

Վերագործարկեք Nginx սերվերը:

$ sudo systemctl restart nginx

OpenSearch Dashboards-ը գործարկելու համար այցելեք https://opensearch.example.com ձեր դիտարկիչում:

Քայլ 14 - Մուտք գործեք և օգտագործեք OpenSearch Dashboards

Եթե դուք օգտագործել եք Nginx, ապա մուտք գործեք Dashboards https://opensearch.example.com URL-ի միջոցով կամ օգտագործեք http://opensearch.example.com:5601 և դուք պետք է ստանա մուտքի էջը:

Մուտքագրեք admin և 4-րդ քայլում OpenSearch-ի համար ձեր կազմաձևած հատուկ ադմինիստրատորի գաղտնաբառը և կտտացրեք Մուտք գործել կոճակը շարունակելու համար:

Սեղմեք Ավելացնել տվյալներ կոճակը՝ ուղղակիորեն տվյալներ ավելացնելու համար, կամ սեղմեք Ուսումնասիրել իմ կողմից հղմանը, եթե նախ ուզում եք թերթել: Մենք նախ կզննարկենք, և այն պետք է ձեզ տանի մի թռուցիկ, որը խոսում է OpenSearch Dashboards-ի մութ ռեժիմի մասին:

Շարունակելու համար սեղմեք Փակել կոճակը: Հաջորդը, ձեզ կառաջարկվի ընտրել վարձակալ:

OpenSearch Dashboards-ի վարձակալները տարածքներ են ինդեքսի նախշերը, վիզուալիզացիաները, վահանակները և OpenSearch Dashboards-ի այլ օբյեկտները պահելու համար: Յուրաքանչյուր օգտվող կարող է ստեղծել մի քանի վարձակալներ բազմաթիվ օգտագործման համար: Վարձակալները օգտակար են OpenSearch Dashboard-ի այլ օգտատերերի հետ ձեր աշխատանքը ապահով կերպով կիսելու համար: OpenSearch-ը հնարավորություն է տալիս ընտրել երեք տարբերակների միջև:

  • Գլոբալ – Այս վարձակալը համօգտագործվում է OpenSearch Dashboards-ի յուրաքանչյուր օգտվողի միջև:
  • Անձնական - Այս վարձակալը բացառիկ է յուրաքանչյուր օգտատիրոջ համար և չի կարող համօգտագործվել:
  • Պատվիրված - Ադմինիստրատորները կարող են ստեղծել հատուկ վարձակալներ և նրանց նշանակել որոշակի դերեր: Ստեղծվելուց հետո դուք կարող եք օգտագործել այս վարձակալները՝ որոշակի օգտատերերի տարածքներ տրամադրելու համար:

Առայժմ մենք կպահպանենք մասնավոր վարձակալի լռելյայն տարբերակը: Շարունակելու համար սեղմեք Հաստատել կոճակը: Ձեզ կողջունեն հետևյալ էջը.

Հաջորդը, մենք կստուգենք կապը OpenSearch-ի և OpenSearch Dashboard-ների միջև:

Սեղմեք վերևի աջ կողմում գտնվող Dev Tools կոճակը, և ձեզ կցուցադրվի մինի ելնող պատուհան OpenSearch Dashboard-ի վահանակի միջերեսի մասին:

Սեղմեք Փակել կոճակը, մուտքագրեք GET / հարցումը ձախ կողմում գտնվող վահանակում և սեղմեք փոքր նվագարկման կոճակը մեջտեղում: Դուք պետք է տեսնեք հետևյալ ելքը աջ կողմում.

Սա հաստատում է, որ OpenSearch Dashboards-ը տվյալներ է ստանում OpenSearch-ից, և երկուսն էլ լավ են աշխատում: Դուք կարող եք սկսել տվյալներ ավելացնել այստեղից:

Եզրակացություն

Սա ավարտում է Debian 12 սերվերի վրա OpenSearch-ի տեղադրման ձեռնարկը: Եթե ունեք հարցեր, տեղադրեք դրանք ստորև ներկայացված մեկնաբանություններում: