본문 바로가기
반응형

DATA42

EFK 로그 수집 아키텍처 Elasricsearch + Fluentd + Opendashboard ELKElasricsearch + Logstash + KibanaElastic stack으로 구성된 ELK (Loagsash) 라는 용어로 더 잘 불리운다.EFK (EFO) 로그 수집 아키텍처Elasricsearch + Fluentd + Kibana (Opendashboard)Elastic stack의 유료화 때문에 Opensearch + Opendashboard를 사용한다. Fluntd로그의 수집, 파싱, 전송 역할어플리케이션의 파일을 읽어야하므로 어플리케이션과 같은 호스트에 뜬다.CRuby로 만들어져있다. (Fluenbit이라는 C기반 경량화 버전도 있으며, forwarder로서 사용하기에 적합)장점적은 리소스를 사용하면서 로그를 파싱하고 전송한다.규칙을 태그방식으로 정하기때문에 사용성이 직관적이다... 2023. 1. 12.
로그란? & 로그 수집 아키텍처 Log 유의미한 내용을 남기는 기록 내용 로그를 남긴 시간 로그 레벨 TRACE : 어플리케이션에서 어떤 상황이 일어나는지 상세한 내용을 보고 싶을 때 ex) 라이브러리의 내부 동작 DEBUG INFO WARN ERROR FATAL : 시스템 이용이 불가능한경우 ex) Memory Crash, Disk Full 로그 내용 로그가 발생한 위치 로그가 WARN, ERROR라면 Line 까지 남기면 좋다. 로그가 파일에 남아있다면 찾아보면될텐데 왜 수집을 해야할까? 1. 시스템에 장애가 나면 로그 파일에 다시 접근하지 못할 수 있다. 2. 사용하는 프로그램이 많아지거나 인스턴스의 수가 많다면 일일히 들어가서 확인하기 어렵다 3. 필터링, 그룹, 검색을 이용하여 더 신뢰있는 시스템을 만들 수 있다. 로그 수집 .. 2023. 1. 11.
ElasticSearch Cluster와 Node Elasticsearch에서의 노드: Elasticsearch 서비스가 설치되어있는 단위Elasticsearch에서의 클러스터: 노드들을 연결해 놓은 것, 하나 이상의 노드들로 구성하여 서비스로 제공하는 것Master node 1 + Data Node (>= 2) 시스템 구조는 크게 Cluster, Node, Index, Shard 로 구성된다. Elasticsearch node 종류Master-eligible node / Master node마스터 후보 노드 -> 마스터 노드가 죽을 경우를 대비해 후보들을 여러개 지정하게된다.index 생성 또는 삭제, shard 할당 등 전체적으로 관리하는 역할마스터 노드에는 데이터가 저장되지 않는다.가장 성능 좋고 네트워크 속도가 빠르며 지연이 없는 노드를 선정해서.. 2023. 1. 8.
[MySQL] Window 함수란? 종류? 행과 행 간의 관계를 쉽게 정의하기 위한 함수이다. 분석 함수나 순위 함수로 알려져 있다. 다른 함수와 중첩해서 사용하지 못하지만, 서브쿼리에는 사용 가능 하다. SELECT WINDOW_FUNCTION(ARGUMENTS) OVER (PARTITION BY 칼럼 ORDER BY WINDOWING절) FROM 테이블명; 종류 그룹 내 순위(RANK) 관련 함수 RANK, DENSE_RANK, ROW_NUMBER 그룹 내 집계(AGGREGATE) 관련 함수 SUM, MAX, MIN, AVG, COUNT 그룹 내 행 순서 관련 함수 FIRST_VALUE : 가장 먼저 나온 값 출력 LAST_VALUE : 가장 나중에 나온 값 출력 LAG : 이전 값을 출력 LEAD : 다음 값을 출력 그룹 내 비율 관련 함수.. 2023. 1. 7.
[MySQL] Join의 종류 Join 이란? 두개 이상의 테이블을 서로 연결하여 마치 하나의 테이블인 것처럼 데이터를 조회할 수 있다. Join의 종류 1. Inner Join 조건이 일치하는 행만 가져온다. (교집합) 2. Left Outer Join (Left Join) 왼쪽 테이블의 정보는 모두 가져오고, 대상이 되는 테이블은 Join 조건이 일치하는 행만 가져온다. 3. Right Outer Join (Right Join) 오른쪽 테이블의 정보는 모두 가져오고, 대상이 되는 테이블은 Join 조건이 일치하는 행만 가져온다. 4. Full Outer Join 기준이 되는 테이블의 정보는 모두 가져오고, 대상이 되는 테이블은 Join 조건이 일치하지 않아도 가져온다. (Null로 채워짐) 저는 실무에서 주로 Inner Join과.. 2023. 1. 6.
Redis - Serialize, Unserialize 란? 직렬화 저장의 단점 Serialize 객체를 데이터 스트림으로 만드는 것. 바이트 형태로 바꾸는 것 사용하는 곳: 파일 저장, 패킷 전송 시 파싱 가능한 데이터를 만들기 위해 사용한다. 그러면 Redis Set 할 때 시리얼라이즈해서 저장하는 이유는 무엇인지 궁금해서 찾다가.. 우아한 형제들 기술블로그에서 해당 부분에 대한 단점을 적은 글을 보았다. 자바 직렬화, 그것이 알고싶다. 실무편 | 우아한형제들 기술블로그 {{item.name}} 자바의 직렬화 기술에 대한 대한 두 번째 이야기입니다. 실제 자바 직렬화를 실무에 적용해보면서 주의해야 할 부분에 대해 이야기해보려고합니다. 자바 직렬화 실제 업무에서 사용 techblog.woowahan.com 긴 시간 동안 외부에 저장하는 의미 있는 데이터들은 자바 직렬화를 사용하지 .. 2022. 12. 29.
Redis data types 자료구조 유형 Redis 의 장점으로는 다양한 자료구조가 있는점이다. 주로 사용되는 대표적인 타입: String, Set, Sorted Set, Hash, List 그외 : Bitmap, HyperLogLog, Geospatial, Stream, Bitmap, Bitfield 이해하는데 도움이되는 그림 Redis CLI $ docker exec -it {Container id} redis-cli --raw Strings 단순한 insert 문을 대체하기 위해 사용한다. ex) 유저의 token 저장, 이미지 저장 등 SET : 데이터를 저장한다. GET : key의 값을 조회한다. INCR : key에 저장된 수를 1씩 증가한다. INCRBYSET : key에 지정한 수만큼 증가시킨다. DECR : key에 저장된 수.. 2022. 12. 29.
Redis 문제 해결 - WRONGTYPE Operation against a key holding the wrong kind of value 트러블 슈팅 WRONGTYPE Operation against a key holding the wrong kind of value 원인 레디스의 자료구조에 맞지 않는 명령어를 수행하려할 때 발생하는 에러였다. 내가 SortedSets 자료구조로 저장된 레디스 데이터를 GET으로 가져오려하니 발생했던 것. 올바른 조회 1. String → GET 2. Hash → HGETALL 3. Lists → Irange 4. Sets → smembers 5. Sorted Sets → ZRANGE 2022. 12. 29.
Redis 운영모드 - Sentinel, Cluster 레디스는 단일 인스턴스만으로도 충분히 운영이 가능하지만, 메모리 한계를 초과하는 데이터를 저장하고 싶거나, failover에 대한 처리를 통해 High Availibilty를 보장하려면 센티널이나 클러스터 등의 운영모드를 사용해야한다. 1) Sentinel HA 지원 master/slave replication 여러개의 독립적인 sentinel process들이 서로 협동하여 운영된다 안정적인 운영을 위해서는최소 3개 이상의 sentinel instance 필요, 홀수 권장 센티널 기본 포트: TCP 26379 One master - multi slave 제공하는 기능 모니터링 알림 자동 failover master에 문제가 감지되면 자동으로 failover 수행 (과반수 vote) failover가 되.. 2022. 12. 29.
728x90
반응형