
<p dir="rtl" align="center">بسم الله الرحمن الرحیم</p>

## <p dir="rtl" align="center"> نحوه حذف/نصب و پیکربندی Elasticsearch 8 در Ubuntu 20.04 </p> ##

<p dir="rtl" align="justify"> در این مطلب قصد داریم نحوه نصب Elasticsearch 8 را در Ubuntu 20.04 ، پیکربندی Elasticsearch در وبونتو 20.04  و حذف Elasticsearch از Ubuntu را بیان کنیم.</p>

###  <p dir="rtl" align="right">معرفی</p> ###
<p dir="rtl" align="justify">
 Elasticsearch جستجو و تجزیه و تحلیل در زمان واقعی را برای انواع داده ها فراهم می کند.  چه متنی ساختاریافته یا بدون ساختار، داده های عددی یا داده های مکانی داشته باشید، Elasticsearch می تواند آن را به نحوی کارآمد ذخیره و فهرست بندی کند که از جستجوهای سریع پشتیبانی می کند.
</p>

### <p dir="rtl" align="right">پیش نیازها:</p> ###
<p dir="rtl" align="right" style="background-color : white;">
  * سرور Ubuntu با 20.04/18.04/16.04 LTS <br>
  * جاوا 8 یا نسخه بالاتر<br>
  * 2 CPU و 4 گیگابایت RAM<br>
  * باز بودن پورت9200<br>
</p>

<p dir="rtl" align="right"> بسته های سیستم را به روز کنید </p>

```r
sudo apt update
```

<p dir="rtl" align="right"> بسته apt-transport-https را برای دسترسی به مخزن از طریق HTTPS نصب کنید <p>

```r
sudo apt install apt-transport-https
```

## <p dir="rtl" align="right">1.OpenJDK را در Ubuntu نصب کنید<p> ##
<p dir="rtl" align="right">
 OpenJDK 11 را با دستور زیر در Ubuntu نصب کنید:
</p>

```r
sudo apt install openjdk-11-jdk
```

<p dir="rtl" align="right"> بررسی نسخه ی نصبی جاوا با دستور زیر: <p>

```r
java --version
```

<p dir="rtl" align="right"> خروجی: <p>
<p style="background-color:black;color:white;">
openjdk 11.0.14.1 2022-02-08<br>
OpenJDK Runtime Environment (build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04)<br>
OpenJDK 64-Bit Server VM (build 11.0.14.1+1-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)<br>
</p>

## <p dir="rtl" align="right"> 2.تنظیم متغیر محیطی JAVA_HOME </p> ##

<p dir="rtl" align="right">برای تعریف متغیر محیطی فایل زیر را باز کنید: </p>

```r
sudo nano /etc/environment
```

<p dir="rtl" align="right">متغیر زیر را در فایل قرار دهید: </p>

```r
JAVA_HOME="/usr/lib/jvm/java-11-openjdk-amd64"
```

<p dir="rtl" align="right">متغیر محیطی یا environment را با استفاده از دستور زیر بارگذاری کنید</p>


```r
source /etc/environment
```

<p dir="rtl" align="right">بررسی JAVA_HOME متغیر</p>

```r
echo $JAVA_HOME
```

<p dir="rtl" align="right"> خروجی: <p>
<p style="background-color:black;color:white;">
/usr/lib/jvm/java-11-openjdk-amd64
</p>

## <p dir="rtl" align="right"> 3.نصب ElasticSearch 8 در Ubuntu 20.04 LTS </p> ##

<p dir="rtl" align="right">کلید امضای عمومی را دانلود و نصب کنید، اگر می‌خواهید آخرین Elasticsearch را دانلود کنید، به صفحه دانلود رسمی Elastic Stack مراجعه کنید.</p>

```r
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
```

<p dir="rtl" align="right">تعریف مخزن را در این فایل ذخیره کنید: /etc/apt/sources.list.d/elastic-8.x.list:</p>

```r
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list
```

<p dir="rtl" align="right"> می توانید Elasticsearch را با استفاده از دستور زیر نصب کنید:</p>

```r
sudo apt-get update
sudo apt-get install elasticsearch
```


<p dir="rtl" align="right">  راه اندازی سرویس Elasticsearch  </p>

```r
sudo systemctl start elasticsearch
```
<p dir="rtl" align="right">هنگام راه‌اندازی سیستم، Elasticsearch  را فعال کنید</p>

```r
sudo systemctl enable elasticsearch
```

<p dir="rtl" align="right">دستور زیر برای بررسی وضعیت Elasticsearch  است:</p>

```r
sudo systemctl status elasticsearch
```

<p dir="rtl" align="right"> خروجی: <p>
<p style="background-color:black;color:white;">

<code>
● elasticsearch.service - Elasticsearch
     Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-04-21 06:57:31 UTC; 9s ago
       Docs: https://www.elastic.co
   Main PID: 17266 (java)
      Tasks: 68 (limit: 4693)
     Memory: 2.3G
     CGroup: /system.slice/elasticsearch.service
             ├─17266 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.neg>
             └─17539 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
<br>
Apr 21 06:57:12 ip-172-31-4-2 systemd[1]: Starting Elasticsearch...
Apr 21 06:57:31 ip-172-31-4-2 systemd[1]: Started Elasticsearch.

</code>

</p>

## <p dir="rtl" align="right">4.پیکربندی Elasticsearch در Ubuntu 20.04 LTS </p> ##

<p dir="rtl" align="right">بیایید در فایل پیکربندی زیر تغییراتی ایجاد کنیم</p>

```r
sudo nano /etc/elasticsearch/elasticsearch.yml
```

<p dir="rtl" align="right"> به بخش Network بروید و network.host را از نظر خارج کنید و IP سیستم خود را جایگزین کنید</p>


```r
network.host: 0.0.0.0
```

<p dir="rtl" align="right">و باید این خط را اضافه کنید discovery.seed_hosts: [ ] در بخش discovery همانطور که در زیر نشان داده شده است: </p>


<p dir="rtl" align="justify">  در مرحله بعد به BEGIN SECURITY AUTO CONFIGURATION بروید و در اینجا باید true را با false جایگزین کنید، همانطور که در زیر نشان داده شده است: </p>

<p style="background-color:black;color:white;">
Error: elasticsearch “curl: (52) Empty reply from server” on port 9200
</p>

<p dir="rtl" align="right">راه حل:<br>
فایل پیکربندی Elasticsearch را باز کنید
</p>

```r
sudo nano /etc/elasticsearch/elasticsearch.yml
```

<p style="background-color:black;color:white;">
 xpack.security.enabled: true
</p>

<p dir="rtl" align="right">
غیرفعالسازی امینت با دستور
</p>

```r
 xpack.security.enabled: false
```

<p dir="rtl" align="right">
پس از تغییر در فایل پیکربندی باید باید سرویس را دوباره راه‌اندازی کنید پس دستور زیر را اجرا کنید:
</p>

```r
sudo systemctl restart elasticsearch
```

## <p dir="rtl" align="right">5.دسترسی ElasticSearch به Ubuntu </p> ##

<p dir="rtl" align="right">
اجازه می دهد Elasticsearch را با استفاده از دستور curl با ارسال درخواست HTTP آزمایش کنیم
</p>

```r
curl -X GET "localhost:9200"
```

<p dir="rtl" align="right"> خروجی: <p>
<p style="background-color:black;color:white;">
<code>
{
  "name" : "ip-172-31-4-2",
  "cluster_name" : "elasticsearch",
  "cluster_uuid" : "5WWxXV59TUiwsLWmb1lTDg",
  "version" : {
     "number" : "8.1.3",
     "build_flavor" : "default",
     "build_type" : "deb",
     "build_hash" : "39afaa3c0fe7db4869a161985e240bd7182d7a07",
     "build_date" : "2022-04-19T08:13:25.444693396Z",
     "build_snapshot" : false,
     "lucene_version" : "9.0.0",
     "minimum_wire_compatibility_version" : "7.17.0",
     "minimum_index_compatibility_version" : "7.0.0"
  },
  "tagline" : "You Know, for Search"
}
</code>
</p>

<p dir="rtl" align="right">
با استفاده از مرورگر می توانید دسترسی داشته باشید
</p>

```r
http://127.0.0.1:9200
```


## <p dir="rtl" align="right">6.حذف Elasticsearch از Ubuntu</p>

<p dir="rtl" align="right">
اگر می خواهید elasticsearch را حذف کنید، دستورات زیر را اجرا کنید:
</p>

```r
sudo apt-get --purge autoremove elasticsearch
sudo apt-get remove --purge elasticsearch
sudo rm -rf /etc/elasticsearch
```

<p dir="rtl" align="right">[منبع](https://www.fosstechnix.com/how-to-install-elasticsearch-8-on-ubuntu/)</p>


<p dir="rtl" align="center">صلوات</p>