[ELK] elasticsearch 및 kibana 설치 By starseat 2022-09-22 14:35:21 server/oss Post Tags 요즘 설치를 많이 한다... [nginx 설치](https://starseat.net/blog/view/94), [MySQL 설치](https://starseat.net/blog/view/95) 에 이어 `elasticsearch` 를 설치를 진행하고자 한다. 솔직히.. `Elasticsearch` 는 설치라고 해봤자 뭐 없다. 압축 해제가 끝이다. # 설치 준비 ## 파일 준비 개발장비를 구성하는 것이라 `MySQL` 을 설치하였던 장비에 설치할 것이다. OS 는 `Red Hat v7.6` 이다. 먼저 [elasticsearch 다운로드](https://www.elastic.co/kr/downloads/elasticsearch) 페이지에 접속하여 패키지를 다운로드 받는다. ![image.png](/uploads/_temp/20220922/0175b5133010a87a703f73f6f27723b8.png) 나는 받아두었던 `elasticsearch` 가 있기에 그 파일로 설치하고자 한다. (버전은 다르나 설치 방법은 동일하다.) * 받아두었던 `elasticsearch` 버전은 `v7.10.1` 이다. ## jdk 설치 `elasticsesarch` 는 `java` 를 사용하므로 `jdk` 를 설치한다. (개발장비이니 쉽게쉽게 가자...) ``` yum install -y java-11* ``` # 설치 압축 해제하면 끝이다. ``` tar -zxvf elasticsearch-7.10.1-linux-x86_64.tar.gz ``` # 실행 실행도 뭐 없다. `bin/` 에 있는 `elasticsearch` 를 실행시키면 된다. 그런데.... 그런데..... 이런 에러가 나타나 버렸다... ``` ERROR: [3] bootstrap checks failed [1]: max file descriptors [4096] for elasticsearch process is too low, increase to at least [65535] [2]: memory locking requested for elasticsearch process but memory is not locked [3]: max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144] ERROR: Elasticsearch did not exit normally - check the logs at {로그 경로} ``` # 에러 조치 `root` 계정으로 접속해서 시스템 설정을 변경해 주어야 한다. ## [1][2] 항목 ``` vi /etc/security/limits.conf // 파일 마지막 부분에 아래 내용 추가 @student - maxlogins 4 {실행 계정} soft nofile 65536 {실행 계정} hard nofile 65536 {실행 계정} hard nproc 65536 {실행 계정} soft nproc 65536 {실행 계정} soft memlock unlimited {실행 계정} hard memlock unlimited ``` ![image.png](/uploads/_temp/20220922/10d845404e1a120fa35a04792abc3c29.png) ## [3] 항목 ``` vi /etc/sysctl.conf ( 파일 마지막 부분에 아래 내용 추가 ) vm.max_map_count=262144 ``` ![image.png](/uploads/_temp/20220922/26408fa931057cefc71a781fce7007ac.png) ## 적용 * `sysctl -p` 명령어를 입력하거나 서버 재부팅 해준다. # 실행 전 config 설정 `root` 계정에서 할일은 끝났으니 이제 `{실행 계정}` 으로 접속한다. `{elasticsearch 설치 경로}/config/elasticsearch.yml` 파일을 보면 주석으로 설명이 써져 있는데 많다.. 상세한 정보는 아래 링크에서 확인하고 필요한 것만 추려보고자 한다. ## elasticsearch config - config 관련 정보 - [elastic 공식 가이드](https://www.elastic.co/guide/en/elasticsearch/reference/current/settings.html) - [elastic 가이드북](https://esbook.kimjmin.net/02-install/2.3-elasticsearch/2.3.2-elasticsearch.yml) - `elasticsearch.yml` 간단 설정 - 간단한 정보이니 필요에 따라 변경하여 사용하여야 합니다. ``` cluster.name: project-es node.name: project-es-node-1 bootstrap.memory_lock: true network.host: 0.0.0.0 http.port: 8200 transport.port: 8300 http.cors.enabled : true http.cors.allow-origin : "*" #http.cors.allow-methods : OPTIONS, HEAD, GET, POST, PUT, DELETE #http.cors.allow-headers : X-Requested-With,X-Auth-Token,Content-Type, Content-Length cluster.initial_master_nodes: ["project-es-node-1"] discovery.seed_hosts: ["127.0.0.1", "0.0.0.0"] path.repo: ["{백업 경로}/backup/data"] ``` ## jvm 변경 - default 로는 `1g` 만 사용하지만 변경하는 것을 권고한다. - `config/jvm.options` 에서 `-Xms`, `-Xmx` 부분을 변경해준다. ``` -Xms12g -Xmx12g ``` # 다시 실행 이제 설정이 끝났으니 다시 실행해 보자. `bin/elasticsearch` 를 실행시키면 로그가 막 올라오면서 정상적으로 기동 확인이 가능하다. # 정상 실행 확인 설치시 config 에 접속 포트를 `8200` 으로 설정하였다. ## curl - `curl` 명령어를 사용하여 정보를 확인해보자. ``` curl -GET "http://127.0.0.1:8200/_cluster/health?pretty" ``` ![image.png](/uploads/_temp/20220922/20838c01650a68af79c0ea0a71790fa4.png) ## 웹 브라우져 - config 에 모든 접속 허용(`0.0.0.0`)을 해 두었으니 크롬 같은 웹 브라우져로도 확인이 가능하다. - 주소창에 Host 정보를 사용하여 확인해보자. ``` http://{서버 IP 또는 도메인}:8200/_cluster/health?pretty ``` ![image.png](/uploads/_temp/20220922/5c8302bf44da2e4f7fee6d1136c12cd4.png) # kibana - `elasticsearch` 를 보다 유용하게 사용할 수 있는 툴인 `kibana`를 설치해보자. - `elasticsearch` 를 사용하는 툴이다보니 `elasticsearch`가 설치되어야 하고 접속 가능하여야 한다. ## kibana 설치 준비 `elasticsearch` 와 똑같이 [kibana 다운로드 페이지](https://www.elastic.co/kr/downloads/kibana) 에서 설치파일을 다운로드 받는다. ![image.png](/uploads/_temp/20220922/3cb1b7753022f2537d6147a1e3e6d113.png) 또.. `elasticsearch` 와 마찬가지로 `kibana` 도 받아둔 것이 있기에 그거로 설치하고자 한다. (kibana version: v7.10.1) ## 설치 얘도 똑같이 압축을 푼다. ``` tar -zxvf kibana-7.10.1-linux-x86_64.tar.gz ``` ## 설정 config 파일도 마찬가지로 주석으로 설명이 많은데 필요한것만 추려서 사용할 것이다. - `config/kibana.yml` ``` #i18n.locale: "ko" server.host: "0.0.0.0" server.port: 8600 elasticsearch.hosts: ["http://localhost:8200"] ``` ## 실행 - `bin/kibana` 를 실행한다. ![image.png](/uploads/_temp/20220922/332f76ffc4a54ddc48e6ad3b8e2d3e21.png) ## 확인 kibana 가 기동되었으면 웹 브라우져를 통하여 접속한다. config 에서 `8600` 포트로 설정하였으니 이를 맞춰서 접속한다. ![image.png](/uploads/_temp/20220922/c1ff7af24d8a452c332a921aeda38a5c.png) Previous Post [nginx] 직접 설치 Next Post [nginx] yum 설치