Web Programming/Backend

    [ElasticSearch] Logstash No configuration found in the configured sources. [에러해결]

    [ElasticSearch] Logstash No configuration found in the configured sources. [에러해결]

    1. 개요 ElasticSearch에 Logstash의 배치 스케쥴러를 사용하려고 했는데 configuration을 못찾는다는 오류가 발생했습니다. config폴더에 pipelines.yml과 logstash.conf 파일은 바꾼적이 없는데 말이죠. 2. 에러해결 구글링을 해본 결과... conf 파일의 권한이 없거나, 존재하지 않거나, 이름을 틀렸거나 등등 인데 혹시나 관리자 권한으로 실행을 해보았는데도 에러는 해결되지 않았습니다. 조금 더 구글링을 해보니, logstash.bat을 실행할때 -f 뒤의 parameter로 .conf를 지정해주었던 것이 기억이 났습니다! logstash.bat -f config/logstash.conf 위 명령어로 실행시키면 잘 동작합니다.

    [Git] 변경된 내용 삭제(git reset)

    1. 개요 서버에서 서비스 중인 프로그램에 대해 업데이트를 진행할 때, 우연찮게 서버 내부에서 수정사항이 발생하고, 이 수정사항에 대해 git에 반영하지 않고 변경된 내용을 삭제하고 단순하게 pull만 받고 싶을 때가 있습니다. 2. 코드 git reset git checkout . git clean -fdx 1번째 줄 : 모든 staged된 파일이 unstage됩니다(실수로 커밋했을 경우, 로컬에서 unstage) 2번째 줄 : 모든 변경 사항을 취소합니다. 3번째 줄 : 추적할 수 없는 모든 파일 제거(추적된 파일만 남습니다) 이후에 git pull로 변경된 내용을 받고 서비스를 진행하면 됩니다. 참고 https://extbrain.tistory.com/83 [git] 커밋되지 않았거나 저장되지 않은..

    [ElasticSearch] logstash + mysql window 환경 연동

    [ElasticSearch] logstash + mysql window 환경 연동

    1. 개요 ElasticSearch에 RDB로 이용하고 있는 mysql 데이터를 적재하고 싶어서 찾아보다가, elk의 스택인 logstash를 이용해서 batch job 형태로 주기적으로 적재할 수 있는 방법을 찾게 되었습니다. 일단은 테스트 용도이기 때문에, 윈도우 환경에서 작업을 했고, 리눅스 환경에서의 예제는 많지만 윈도우 환경에서의 예제는 없는 것 같아 정리해보려고 합니다.(elk가 생각보다 상당히 리소스를 많이 차지합니다) 2. 준비물 1) ElasticSearch https://www.elastic.co/kr/downloads/elasticsearch Download Elasticsearch Download Elasticsearch or the complete Elastic Stack (for..

    [ElasticSearch] Insert(생성), Search(조회) 기본적인 CRUD

    [ElasticSearch] Insert(생성), Search(조회) 기본적인 CRUD

    1. 개요 RDB를 하다가 ElasticSearch를 찾아보는데, 개념 자체가 RDB랑은 많이 달라서 최대한 알기 쉽게끔 필요한 기능만 정리를 해보려고 이 글을 작성해봅니다. 클러스터, 샤드랑 노드, 인덱스, 다큐먼트 등 개념적인 부분은 이 글에서는 다루지 않겠고, 아래 가이드북 링크를 참고해주시길 바랍니다. https://esbook.kimjmin.net/03-cluster/3.2-index-and-shards ElasticSearch 버전은 7.0버전 이상의 버전으로 진행합니다. 7.0버전부터 type이 사라졌기 때문입니다. 2. 클러스터 관련 Rest API 1) 클러스터 상태 조회 # curl -XGET http://localhost:9200/_cluster/health?pretty=true * ..

    [Elasticsearch] The bulk request must be terminated by a newline [\\n] 에러

    [Elasticsearch] The bulk request must be terminated by a newline [\\n] 에러

    1. 개요 elastic search의 자동완성 기능을 구현해보려고 샘플 데이터를 insert하는 도중, The bulk request must be terminated by a newline [\\n] 와 같은 에러가 발생했습니다. 2. 해결 방법 {"index":{"_index":"autocomplete_test_1","_id":"1"}} {"word":"스팀게임"} {"index":{"_index":"autocomplete_test_1","_id":"2"}} {"word":"스팀게임 추천"} {"index":{"_index":"autocomplete_test_1","_id":"3"}} {"word":"스팀게임 추천 2019"} {"index":{"_index":"autocomplete_test_1"..

    [ElasticSearch] received plaintext http traffic on an https channel, closing connection 에러

    [ElasticSearch] received plaintext http traffic on an https channel, closing connection 에러

    1. 개요 윈도우 환경에서 ElasticSearch를 설치하고 localhost:9200으로 열어보았을때, received plaintext http traffic on an https channel, closing connection 라는 오류가 발생하고 연결이 되지 않는 이슈가 있었습니다. 2. 해결 방법 [elasticsearch설치폴더]/config/elasticsearch.yml ... # Enable security features xpack.security.enabled: false xpack.security.enrollment.enabled: false # Enable encryption for HTTP API client connections, such as Kibana, Logstash..

    [Node.js] Selenium 크롤링 사용

    [Node.js] Selenium 크롤링 사용

    1. 개요 프로젝트를 진행하다보니 실제 프로젝트에 사용할 데이터가 필요할 때가 있는데, 이 데이터를 얻기 위해 자연스럽게 인터넷의 정보를 쉽게 얻어 올 수 있기 위해 크롤링을 사용해야 했습니다. 2. 패키지 먼저 폴더를 하나 생성하고 npm init -y 로 node.js 기반 패키지를 생성해줍니다. 사용할 라이브러리는 selenium으로 npm install selenium-webdriver 위의 패키지를 설치해줍니다. selenium 크롤링을 사용하기 위해서는 브라우저의 드라이버를 사용해야 합니다. http://chromedriver.storage.googleapis.com/index.html 저는 크롬 드라이버를 사용했기 때문에, 위의 링크에서 최신 크롬 드라이버를 받아주면 됩니다. 다운 받은 드라..

    JWT(Json Web Token) 토큰이란?

    JWT(Json Web Token) 토큰이란?

    1. 개요 회원의 로그인 기능을 구현하려고 하다보니 자연스럽게 JWT토큰에 대해 알게 되었고, 대부분의 웹 서비스는 이 JWT토큰를 사용해서 로그인과 로그인 상태를 유지하고 있었습니다. 이러한 기능을 구현하기 위해서는 JWT토큰에 대한 이해와 로그인 서비스에 대한 이해가 필요합니다. 2. 인증(Authentication)과 인가(Authorization) 로그인 서비스에 대해 알아보기 전에 먼저 인증과 인가에 대한 차이를 알아야 합니다. 인증(Authentication): 대표적인 로그인 기능입니다. 아이디와 패스워드 등을 통해 특정 서비스에 일정 권한이 주어진 사용자임을 인증받는 서비스입니다. 인가(Authorization): 사용자가 한 번 인증을 받은 후에, 해당 특정 서비스를 이용할 수 있는 지에..