Ինչպես տեղադրել OpenSearch-ը Debian 12-ում
Այս ձեռնարկը գոյություն ունի ՕՀ-ի այս տարբերակների համար
- Debian 12 (Գիրքորդ)
- Debian 11 (Bullseye)
Այս էջում
- Նախադրյալներ
- Քայլ 1 - Կարգավորել Firewall-ը
- Քայլ 2 - Համակարգի պատրաստում
- Քայլ 3 - Տեղադրեք OpenSearch-ը
- Քայլ 4 - Փորձարկել OpenSearch-ը
- Քայլ 5 - Կարգավորեք OpenSearch-ը
Քայլ 6 - Կարգավորեք TLS-ը OpenSearch-ի համար
- Ստեղծեք արմատային վկայագրեր
- Ստեղծեք ադմինիստրատորի վկայականներ
- Ստեղծեք հանգույցի վկայագրեր
- Տեղադրման համար վկայագրերի պատրաստում
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.disabled
-ի false
-ի սահմանումը հնարավորություն է տալիս 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 վկայագրերն ապահովում են անվտանգություն՝ թույլ տալով հաճախորդներին հաստատել հոսթների ինքնությունը և գաղտնագրել երթևեկությունը հաճախորդի և հյուրընկալողի միջև: Մենք կստեղծենք հետևյալ վկայագրերը
- Root CA վկայագրեր - Սրանք հիմնական վկայագրերն են, որոնք կստորագրեն բոլոր մյուս վկայագրերը:
- Ադմինիստրատորի վկայականներ - Այս վկայագրերն օգտագործվում են անվտանգության հավելվածի հետ կապված ադմինիստրատիվ առաջադրանքների կատարման բարձր իրավունքներ ստանալու համար:
- Հանգույցի վկայագրեր - Այս վկայագրերն օգտագործվում են հանգույցի և հաճախորդի միջև հաղորդակցվելու համար:
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://
կամ 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-ի տեղադրման ձեռնարկը: Եթե ունեք հարցեր, տեղադրեք դրանք ստորև ներկայացված մեկնաբանություններում: