ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Elasticsearch 설치하기 (RPM)
    Log 2021. 9. 29. 21:42
    반응형

    개요

    다음 운영 환경에서 Elasticsearch를 설치한다.

    • OS: CentOS 8(Virtualbox)

    Java 설치

    먼저 Java 11을 설치한다. 최신 Elasticsearch의 경우, 별도 Java 설치 없이도 운영할 수 있긴 하지만, 보다 안정적인 운영을 위해서 설치해둔다. 다음 명령어로 설치할 수 있다.

    $ sudo yum install java-11-openjdk-devel.x86_64 -y

     

    이후 터미널에 java --version 명령어 입력시 다음 문구가 출력된다면 정상적으로 설치된 것이다.

    $ java --version
    openjdk 11.0.12 2021-07-20 LTS
    OpenJDK Runtime Environment 18.9 (build 11.0.12+7-LTS)
    OpenJDK 64-Bit Server VM 18.9 (build 11.0.12+7-LTS, mixed mode, sharing)

    Elasticsearch 설치

    이제 RPM 기반으로 Elasticsearch를 설치한다. 먼저 터미널에 다음을 입력하여 GPG-KEY를 임포트한다.

    $ sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

     

    그 후, /etc/yum.repos.d 경로에 elasticsarch.repo 파일을 다음 명령어로 생성한다.

    $ sudo tee /etc/yum.repos.d/elasticsarch.repo << EOF
    [elasticsearch]
    name=Elasticsearch repository for 7.x packages
    baseurl=https://artifacts.elastic.co/packages/7.x/yum
    gpgcheck=1
    gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
    enabled=0
    autorefresh=1
    type=rpm-md
    EOF

     

    그 다음 yum install 명령어로 Elasticsearch를 설치한다.

    $ sudo yum install --enablerepo=elasticsearch elasticsearch -y

     

    이렇게 하면 Elasticsearch 7.15가 설치 된다.

    Elasticsearch 실행 및 TIP

    이제 서비스 데몬으로써 실행시킬 수 있다. 다음 명령어를 입력한다.

    $ sudo systemctl start elasticsearch
    
    $ sudo systemctl enable elasticsearch
    Synchronizing state of elasticsearch.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
    Executing: /usr/lib/systemd/systemd-sysv-install enable elasticsearch
    Created symlink /etc/systemd/system/multi-user.target.wants/elasticsearch.service → /usr/lib/systemd/system/elasticsearch.service.

     

    그 후 서비스 데몬의 실행이 정상적으로 되었는지는 systemctl statuscurl로 확인할 수 있다.

    $ sudo systemctl status elasticsearch
    ● elasticsearch.service - Elasticsearch
       Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
       Active: active (running) since Wed 2021-09-29 12:33:54 UTC; 31s ago
         Docs: https://www.elastic.co
     Main PID: 37602 (java)
        Tasks: 67 (limit: 2746)
       Memory: 312.3M
       CGroup: /system.slice/elasticsearch.service
               ├─37602 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=true -Dfile.encod>
               └─37767 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
    
    Sep 29 12:33:18 es-master systemd[1]: Starting Elasticsearch...
    Sep 29 12:33:54 es-master systemd[1]: Started Elasticsearch.
    
    $ curl localhost:9200
    {
      "name" : "es-master",
      "cluster_name" : "elasticsearch",
      "cluster_uuid" : "TOevKIVwShq7f8y192NuxQ",
      "version" : {
        "number" : "7.15.0",
        "build_flavor" : "default",
        "build_type" : "rpm",
        "build_hash" : "79d65f6e357953a5b3cbcc5e2c7c21073d89aa29",
        "build_date" : "2021-09-16T03:05:29.143308416Z",
        "build_snapshot" : false,
        "lucene_version" : "8.9.0",
        "minimum_wire_compatibility_version" : "6.8.0",
        "minimum_index_compatibility_version" : "6.0.0-beta1"
      },
      "tagline" : "You Know, for Search"
    }

     

    설치된 Elasticsearch에서 뭔가 커스텀을 하고 싶다면, /etc/elasticsearch/ 안의 파일들을 확인하는 것이 좋다.

    $ sudo ls -l /etc/elasticsearch/
    total 40
    -rw-rw----. 1 root elasticsearch   199 Sep 29 12:32 elasticsearch.keystore
    -rw-rw----. 1 root elasticsearch  2755 Sep 16 03:12 elasticsearch.yml
    -rw-rw----. 1 root elasticsearch  3176 Sep 16 03:12 jvm.options
    drwxr-s---. 2 root elasticsearch     6 Sep 16 03:16 jvm.options.d
    -rw-rw----. 1 root elasticsearch 19093 Sep 16 03:12 log4j2.properties
    -rw-rw----. 1 root elasticsearch   473 Sep 16 03:12 role_mapping.yml
    -rw-rw----. 1 root elasticsearch   197 Sep 16 03:12 roles.yml
    -rw-rw----. 1 root elasticsearch     0 Sep 16 03:12 users
    -rw-rw----. 1 root elasticsearch     0 Sep 16 03:12 users_roles

    elasticsearch.yml은 설정 파일이다. 여기서 어지간한 설정은 다 한다고 보면 된다. jvm.optionsElasticsearch 실행 시, JVM 옵션을 전달하여, 시스템에 맞게 최적화하여 운영할 수 있다.

     

    마지막으로 로그는 다음과 같이 확인할 수 있다.

    $ sudo journalctl -fu elasticsearch
    -- Logs begin at Wed 2021-09-29 12:00:33 UTC. --
    Sep 29 12:33:18 es-master systemd[1]: Starting Elasticsearch...
    Sep 29 12:33:54 es-master systemd[1]: Started Elasticsearch.

     

    journalctl은 서비스 데몬이 출력하는 로그를 확인할 수 있는 명령어이다. 더 자세한 로그는 /var/log/elasticsearch/ 밑에 있는 파일들을 확인하는 것이 좋다.

    $ sudo ls -l /var/log/elasticsearch/
    total 592
    -rw-r--r--. 1 elasticsearch elasticsearch  20521 Sep 29 12:34 elasticsearch.log
    -rw-r--r--. 1 elasticsearch elasticsearch      0 Sep 29 12:33 elasticsearch_audit.json
    -rw-r--r--. 1 elasticsearch elasticsearch    774 Sep 29 12:34 elasticsearch_deprecation.json
    -rw-r--r--. 1 elasticsearch elasticsearch    512 Sep 29 12:34 elasticsearch_deprecation.log
    -rw-r--r--. 1 elasticsearch elasticsearch      0 Sep 29 12:33 elasticsearch_index_indexing_slowlog.json
    -rw-r--r--. 1 elasticsearch elasticsearch      0 Sep 29 12:33 elasticsearch_index_indexing_slowlog.log
    -rw-r--r--. 1 elasticsearch elasticsearch      0 Sep 29 12:33 elasticsearch_index_search_slowlog.json
    -rw-r--r--. 1 elasticsearch elasticsearch      0 Sep 29 12:33 elasticsearch_index_search_slowlog.log
    -rw-r--r--. 1 elasticsearch elasticsearch  41546 Sep 29 12:34 elasticsearch_server.json
    -rw-r--r--. 1 elasticsearch elasticsearch 278604 Sep 29 12:39 gc.log
    -rw-r--r--. 1 elasticsearch elasticsearch   2021 Sep 29 12:33 gc.log.00

    참고

    'Log' 카테고리의 다른 글

    Elasticsearch 클러스터 구성하기  (0) 2021.10.01
    Elasticsearch 설치하기 (Binary)  (0) 2021.09.21
Designed by Tistory.