Ubuntu: Как установить Elasticsearch 7 для Magento 2.4
Решил установить и посмотреть на новинки в Magento 2.4.2-p1. Для инсталяции Мадженто нужен Elasticsearch, поэтому пришлось его устанавливать, об этом и пойдет речь..
Устанавливаем JDK если еще не установлен
1 2 3 |
sudo apt install openjdk-8-jdk |
Добавляем GPG ключ репозитория эластика
1 2 3 |
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add - |
Теперь добавляем нужную версию репозитория, в моем случае это 7.x
1 2 3 |
sudo sh -c 'echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" > /etc/apt/sources.list.d/elastic-7.x.list' |
Обновляем репу, проверяем версию и устанавливаем
1 2 3 4 5 6 7 8 |
sudo apt update dpkg -s elasticsearch | grep Version Version: 7.13.2 sudo apt install elasticsearch |
Далее, я перенес папку данных с системного раздела на рабочий, тк там быстрее диск
1 2 3 4 5 |
sudo cp -r /var/lib/elasticsearch /work/progr/elastic/ sudo chown -R elasticsearch:elasticsearch /work/progr/elastic/elasticsearch sudo rm -rf /var/lib/elasticsearch |
и поменял ее в конфиге /etc/elasticsearch/elasticsearch.yml
1 2 3 |
path.data: /work/progr/elastic/elasticsearch |
Далее я запустил elastic и добавил его в автозагрузку
1 2 3 4 |
sudo systemctl start elasticsearch.service sudo systemctl enable elasticsearch.service |
Если вдруг у вас сразу не заведется, ошибки можно посмотреть так
1 2 3 4 5 |
journalctl -xe cat /var/log/elasticsearch/elasticsearch.log |
Далее, я обнвружил что Elastic съел всю свободную память
1 2 3 4 5 6 7 8 9 10 |
systemctl status elasticsearch ● elasticsearch.service - Elasticsearch Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-07-01 13:34:17 EEST; 18min ago Docs: https://www.elastic.co Main PID: 38992 (java) Tasks: 66 (limit: 38276) Memory: 16.3G <<<<<<<<<<<<<<<<<< |
Чтобы умерить его аппетиты, создаем конфиг и указываем в нем разрешенный объем памяти, я выделил 2Гб.
Файл: /etc/elasticsearch/jvm.options.d/custom.options
1 2 3 4 |
-Xms2g -Xmx2g |
Теперь перезагружаем и видим что потребление снизилось
1 2 3 4 5 6 7 8 9 10 11 12 |
systemctl restart elasticsearch systemctl status elasticsearch ● elasticsearch.service - Elasticsearch Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-07-01 14:12:15 EEST; 8min ago Docs: https://www.elastic.co Main PID: 36990 (java) Tasks: 66 (limit: 38276) Memory: 2.3G <<<<<<<<<<<<<<<<< |
так же это можно глянуть в логе
1 2 3 4 5 |
sudo cat /var/log/elasticsearch/elasticsearch.log | grep "heap size" [2021-07-01T14:09:00,378][INFO ][o.e.e.NodeEnvironment ] [homenet100] heap size [15.6gb], compressed ordinary object pointers [true] [2021-07-01T14:12:27,479][INFO ][o.e.e.NodeEnvironment ] [homenet100] heap size [2gb], compressed ordinary object pointers [true] |
Проверяем, что все работает
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
$ curl -X GET "localhost:9200/" { "name" : "homenet100", "cluster_name" : "elasticsearch", "cluster_uuid" : "N1uD5f0yRSCsbkHGRYQCTg", "version" : { "number" : "7.13.2", "build_flavor" : "default", "build_type" : "deb", "build_hash" : "4d960a0733be83dd2543ca018aa4ddc42e956800", "build_date" : "2021-06-10T21:01:55.251515791Z", "build_snapshot" : false, "lucene_version" : "8.8.2", "minimum_wire_compatibility_version" : "6.8.0", "minimum_index_compatibility_version" : "6.0.0-beta1" }, "tagline" : "You Know, for Search" } |
Вот и все готово 🙂
Во время установки случился один прикол, а именно, версия Elastic-а в ответе от него была не 7.x, а 5.x. Я довольно долго не мог сообразить, как такое может быть пока не начал смотреть процессы и увидел, что от каких-то прошлых активностей у меня остался висеть докер, в котором был проброшен порт на машину. Это в итоге приводило к ситуации, что я стучался не в установленный эластик, а в эластик внутри докера.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
$ curl -X GET "localhost:9200/" { "name" : "Ue_iidi", "cluster_name" : "pim", "cluster_uuid" : "ltKanCrAScGQwXJnPUKW1g", "version" : { "number" : "5.6.2", "build_hash" : "57e20f3", "build_date" : "2017-09-23T13:16:45.703Z", "build_snapshot" : false, "lucene_version" : "6.6.1" }, "tagline" : "You Know, for Search" } $ systemctl status docker ● docker.service - Docker Application Container Engine Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-07-01 08:07:26 EEST; 9h ago TriggeredBy: ● docker.socket Docs: https://docs.docker.com Main PID: 2754 (dockerd) Tasks: 77 Memory: 69.3M CGroup: /system.slice/docker.service ├─2754 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock ├─3295 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9999 -container-ip 172.18.0.2 -container-port 9000 ├─3313 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9300 -container-ip 172.18.0.3 -container-port 9300 ├─3327 /usr/bin/docker-proxy -proto tcp -host-ip 0.0.0.0 -host-port 9200 -container-ip 172.18.0.3 -container-port 9200 |
В итоге, просто стопнул докер, убрал его из загрузки и перезагрузил локальный elastic.
1 2 3 4 5 |
systemctl disable docker systemctl stop docker systemctl restart elasticsearch |
Всего скорее это вам не пригодится, но пусть лучше будет здесь, может быть кого-то "заработавшегося" натолкнет на правильные мысли.
Author: | Tags: /
| Rating:
1 comment.
Write a comment