간단히 발표용으로 정리해서 slideshare에 업로드 해둠

 - 링크 : https://www.slideshare.net/seunghaeom/elk-apmwith-66


데모를 통한 시연에 시간을 많이 썻고, 어느정도 배경지식이 있다는 전제하이기 때문에 기초적인 부분은 모두 생략

'ElasticSearch > ELK' 카테고리의 다른 글

ELK APM(with 6.6 살펴보기) - #2  (0) 2019.02.18
ELK APM(with 6.6 살펴보기) - #1  (0) 2019.02.18
ELK 2.3.1 퀵 설치  (0) 2016.08.07
  • 개인 메모 목적의 글입니다.
  • ELK 2.x 부터 5.0까지 사용하다가 오랜만에 최신 버전을 설치(+ APM기능 확인 목적)해보는 중입니다.


  1. 목적
    1. ELK APM을 설치 후 데모를 실행(ELK는 19년 2월 기준으로 최신 버전인 6.6버전)
    2. 몇 가지 언어로 프로그램을 만든 후 부하를 발생시키고 결과를 확인하는 과정에서 학습
      1. 기존 APM인 Pinpoint 등을 대체하거나 미 사용했던 언어 APM의 효용성 확인

  2. 사전 조사 자료
    1. 공식 문서
      1. 19년 2월 12일 기준 버전 6.6
        1. Elasticsearch와 필요 JVM : Oracle/OpenJDK**11 필요(링크)
    2. 지원언어(또는 프레임웤)
      1. Java
      2. Node.js
      3. Django
      4. Flask
      5. Rails
      6. Rack
      7. RUM - JS
      8. Go

  3. APM 구성 Components(참고 링크)
    1. Elasticsearch : full-text search & 분석엔진. 데이터 저장소, 검색이 수행됨. APM Agents에서 전송된 데이터가 최종적으로 저장됨
    2. Kibana : 시각화 컴포넌트, Elasticsearch에 질의를 요청하고 화면에 시각화 처리 함
    3. APM agents : 서비스와 동일한 언어로 개발된 client side의 프로그램. 서비스의 성능 관련 데이터와 에러 데이터를 런타임에 APM서버로 전송
    4. APM Server : Go로 작성된서버이며 APM agents로부터 데이터를 JSON HTTP API로 전송 받아서 documents(Elasticserarch의 데이터 row단위)를 만들어서 Elasticsearch에 저장함

  4. 설치방법
    1. Elasticsearch
      1. 6.6버전은 open jdk 11설치(참고 링크)
      2. elasticserarch 6.6설치 링크 
    2. Kibana
      1. config/kibana.yml 파일에서 server.host: "0.0.0.0" 로 변경하면 모든 IP에서 웹 접근이 허용 됨




 오늘은 일단 APM Componets 중 Elasticsearch와 kibana 까지 설치 후 로컬PC에서 샘플이 작동 함 - Virtualbox 포트포워딩 처리 함. OS는 CentOS



'ElasticSearch > ELK' 카테고리의 다른 글

ELK APM(with 6.6 살펴보기) - slideshare버전 링크  (0) 2019.02.18
ELK APM(with 6.6 살펴보기) - #2  (0) 2019.02.18
ELK 2.3.1 퀵 설치  (0) 2016.08.07
정리가 더 필요하지만 메모 목적으로 우선 블로그에 저장


elasticsearch 설치

#유저홈 밑의 apps 디렉토리에 설치하며 1개 물리서버에 인스턴스를 2개띄움
cd ~/apps

wget 'https://download.elastic.co/elasticsearch/release/org/elasticsearch/distribution/tar/elasticsearch/2.3.1/elasticsearch-2.3.1.tar.gz'
tar -xzf elasticsearch-2.3.1.tar.gz
rm elasticsearch-2.3.1.tar.gz

#2개 인스턴스를 띄울예정
mv elasticsearch-2.3.1 elasticsearch-2.3.1-node-01
ln -s elasticsearch-2.3.1-node-01 elasticsearch-01

#설정 수정
vi ~/apps/elasticsearch-01/config/elasticsearch.yml

#아래 Elasticsearch Plugin 설치완료 후에 복사해서 node-02생성
cp -R ~/apps/elasticsearch-2.3.1-node-01 ~/apps/elasticsearch-2.3.1-node-02
ln -s elasticsearch-2.3.1-node-02 elasticsearch-02
vi ~/apps/elasticsearch-02/config/elasticsearch.yml


Elasticsearch  Plguin 설치

cd ~/apps/elasticsearch-01/bin

-- HQ(head 플러그인보다 비쥬얼적으로 좋음)
./plugin install royrusso/elasticsearch-HQ
접속URL : http://elasticsearch도메인/_plugin/HQ/

-- SQL로 조회하는 Plugin (https://github.com/NLPchina/elasticsearch-sql)
접속URL : http://elasticsearch도메인/_plugin/sql/  

-- 은전한닢 es plugin(한글 형태소 분석기)
./plugin install org.bitbucket.eunjeon/elasticsearch-analysis-seunjeon/2.3.1.0

한글 형태소분석기 은전한닢 설치(은전한닢 설치 : http://guruble.com/?p=416)

[사전작업]
vi ~/.bashrc 후 아래내용 추가(미 추가시 mecab엔진을 제대로 설치 못하거나 logstash로 집계할 때 elastic search가 죽음)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/

1. mecab-ko 형태소 분석기 엔진 설치

cd {다운로드할 경로}
wget https://bitbucket.org/eunjeon/mecab-ko/downloads/mecab-0.996-ko-0.9.2.tar.gz -O mecab-0.996-ko-0.9.2.tar.gz
tar -xvzf mecab-0.996-ko-0.9.2.tar.gz
cd mecab-0.996-ko-0.9.2
./configure
make
make check
sudo make install

아래 명령어로 정상 설치여부 확인
mecab --version


2. mecab-ko-dic 사전(dictionary)파일 설치

cd {다운로드할 경로}
wget https://bitbucket.org/eunjeon/mecab-ko-dic/downloads/mecab-ko-dic-2.0.1-20150920.tar.gz -O mecab-ko-dic-2.0.1-20150920.tar.gz
tar -xvzf ./mecab-ko-dic-2.0.1-20150920.tar.gz
cd mecab-ko-dic-2.0.1-20150920
./autogen.sh
./configure
make
sudo make install

아래 명령어로 정상 설치여부 확인
mecab -d /usr/local/lib/mecab/dic/mecab-ko-dic
# 나는 당신을 사랑합니다.


3. libMeCab.so, MeCab.jar 라이브러리 설치

wget https://mecab.googlecode.com/files/mecab-java-0.996.tar.gz -O mecab-java-0.996.tar.gz
tar -xvzf mecab-java-0.996.tar.gz
cd mecab-java-0.996
Makefile을 열어서
vi Makefile

# Java Home 설정
# 참고. Mac OSX 에서 JAVA HOME 은 /usr/libexec/java_home 명령어로 확인할 수 있습니다.
INCLUDE={your java home path}/include

#  optimize level 을 -O1 로 변경
$(CXX) -O1 -c -fpic $(TARGET)_wrap.cxx $(INC)

# javac 와 test.java 사이에 -cp . 추가
$(JAVAC) -cp . test.java
컴파일 후 복사, 권한 변경

make
sudo cp libMeCab.so /usr/local/lib
sudo cp MeCab.jar /usr/local/lib
sudo chown -R {your user}:{your group} /usr/local/lib/libMeCab.so
sudo chown -R {your user}:{your group} /usr/local/lib/MeCab.jar
sudo chown -R {your user}:{your group} /usr/local/lib/*mecab*

vi ~/.bashrc 후 아래내용 추가(미 추가시 logstash로 집계할 때 elastic search가 죽음)
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib/




4. mecab-ko Elasticsearch plugin 설치

cd {Elastic 디렉토링}
./bin/plugin install https://bitbucket.org/eunjeon/mecab-ko-lucene-analyzer/downloads/elasticsearch-analysis-mecab-ko-2.2.0.0.zip




logstash 설치
all plugin 포함 버전오로 설치

wget 'https://download.elastic.co/logstash/logstash/logstash-all-plugins-2.3.1.tar.gz' -O ~/apps/logstash-all-plugins-2.3.1.tar.gz

tar -xzf ~/apps/logstash-all-plugins-2.3.1.tar.gz
rm ~/apps/logstash-all-plugins-2.3.1.tar.gz
ln -s ~/apps/logstash-2.3.1 logstash

#logstash mysql-jdbc plugin 설치(jdbc는 인터넷에서 다운로드 가능
mkdir -p ~/apps/logstash/lib/jdbc
다운파일 복사

실행
~/apps/kibana/bin/kibana >> /dev/null &


kibana 설치(필요시)
wget 'https://download.elastic.co/kibana/kibana/kibana-4.5.0-linux-x64.tar.gz' -O ~/apps/kibana-4.5.0-linux-x64.tar.gz
tar -xzf ~/apps/kibana-4.5.0-linux-x64.tar.gz
rm ~/apps/kibana-4.5.0-linux-x64.tar.gz
ln -s ~/apps/kibana-4.5.0-linux-x64 kibana

설정값 수정
vi ~/apps/kibana/config/kibana.yml



방화벽오픈(root권한 필요)

sudo vi /etc/sysconfig/iptables 후 내용 추가하고 sudo service iptables restart

#elastic
-A INPUT -m state --state NEW -m tcp -p tcp -s IP주소 --dport 29200:29201 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -s IP주소 --dport 9300:9301 -j ACCEPT

#logstash listen topbeat
-A INPUT -m state --state NEW -m tcp -p tcp -s IP주소 --dport 5044:5045 -j ACCEPT

#logstash listen packetbeat
-A INPUT -m state --state NEW -m tcp -p tcp -s IP주소 --dport 6044:6045 -j ACCEPT

#kibana
-A INPUT -m state --state NEW -m tcp -p tcp -s IP주소 --dport 5601 -j ACCEPT




+ Recent posts