20.04 버전의 Ubuntu에는 Elasticsearch 7.17.8을 설치한다.
다운로드 버전으로 설치한다. (not apt-get)
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/deb.html
설정파일 수정
vi ~/elasticsearch-7.17.8/config/elasticsearch.yml
network.host: _site_
network.bind_host: [_site_, _local_]
cluster.initial_master_nodes: ["node-1"]
cluster.name: es_production
network.host: _site_ 로 실행하면, production 모드가 되어 메모리, 쓰레드등 각종 에러를 만나게 된다.
우분투에서는 아래 메시지로 에러가 나면서 실행이 안된다.
bootstrap check failure [1] of [1]: max number of threads [3606] for user [ubuntu] is too low, increase to at least [4096]
해결방법
sudo vi /etc/security/limits.conf
를 실행하여 아래 행을 추가한다.
ubuntu - nproc 4096
커널도 수정해준다.
sudo sysctl -w kernel.threads-max=4096
그리고 가장 중요한거..
exit 명령어로 ssh 터미널을 나갔다가 들어온다.
엘라스틱을 다시 실행해 본다.
~/elasticsearch-7.17.8/bin/elasticsearch
메시지 잘보고, 실행이 완료되면 다른 터미널 창을 열어 접속하여 확인해 본다.
curl -X GET 'http://localhost:9200'
아래와 같이 메시지가 나오면 잘 된 것임
{
"name" : "hipsearch02",
"cluster_name" : "es_production",
"cluster_uuid" : "U0ZRqlF5SWOYZ09twrkYBQ",
"version" : {
"number" : "7.17.8",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "120eabe1c8a0cb2ae87cffc109a5b65d213e9df1",
"build_date" : "2022-12-02T17:33:09.727072865Z",
"build_snapshot" : false,
"lucene_version" : "8.11.1",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
시스템 리부팅시 자동 실행
$ sudo vi /etc/systemd/system/elasticsearch.service
아래 내용을 넣는다.
===========================
[Unit]
Description=Elasticsearch
[Service]
Type=simple
User=ubuntu
ExecStart=/home/ubuntu/elasticsearch-7.17.8/bin/elasticsearch -d
Restart=always
[Install]
WantedBy=multi-user.target
===========================
$ sudo systemctl daemon-reload
$ sudo systemctl start elasticsearch
$ sudo systemctl enable elasticsearch
$ sudo systemctl status elasticsearch
노리 플러그인 설치
./bin/elasticsearch-plugin install analysis-nori
추가 : 오류 발생시
아래와 같은 오류 발생시
bootstrap check failure [1] of [1]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
sudo vi /etc/sysctl.conf
아래 라인 추가
vm.max_map_count=262144
리부팅 하거나 또는 리부팅 없이 하려면 아래와 같이 명령어 실행
sudo sysctl -w vm.max_map_count=262144
오류는 아니지만, 자꾸 로그에 이상한 라인이 뜨면
[2023-03-08T08:55:42,402][ERROR][o.e.i.g.GeoIpDownloader ] [hipsearch02] exception during geoip databases update
org.elasticsearch.ElasticsearchException: not all primary shards of [.geoip_databases] index are active
at org.elasticsearch.ingest.geoip.GeoIpDownloader.updateDatabases(GeoIpDownloader.java:137) ~[ingest-geoip-7.17.8.jar:7.17.8]
at org.elasticsearch.ingest.geoip.GeoIpDownloader.runDownloader(GeoIpDownloader.java:284) [ingest-geoip-7.17.8.jar:7.17.8]
at org.elasticsearch.ingest.geoip.GeoIpDownloaderTaskExecutor.nodeOperation(GeoIpDownloaderTaskExecutor.java:100) [ingest-geoip-7.17.8.jar:7.17.8]
at org.elasticsearch.ingest.geoip.GeoIpDownloaderTaskExecutor.nodeOperation(GeoIpDownloaderTaskExecutor.java:46) [ingest-geoip-7.17.8.jar:7.17.8]
at org.elasticsearch.persistent.NodePersistentTasksExecutor$1.doRun(NodePersistentTasksExecutor.java:42) [elasticsearch-7.17.8.jar:7.17.8]
at org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:777) [elasticsearch-7.17.8.jar:7.17.8]
at org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26) [elasticsearch-7.17.8.jar:7.17.8]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144) [?:?]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642) [?:?]
at java.lang.Thread.run(Thread.java:1589) [?:?]
./config/elasticsearch.yml 에 아래 라인추가
ingest.geoip.downloader.enabled=false
'IT일반 > 엘라스틱서치' 카테고리의 다른 글
엘라스틱서치(Elastic Search) 데이터 구조의 이해 (0) | 2019.07.22 |
---|---|
엘라스틱서치 플러그인 Head 설치 Elasticsearch-head (0) | 2019.07.19 |
Elastic Search (엘라스틱 서치) 강의 강좌 - 설치 및 테스트 데이터 입력 및 검색 (0) | 2019.07.19 |
댓글