토요일, 4월 20
Shadow

Elastic Cloud Subscription 및 사용방법

CLOUD, SEARCH ENGINE
엘라스틱 클라우드 Elasic Cloud Service(SaaS) 는 Elastic 사에서 제공하는 호스팅 서비스 Elasticsearch, kibana, Enterprise Search, Observability를 자동으로 구성 Elastics 라이센스에서 제공하는 Enterprise 급의 서비스도 이용 가능 엘라스틱 정식 기술 지원으로 한국어 지원이 가능 Google, AWS, MS Azure 등 여러 클라우드를 유연하게 선택하여 실행 가능 하이브리드 클라우드 private 클라우드, 온프레미스 배포 중 선택 가능 14일 무료체험판을 제공 주요 기능 데이터 티어를 원하는 region 에 맞게 설치 가능 여러개의 클러스터 간의 검색 가능 클러스터 간의 복제 가능 오토스케일링 제공 APM 모니터링 제공 스냅샷 등 백업, 복원 기능 제공 서비스 중간에 시스템 사양 변경 등 가능 몇분 만에 클라우드 배포 및 확장 가능 검색엔지니어가 없을시 검색엔진에 대한 관리 리소스 비용 효율화 가능 OS강화 패치 및 네트워크 보안 제어, 전송 데이터 암호화 등 데이터를 안전하게 보호 검색엔진의 시스템 환경, 검색 수 등을 실시간으로 확인 검색엔진에 데이터 추가 후 검색 데이터 뿐만 아니라 리포팅 툴을 만들어 지표 확인 가능 OpenSearch 와 다른점 AWS의 openSearch는 Elastic OSS 라이센스를 배포하여 자체 서비스 Elastic과는 기술적 협약이 없어 검색엔진 문제시 지...

Elasticsearch Snapshot만들기

SEARCH ENGINE
클러스터와 인덱스가 커질수록 누적된 데이터를 유지해야할 필요성이 커집니다. 실제로 복원 할 수 없는 데이터가 존재 한다면 당신은 어떻게 하시겠습니까? ELasticsearch에서는 버전별로 데이터를 저장하여 이전상태를 유지 할 수 있는 Snapshot이라는 기능을 제공합니다. 이 모듈은 인덱스의 스탭샷 또는 클러스터 전체의 스냅샷을 만들 수 있습니다. 또한 리포트로 데이터의 저장을 지원 합니다. 어떻게 만들고 실행하는지 알아보도록 하겠습니다. 먼저 스냅샷을 저장할 경로에 폴더를 만듭니다. #mkdir /home/javacafe/elastic/backup elasticsearch의 config의 elasticsearch.yml 파일을 열어 아래와 같은 내용을 마지막줄에 추가 합니다. path.repo: ["/home/javacafe/elastic/backup"] 서버의 설정은 실시간으로 반영 되지 않기 때문에 반영을 위해 elasticsearch를 재기동 합니다. 재기동이 되었다면 첫번째 해야 할 일은 elasticsearch에 백업 저장소를 만드는 일입니다. 백업 저장소는 request body에 데이터를 실어서 보냅니다. #curl -XPUT 'http://localhost:9200/_snapshot/my_backup' -d { "type": "fs", "settings": { "location": "/home/javacafe/elastic/backup", "compress": true } }' 해당 내용을 응...

Cent OS 시간 동기화 하기

SERVER
Cent OS의 시간이 제각각으로 안맞는 경우가 많아 bora.net에서 시간을 동기화 하는 방법을 사용한다. 변경 방법은 아래와 같다. crontab을 열어 SHELL과 매시 5분에 시간을 맞추는 작업을 등록한다. vi /etc/crontab SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root HOME=/ 0 5 * * * root /usr/bin/rdate -s time.bora.net && /sbin/hwclock -w rc.local을 실행하여, 시스템에 등록한다. 이 경우는 시스템이 재 부팅되어도 자동 동기화 하게끔 하기 위한 방법이다. vi /etc/rc.d/rc.local /usr/bin/rdate -s time.bora.net /sbin/hwclock -w 만약 rdate가 설치되지 않았다면 yum install rdate를 하여 설치를 먼저 한다. 끝~!

#024 Elasticsearch 설치 후 production mode로 실행시 bootstrap checks failed 에러 해결

SEARCH ENGINE
어제 Elasticsearch 5.0이 릴리즈 되고 엘라스틱서치의 변경 된 부분을 테스트 하기 위해 엘라스틱서치를 받아 설치 해 보기로 했다. 당연 centOS에서 실행 했으며, develop mode에서는 잘 동작하는 것을 확인하였다. 당연 로컬에서는.. 원격에 있는 PC 에 설치를 하여 URL을 불러 사용 하기 때문에 elasticsearch.yml 파일의 network.host 설정에 _global_로 변경 하고 실행 하는 순간...   ERROR: bootstrap checks failed max file descriptors [4096] for elasticsearch process likely too low, increase to at least [65536] max number of threads [1024] for user [space_home] likely too low, increase to at least [2048]   위와 같은 에러가 발생하는 것을 확인 하였다.. 이리 찾아보고 저리 찾아봐도 각기 다른 설정을 해 보라고 했지만... 안되었다.. 짬빱을 굴려.. 에러메시지를 잘 읽어 보니.. file open 갯수를 늘리라는 소리였다. 왜 open갯수를 전체로 늘리는 지는 잘 모르겠지만.. 원인은 알았으니.. 해결을 해야 했다. #ulimit -a 명령어로 확인을 해보니 open files의 갯수가 1024 개 밖에 되지 않았다. core file size (blocks, -c) 0 data seg size (kbytes, -d) ...

#001 랜섬웨어(Ransomware) 확장자 .ccc 파일 복구 성공~~

Ransomware
약 한달전 지인이 바이러스를 먹었다고 해서 .. 그냥 가져와~~ 윈도우 밀어줄께.. 라고 말했는데.. 화면은 본 순간.. 깜짝 놀랬다~~~ 랜섬웨어에 걸려서.. 모든 이미지 텍스트 파일들이 암호화가 되어 버렸다.. 젠장.. 몇일을 인터넷을 뒤지고 다녔지만 방법을 찾지 못헀는데.. 그 방법이 인터넷에 돌아 다녀.. 방법대로 랜섬웨어 복구를 해보니.. 잘 되었다. 복구 하는 방법은 아래와 같다. 1. 아래 프로그램을 받는다. ransomware-decrypt.zip 2. 압축을 해제 한다. 압축을 해제하면 TeslaDecoder와 yafu폴더가 있다. 3. TeslaDecoder 폴더를 들어가면 teslaviewer를 실행 시키고 Browse를 클릭하여 랜섬웨어에 걸린 파일을 입력한다. 그럼 아래와 같이 여러가지의 정보가 나온다. 4.아래 Create work.txt 버튼을 클릭하여 텍스트 파일을 하나 만든다. 5. TeslaDecoder 파일에 work.txt파일이 생성된다. 여기서 privateKeyBC의 dec부분을 복사한다. 6. 압축을 해제한 폴더중 yafu폴더가 있다. 이폴더의 RunYafu.exe파일이 존재 한다. 이 파일을 연다. 7. factorying Threads를 3으로 맞춘다. 8. Tune Yafu Button before factoring의 TuneYafu버튼을 클릭한다. 9. 이런창이 생성되면서 5분 이상 자기가 알아서 무언가를 실행한다. 자동으로 창이 닫혀지면 완료가 된것이다. ...

#023 Solr Cloud 주무르기

SEARCH ENGINE
이번 장 부터는 솔라 클라우드에 대해서 알아 보려 한다. 주요섹션은 아래와 같다. 1. security - SSL, Logging 2. Scalability - Clustering and Sharding 3. performance - Clustering and Sharding 4. API - HTTP 5. Availability - Replication 6. No loss of data - Replication 이상 끝!!

Solr 메모리 늘리기

SERVER
솔라의 사용 메모리를 늘리려면 solr.in.sh파일을 수정하면 된다. vi /etc/default/solr.in.sh 아래를 내리다 보면 SOLR_HEAP의 값을 원하는 값으로 늘려주면 된다. SOLR_HEAP="2048m" 그리고 자바의 힙 메모리를 늘려 주려면 SOLR_JAVA_MEM의 옵션을 사용하면 된다. SOLR_JAVA_MEM="-Xms2048m -Xmx2048m" 끝~!

솔라 5.4.1 설치(자동화 설치)

SERVER, 미분류
예전에 솔라는 war파일을 톰켓에 붙여서 사용했지만 이제는 솔라자체에서 제공하는 웹서버를 통해서 구동이 가능하다. 구동하는 방법은 아래와 같다. 1. 솔라 5.4.1버전 파일 받기 wget http://archive.apache.org/dist/lucene/solr/5.4.1/solr-5.4.1.tgz 2. 압축을 풀기 전 solr압축파일의 권한을 모든권한으로 준다. 그리고 압축 풀기(압축은 자신의 홈에서 푼다. chmod 777 solr-5.4.1.tgz tar -xvf solr-5.4.1.tgz 3. 이제 설치할 준비가 다 되었다. 설치하기 cd ~/solr5.4.1/bin mkdir /home/solr/solrNode mkdir /home/solr/solrNode/data sudo bash ./install_solr_service.sh ~/solr-5.4.1.tgz -i /home/solr/solrNode -d /home/solr/solrNode/data -u solr -s solr -p 9200 굳이 설명을 하자면 솔라 실행 파일은 -i옵션으로 /home/solr/solrNode에 설치 솔라 파일 로그 인덱스 파일등은 -d 옵션으로 /home/solr/solrNode/data에 설치 솔라 관련 파일 권한은 solr -u으로 조정 솔라 서비스 이름은 solr로 -s옵션으로 지정 솔라 포트는 9200번으로 -p옵션으로 지정 이렇게 설치하면 id: solr: No such user Creating new user: solr Extractin...

#013 예외(Exceptions)

JAVA
이 장에서는 효과적으로 예외를 사용하는 지침을 제공한다. 예외 상황에서만 예외를 사용하자 / 예외의 터무니 없는 사용. 절대 이렇게 하지 말자! try { int i = 0; while(true) range[i++].climb(); } catch(ArrayIndexOutOfBoundsException e) { } 위의 코드는 예외를 이용하여 while 루프문을 종료시키고 있다. 배열의 범위를 벗어나는 최초의 배열 요소를 사용하려는 순간, ArrayIndexOutOfBoundsException 예외가 발생하고(throw), 검출되고(catch), 무시되면서 이 무한 루프는 종료된다. 이런 식의 코드는 본래의 목적을 혼란스럽게 하고 성능을 저하시키며, 코드가 제대로 동작하는 것을 보장하지 못한다. 코드의 취지와 무관한 버그가 생겨 우리도 모르는 사이에 루프 실행이 실패하고 버그를 감추게 되어 디버깅이 무척 복잡해진다. 예외는 예외적인 상황에서 사용하기 위해 설계된 것이니, 정상적인 흐름 제어에 예외를 사용하지 말자. 복구 가능 상황에는 checked 예외를 사용하고 런타임 예외는 프로그램 에러에 사용하자 자바에서는 던질 수 있는(throwable) 세 종류의 예외를 제공한다. 1. checked 예외 명시적으로 try-catch-finally 예외 처리를 해야하는 것 2. runtime 예외 JVM이 정상적으로 작동하는 동안에 발생하는 예외 3. error 프로그램이 catch 해서는 안되는 심각한 문...