분류 전체보기 1385

[Kafka] Kafka 설치 (with KRaft) 및 PUB/SUB 테스트 코드 (with Python) 실습

[Kafka] Kafka 설치 (with KRaft) 및 PUB/SUB 테스트 코드 (with Python) 실습 l Kafka 3.6.1 with KRaft Apache Kafka(이하 “카프카”)는 실시간으로 기록 스트림을 게시, 구독, 저장 및 처리할 수 있는 분산형 데이터 스트리밍 플랫폼이다. 여러 소스에서 데이터 스트림을 처리하고 여러 사용자에게 전달하도록 설계되었다. 간단히 말해 A지점에서 B지점까지 이동하는 것뿐만 아니라 A지점에서 Z지점을 비롯해 필요한 모든 곳에서 대규모 데이터를 동시에 이동할 수 있다. 카프카는 현재 여러 마이크로서비스 개발 환경에서 많이 사용되고 있다. 카프카는 3.5.2 버전까지는 분산 코디네이션으로 주키퍼(Zookeeper)를 사용하였지만, 3.6.0 버전 부터는 ..

[Linux] 리눅스에서 TCP DUMP로 패킷헤더 출력하기

[Linux] 리눅스에서 TCP DUMP로 패킷헤더 출력하기 l Linux 일반적으로 어플리케이션간 통신이 되지 않을 때 어플리케이션의 로그도 확인하겠지만, 가장 먼저 확인하는 부분이 OS 방화벽 > 시스템 방화벽(보안프로그램) > 네트워크 방화벽 순이지 않을까 한다. 이때 사용자가 모든 권한을 가지고 있으면 각 단계별로 방화벽 로그나 기타 로그를 보면서 통신이 되는지 (접근이 되는지)등의 문제를 확인할 수 있지만, 사실상 대부분의 업무는 역할이 정해져 있고, 역할마다 접근 권한이 다르기 때문에 빠르게 모든 구간을 확인할 수 없다. 가끔은 필요한 단계에서 각 방화벽의 포트가 오픈되어 있는데, 통신이 되지 않는 경우(대부분은 오해로 발생)도 있다. 이럴 때 쉽게 패킷이 호출되는지 통신 여부를 확인할 수 있..

Linux 2024.01.02

[ProxySQL] CONNECTING_CLIENT_STATE_SERVER_HANDSHAKE 오류

[ProxySQL] CONNECTING_CLIENT_STATE_SERVER_HANDSHAKE 오류 l Version : ProxySQL 2.4.2 ProxySQL에서 백엔드 어플리케이션이 접속하는 포트로 로그인이 안되는 문제가 발생하였다. ProxySQL의 로그를 확인해 보니 아래와 같은 로그가 기록되어 있다. MySQL_Session.cpp:5094:handler___status_CONNECTING_CLIENT___STATE_SERVER_HANDSHAKE():[ERROR] ProxySQL Error: Access denied for user 'user'@'ip' (using password: YES) MySQL_Session.cpp:5094:handler___status_CONNECTING_CLIENT..

MySQL, MariaDB 2023.12.11

[MySQL] Galera 클러스터 이름 길이 초과로 인한 클러스터 조인 오류

[MySQL] Galera 클러스터 이름 길이 초과로 인한 클러스터 조인 오류 l Version : MySQL Percona Cluster, Galera Cluster MySQL Percona 클러스터를 구성하고, Primary 서비스를 정상적으로 구동한 후 Secondary 서버를 클러스터에 조인하려고 할 때 아래와 같은 오류와 함께 클러스터 조인에 실패하였다. Secondary의 경우 서비스가 시작될 때 my.cnf에 정의되어 있는 정보에 따라 클러스터 조인을 자동으로 시도하고 클러스터 조인에 실패할 경우 MySQL이 정상적으로 실행되지 않는다. 2023-12-06T10:02:52.460279Z 0 [ERROR] [MY-000000] [Galera] failed to open gcomm backend..

MySQL, MariaDB 2023.12.08

[MySQL] SHOW PROCESSLIST로 현재 실행중인 스레드 목록 확인하기

[MySQL] SHOW PROCESSLIST로 현재 실행중인 스레드 목록 확인하기 l Version : MySQL MySQL에서 현재 실행중인 스레드 목록을 확인하기 위해서는 SHOW PROCESSLIST 명령어를 사용할 수 있다. PROCESS 권한이 있으면 다른 사용자에게 속한 스레드까지 포함하여 모든 스레드를 볼 수 있다. 그렇지 않으면 익명이 아닌 사용자는 자신의 스레드에 대한 정보에만 액세스할 수 있어 다른 사용자의 스레드 정보는 확인할 수 없다. SHOW PROCESSLIST 명령문은 정보 필드에 각 문의 처음 100자만 표시한다. info 컬럼에 현재 실행중인 SQL문 전체를 표시하고 싶을 경우 SHOW FULL PROCESSLIST 명령을 사용한다. 아래 명령어를 사용하여 실행중인 스레드의..

MySQL, MariaDB 2023.12.04

[MySQL] Stopping Purge/Resuming Purge in Error Logs

[MySQL] Stopping Purge/Resuming Purge in Error Logs l Version : MySQL 5.7 X MySQL 5.7.X 운영환경에서 아래와 같은 로그가 잔뜩 기록되어 있었다. 계속해서 반복되는 Stoppoing purge과 Resuming purge는 오류로 기록되고 있지는 않았지만, 반복해서 남는 로그에 원인이 궁금했다. 023-11-22T15:27:13.249813Z 4 [Note] InnoDB: Stopping purge 2023-11-22T15:27:13.363487Z 4 [Note] InnoDB: Resuming purge 2023-11-22T15:27:13.462275Z 4 [Note] InnoDB: Stopping purge 2023-11-22T15:27..

MySQL, MariaDB 2023.12.01

[MySQL] 삭제 마킹된 데이터를 물리적으로 제거하는 purge thread 와 설정을 위한 innodb_purge_threads 변수 알아보기

[MySQL] 삭제 마킹된 데이터를 물리적으로 제거하는 purge thread 와 설정을 위한 innodb_purge_threads 변수 알아보기 l Version : MySQL 5.5 later MySQL purge thread는 삭제 표시된 레코드를 물리적으로 제거하는 작업을 하는 스레드이다. 쉽게 설명하면 가비지 컬렉션과 같은 역할이다. DELETE 쿼리 등에 의해 삭제되었다고 마킹된 데이터에 대해서 물리적으로 삭제 작업을 한다. MySQL의 innodb_purge_threads 변수는 InnoDB 스토리지 엔진에서 제거 작업 전용 스레드 수를 제어하는 ​​데 사용된다. Purge thread는 더 이상 필요하지 않은 행을 삭제하는 프로세스이다. 일반적으로 이러한 상황은 해당 행이 삭제 또는 업데이..

MySQL, MariaDB 2023.11.24

[Grafana] Grafana에서 이메일 알림 보내기

[Grafana] Grafana에서 이메일 알림 보내기 l Grafana, PMM Grafana(“그라파나”)에서는 이상 징후를 감지했을 때, 대시보드 패널에서 알림 규칙을 추가하여 다양한 방식으로 알림을 받을 수 있다. 이번 포스트에서는 그라파나에서 이메일로 알람을 보낼 수 있도록 설정하는 방법에 대해서 알아본다. 알람을 이메일로 보내기 위해서는 그라파나에서 SMTP 설정을 해야한다. 물론 SMTP 로 사용할 이메일 서버에서는 SMTP 서비스가 허용되어 있어야 한다. 그라파나가 설치된 서버에서 Grafana.ini 설정파일을 수정하여 SMTP 정보를 등록한다. vi /etc/Grafana/Grafana.ini 설정파일에서 아래 내용을 참고하여 추가하도록 한다. [smtp] enabled = true h..

[PMM] PMM Client 실행시 사용되는 동적 포트 변경하기

[PMM] PMM Client 실행시 사용되는 동적 포트 변경하기 l Version : PMM 2.X 이번 포스트는 PMM Client의 설정 파일을 수정하여 동적 포트의 범위를 제한하는 방법에 대해서 알아본다. PMM은 Percona Monitoring and Management의 약자로 PostgreSQL 및 MySQL, MongoDB를 위한 오픈소스 데이터베이스 모니터링 및 관리 솔루션이다. 이를 통해 데이터베이스 시스템의 상태를 관찰하고, 동작의 새로운 패턴을 탐색하고, 문제를 해결하고, 온프레미스나 클라우드 어디에 있든 데이터베이스 관리 작업을 수행할 수 있다. PMM은 데이터베이스와 해당 호스트로부터 수천 개의 기본 성능 지표를 수집한다. 그리고 웹 UI 대시보드를 제공하여 데이터를 시각화 한..

MySQL, MariaDB 2023.11.15

[MySQL] MySQL에서 caching_sha2_password 특징 및 mysql_native_password 사용하기

[MySQL] MySQL에서 caching_sha2_password 특징 및 mysql_native_password 사용하기 l Version : MySQL 8.0 MySQL은 다양한 계정 인증 플러그인 방식을 지원하고 있다. 현재 공식 매뉴얼에 따르면 13개의 인증 방식을 제공하고 있다. l https://dev.mysql.com/doc/refman/8.0/en/authentication-plugins.html 이번 포스트에서는 다양한 플러그인 중에 MySQL 8버전부터 변경된 인증 방식인 caching sha2_password에 대해서 알아보고 MySQL 8버전에서 이전 버전의 mysql_native_password를 사용하는 방법에 대해서 알아본다. MySQL 5.7버전까지는 기본 인증 방식이 my..

MySQL, MariaDB 2023.11.13