본문 바로가기

ELK 스택

(16)
[Kibana] 키바나 보안 설정(Nginx 사용) 이번 포스팅은 엔지닉스를 사용하여 키바나 보안 접속에 관한 포스팅입니다 Proxy server란 프록시 서버(영어: proxy server 프록시 서버[*])는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터나 응용 프로그램. 이 중계하는 프로그램을 Proxy 프로그램이라고 하는데 보통 서버로 작동하기에 Proxy Server로 부르는 게 일반적이다. 여러 가지의 proxy의 종류가 있으나 여기서 사용하는 건 reverse proxy Reverse Proxy : 기본적으로 Forward Proxy와 동일 하지만, 클라이언트는 Proxy Server 배후에 있는 타깃 서버의 URL이 아닌 Proxy Server의 URL로 요청한다. 이를 통해 애플리케이션 서버는..
[Elasticsearch] 실전 쿼리 사용법 이번 포스팅은 엘라스틱을 사용하면서 필요한 쿼리 문법 사용에 관한 포스팅입니다. 1. 인덱스는 유지, 안의 document를 모두 삭제하는 쿼리 POST [인덱스이름]/_delete_by_query { "query": { "match_all": {} } } - 위와 같이 하면, 생성한 인덱스와 매핑은 유지되면서, 안에 적재한 데이터가 삭제된다 - 삭제는 주의, 또 주의해야함 >> 아래는 command 버전 명령어 curl -X POST "localhost:9200/[인덱스이름]/_delete_by_query?conflicts=proceed&pretty" -H 'Content-Type: application/json' -d' { "query": { "match_all": {} } }' 2. 인덱스 삭제 D..
[Elasticsearch] Plugin 설치 및 적용 이번 포스팅은 엘라스틱서치 플러그인 사용과 실제 검색 시 적용되는 예제에 관한 포스팅입니다. "이미지 검색에 관한 검색엔진을 만드는 데 사용하는 벡터 검색 플러그인" 1. 적용 할 플러그인 검색 - 이번 벡터 검색에 사용 할 엘라스틱 검색 플러그인 https://github.com/lior-k/fast-elasticsearch-vector-scoring lior-k/fast-elasticsearch-vector-scoring Score documents using embedding-vectors dot-product or cosine-similarity with ES Lucene engine - lior-k/fast-elasticsearch-vector-scoring github.com - embeddi..
[Elasticsearch] python에서 엘라스틱 사용하기 이번 포스팅은 파이썬에서 엘라스틱을 연결해서 데이터를 insert, delete, search 등 다양한 요청을 하는 튜토리얼입니다. 필요한 라이브러리 설치 $ pip install elasticsearch - 파이썬에서 엘라스틱을 연결하기 위해 pip으로 엘라스틱을 설치. 파이썬에서 엘라스틱 연결 from elasticsearch import Elasticsearch es = Elasticsearch('[엘라스틱_서버_IP_주소]:9200') - 엘라스틱이 설치된 서버 주소와 포트를 입력 - 파이썬에서 엘라스틱을 연결한다. 데이터 삽입 # mapping 없이 자동 인덱스 생성 def insertData(): es = Elasticsearch('[엘라스틱_서버_IP_주소]:9200') index="pro..
[Elasticsearch] 기존 맵핑 필드 타입 변경하기 + reindex 이번 포스팅은 엘라스틱 서치 사용 중 존재하는 인덱스의 매핑 필드 타입을 변경하는 튜토리얼 입니다. 1. 문제 발생 및 파악 - 엘라스틱을 사용해 데이터를 적재한 뒤 검색 쿼리 도중 문제 발생 - 사용하려는 쿼리가 데이터의 타입과 맞지 않아 검색 할 수 없다는 내용을 담고있다. - 즉, vector scoring 검색을 사용하는데, vector가 binary형태로 입력이 되어있어야 하는데 현재 text로 맵핑되어있음 2. 해결 방안 - 기본적으로 한번 지정된 데이터 타입은 변경이 불가능하다. - 여기서 제시하는 방법은 다시 데이터를 적재하지 않고, 최대한 쉽게 원하는 타입의 맵핑으로 변경하는 방법 PUT /[새로운_인덱스_이름] { "settings" : { "number_of_shards" : 1 },..
[ MySQL + ELK ] Logstash과 MySQL DB 연동하기 [Filebeat+ELK] 첫번째 로그 모니터링 서버 구축기 03. MySQL DB와 연동하기 DB에 존재하는 파일들을 Logstash를 통해 전처리하여 엘라스틱서치에 전달하는 과정의 파이프라인을 진행, 또한 최종적으로 DB의 데이터를 키바나를 통해 시각화 DB-connector 다운로드 (MySQL) "우선 DB와 연결하기 위해서는 연결하기 위한 connector가 필요하다" Connector 다운 - 아래 링크를 타고 들어가면 최신 버전을 확인 할 수 있으니 확인 후 다운 $ wget 'https://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-8.0.18.tar.gz' https://dev.mysql.com/downloads/conne..
[Filebeat + ELK] 로그 모니터링 서버 일지 (Trouble Shooting) [Filebeat+ELK] 첫번째 로그 모니터링 서버 구축기 01. 끝없는 Trouble Shooting 1Memory 관련 에러 (ELK 6.8 기준) $ echo 1048575 > /proc/sys/vm/max_map_count 엘라스틱 종료 후 재 실행시 발생 에러 (ELK 6.8 기준) - 실행 중인 JAVA 프로세스가 있는 지 확인 # 아래 중 하나로 확인 $ ps ef | grep java (java 프로세스 확인) $ netstat -tnlp (java 프로세스 확인) - 확인 후 있다면 프로세스 종료 후 재 시작 {"error":"Content-Type header [application/x-www-form-urlencoded] is not supported","status":406} - ..
[Filebeat+ELK 7.5] 로그 모니터링 서버 구축 (설치부터 설정까지) [Filebeat+ELK] 첫 번째 로그 모니터링 서버 구축기 01. 설치부터 설정까지 "실시간으로 쌓이는 로그를 통해 미쳐 발견하지 못했던 문제점 혹은 오류를 발견하고, 의미 있는 새로운 데이터를 발견하기 위해 로그를 모니터링하는 시스템을 구축하기 위함" ** 위 구성도를 기반으로 잡고, 엘라스틱 서버 구축. 성능 향상을 위해 서버가 새로 필요할 경우, Data Node를 더 추가하는 방식으로 진행함. ** 처음에는 6.8 버전으로 설치 후 현재 7.5 버전으로 모두 재설치 완료. 아래 포스팅은 7.5 버전으로 설치 진행 ** ELK 스택으로 모니터링 서버를 구축한다면, 공식문서를 보고 튜토리얼에 따라가는 것을 가장 추천함 Filebeat 설치 및 설정 파일 비트는 로그를 수집하는 서버에 설치 (로그를..