일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- nodejs
- sample
- s3
- Python
- build
- elasticsearch
- unity
- JS
- docker
- Kibana
- Linux
- Windows
- MSSQL
- Git
- ssh
- error
- MySQL
- ChatGPT
- 구글
- JavaScript
- API
- 영어
- mariadb
- logstash
- 엘라스틱서치
- 설정
- 유니티
- AWS
- Ai
- Today
- Total
가끔 보자, 하늘.
Elasticsearch 설치기 본문
CentOS에 Elasticsearch를 설치해 보았다. 정리할 생각이 없었는데, 하다보니 중간에 막히는 것들이 처리하면서 정리 한번 해둬야겠단 생각이 들었다.
일단 처음 설치할 때 주의할 점은 Elasticsearch는 root 계정으로 실행할 수 없다. (실행 가능하게 하는 옵션이 있던데, 최신 버전에서는 안되는 듯. 그리고 보안의 측면에서도 당연히 좋지 않아 추천하지 않는다.) 그러므로 전용 계정을 설정해서 설치, 실행하자.
설치 환경 및 각종 버전은 아래와 같다.
CentOS 7.5.x
Elasticsearch 6.3.0 (https://www.elastic.co/downloads/elasticsearch)
plugin, Elastic-HQ (https://github.com/ElasticHQ/elasticsearch-HQ)
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.3.0.tar.gz
tar xvzf elasticsearch-6.3.0.tar.gz
실행전에 한 가지 수정하고 진행하자.
config/elasticsearch.yml에서 http.host를 자신이 사용하고자 하는 ip로 수정한다. 예를들어 내 ip가 172.150.x.x 이며 config를 수정하지 않고 실행할 경우 로컬에서 localhost로 접속은 되지만, 다른 PC에서 172.150.x.x로 접속되지는 않는다.
처음이니 데몬 옵션 주지말고 elasticsearch로 실행해보라. -d로 실행하며 혹시 모를 에러가 보이지 않으니 주의가 필요하다. 잘 실행되었는지 일단 확인해보자.
root 권한으로 실행되지 않으니 주의!
cluster 설정을 한 후 root로 실행하면 root권한으로 실행되지 않는다는 메세지와 함께, logs 폴더 아래 몇몇 로그 파일이 생긴다. 이를 지우지 않고 다른 계정으로 실행하면 log 파일 접근 실패 에러가 뜨면서 실행되지 않는다. 해당 로그 파일들을 삭제 후 다시 시작할 것!
curl 172.150.x.x:9200 ( 혹은 config를 수정하지 않았다면 localhost:9200)
아래와 같은 간단한 health 정보가 출력되면 정상이다.
혹시 그래도 접속이 안된다면 iptables에 9200번 ACCEPT 처리를 해주자.
firewall-cmd --zone=public --permanent --add-port=9200/tcp
이제 플러그인 Elastic-HQ를 설치해보자. 이를 설치하기 위해 python 3.4 이상의 버전이 필요하다. CentOS 7.5 버전에는 기본적으로 2.x 버전이 설치되어 있다. 3.4 이상의 버전을 추가로 설치한 후 아래로 진행하자.
( http://docs.elastichq.org/installation.html 참고)
git clone https://github.com/ElasticHQ/elasticsearch-HQ.git
설치에 필요한 추가 라이브러리를 설치한다. elasticsearch-HQ 폴더로 가서 아래를 실행.
(pip가 없다면 "yum install python-pip"로 설치.)
pip install -r requirements.txt
아래와 같은 에러 발생.
python-socketio 2.0.0 has requirement python-engineio>=2.2.0, but you'll have python-engineio 2.0.2 which is incompatible.
pip3.6 install --upgrade python-engineio
python3 application.py &
HQ는 백그라운드로 실행했으므로 종료 시킬 때는 kill로...
공식 문서에 python manage.py runserver 이걸로 실행하라는 이야기 있는데 에러가 나고, 해결책은 관심없어서 안 찾아봤음. 게다가 root 로 실행해야 함. -0-a 해결 방법 아시는 분 계시면 댓글 부탁드립니다. (공손..)
이까지..
다음은 Kibana 설치와 샘플 올려서 그래프 보는 방법에 문제가 있으면 이어서 계속, 별 문제 없으면 스킵. :)
wget https://artifacts.elastic.co/downloads/kibana/kibana-6.3.0-linux-x86_64.tar.gz
config/kibana.yml에서 아래 사항을 설정한다.
server.host: "yourkibanaip"
elasticsearch.url: "http://yourip:9200"
xpack.security.enabled: false <<- 이에 대한 경고가 뜬다. 일단 테스트 과정이니 넘어감.
host 주소를 정확히 입력해두고, elasticsearch 주소 설정, 시작할 때 관리자 비번 안물어보게 설정.
이제 실행!!
bin/kibana
그럼 아래와 같은 화면을 볼 수 있다.
이제 logstash와 실제 데이터를 연동해서 결과를 만들어 볼 차례.
그 과정에 또 허들이 생기면 이젠 다른 글에 이어 정리할 예정. 바이~~~!
[아래 문서를 같이 봐야 함.]
'개발 이야기 > 인프라 구축 및 운영' 카테고리의 다른 글
logstash 인덱스 수정, 조건 설정하는 방법 (23) | 2018.07.16 |
---|---|
Kibana systemd 에 등록하기 (3) | 2018.07.11 |
EC2 - Server refused our key 에러 해결 방법 (0) | 2018.06.26 |
EC2 활용기 - 생성 및 mac/linux 에서 원격으로 접근하기 (54) | 2018.06.26 |
S3에 정적 웹 사이트 호스팅 시 IP로 whitelist 적용하기 (0) | 2018.06.20 |