본문 바로가기

전체 글

Linux - jq 명령어란? (JSON 데이터 처리기) 1. jq란 무엇인가?jq는 JSON 데이터를 처리하고 파싱 할 수 있도록 도와주는 유틸리티입니다. 마치 sed나 awk처럼 사용되며, JSON 포맷의 데이터를 필터링하고 변환하는 데 특화되어 있습니다. 복잡한 JSON 데이터 구조에서 특정 값만 추출하거나 데이터를 재구성하는 데 매우 유용합니다.2. jq 설치하기 # aptsudo apt-get updatesudo apt-get install jq# apt(select version)sudo apt-get install jq=1.5*# yumsudo yum install jq# yum(select version)sudo yum install jq-1.5# dnfsudo dnf install jq# source codegit clone cd jqautor.. 더보기
Linux - /proc/[PID]/status 파일 정보 리눅스에서는 각 프로세스에 대한 정보를 /proc 디렉토리를 통해 확인할 수 있습니다. 이 디렉토리는 시스템이 동작하는 동안 생성되며, 각 프로세스에 대한 상태 정보를 제공하는 가상 파일 시스템입니다. /proc 아래에는 각 프로세스 ID(PID)를 이름으로 하는 디렉토리가 있으며, 그 아래 status라는 파일을 통해 해당 프로세스의 상세 정보를 확인할 수 있습니다./proc/[PID]/status 파일 개요status 파일은 프로세스의 상태를 설명하는 정보가 있고 성능 모니터링, 문제 해결, 시스템 최적화를 위해 사용합니다.주요 정보 필드Name프로세스 이름 (예: sshd)Umask파일 생성 마스크 (권한 설정 시 기본 마스크 값)State프로세스의 현재 상태 (R: 실행 중, S: 대기 중, D:.. 더보기
Linux - Date 명령어로 타임스탬프 변환하기 리눅스(Linux)에서 date 명령어는 시스템의 날짜와 시간을 출력하거나 설정하는 데 사용됩니다. 날짜와 시간을 다루는 다양한 형식을 지원하며, 이를 통해 타임스탬프를 읽기 쉽거나 특정 형식으로 변환할 수 있습니다. 또한, 타임스탬프 값을 받아 사람이 이해할 수 있는 날짜로 변환하는 기능도 제공합니다.1. date 명령어 기본 사용법리눅스의 date 명령어는 기본적으로 현재 시스템의 날짜와 시간을 출력합니다.# date2024. 10. 02. (수) 09:17:42 KST기본 출력 형식은 시스템의 로케일 설정에 따라 다를 수 있지만, 일반적으로 "년-월-일 시:분:초" 형식으로 나타납니다.특정 형식으로 날짜와 시간을 출력하고 싶다면 + 옵션을 사용하여 원하는 포맷을 지정할 수 있습니다.# date +".. 더보기
Linux - 리눅스 주요 로그 파일 정리 리눅스 시스템에서 로그 파일은 시스템의 상태를 모니터링하고, 사용자 활동을 추적하며, 보안 사고를 분석하는 데 중요한 역할을 합니다. 로그 파일을 이해하고 적절하게 관리하는 것은 시스템 관리자에게 필수적인 기술입니다.주요 로그 파일 요약로그 파일위치내용명령어utmp/var/run/utmp현재 로그인한 사용자들의 상태 정보w, who, fingerwtmp/var/log/wtmp성공한 로그인/로그아웃 및 시스템 부팅/종료 이력last, lastbbtmp/var/log/btmp실패한 로그인 시도 기록lastblastlog/var/log/lastlog각 사용자별 가장 최근 로그인 기록lastlogsecure/var/log/secure사용자 인증 관련 정보 (로그인, 사용자 추가/삭제 등)cat, grepmess.. 더보기
Monitoring Tools - Zabbix MariaDB 모니터링 및 UserParameter 설정 데이터베이스 서버의 상태를 실시간으로 모니터링하고 문제 발생 시 경고를 받을 수 있어 유용합니다.이번 글에서는 Zabbix와 MariaDB를 연동하여 중요한 상태 정보를 수집하고, UserParameter를 통해 더 세밀한 모니터링을 구현하는 방법을 설명하겠습니다.Zabbix Version : 5.0 기준1. Zabbix 기본 템플릿: Template DB MySQL by Zabbix agentZabbix는 MySQL과 MariaDB의 기본적인 모니터링을 위한 Template DB MySQL by Zabbix agent 템플릿을 제공합니다.MySQL 버전 확인쿼리 수 및 슬로우 쿼리 수집스레드 연결 수 및 활성 상태연결된 클라이언트 수이 템플릿을 사용하면 MariaDB 서버의 주요 성능 지표들을 기본적으.. 더보기
Tomcat8 - JSESSIONID 세션 충돌 문제와 해결 방법 웹 애플리케이션에서 로그인 후 다른 페이지로 이동해도 계속 로그인이 유지되는 이유는 바로 세션(Session) 덕분입니다. 세션은 서버가 사용자 정보를 기억하고, 사용자가 서버와의 연결된 동안 일관된 상태를 유지하는 데 중요한 역할을 합니다.서버는 JSESSIONID라는 쿠키를 발급하는데, 동일한 서버에 여러 톰캣을 설치하거나 한 톰캣에 여러 애플리케이션을 배포하면 예상치 못한 세션 충돌 문제가 발생할 수 있습니다. 세션이란 무엇인가?세션(Session)은 웹 서버가 클라이언트(사용자)를 인식하기 위해 일정 시간 동안 유지하는 정보를 말합니다. 예를 들어, 사용자가 웹사이트에 로그인하면, 그 사용자의 로그인 상태를 서버가 기억하고 있다가 다른 페이지로 이동해도 로그인이 유지되도록 합니다.이 세션 정보를 .. 더보기
Windows - DB / WAS / OS 튜닝 가이드 MariaDB와 Tomcat 서버가 한 대의 서버에서 함께 동작하는 환경에서, 성능 최적화하여 효율적인 자원 관리와 성능 향상을 위한 각종 설정을 소개합니다.작업 서버 정보OS : Windows 2022 서버 기준DB: MariaDB 10.6.16 기준WAS: Apache Tomcat 8.5 기준 (JAVA 17 사용)1. MariaDB 튜닝 (DB) 설정1.1 my.ini 설정MariaDB는 메모리 사용량과 쿼리 성능에 큰 영향을 미치는 DB 엔진입니다.특히, InnoDB의 버퍼 풀과 로그 파일 크기 설정은 성능에 큰 차이를 만들기 때문에 적당히 할당해주셔야 합니다. [mysqld]# 데이터베이스 경로 및 포트 설정datadir=D:/MariaDB/dataport=3306# 메모리 및 캐시 관련 설정 .. 더보기
MariaDB - 무중단 Replication 설정 : DB인스턴스 추가 및 변경 개요현재 DB1(172.16.34.6)과 DB2(172.16.34.7)는 양방향(Master-Master) 리플리케이션 구조로 설정되어 있습니다.DB2의 서버 부하가 심각하게 발생하여, 신규 서버인 DB0(172.16.34.5)를 추가하고, DB2를 대체하려는 절차입니다.최종 목표는 기존의 DB1 DB2 구조를 DB1 DB0 구조로 변경하는 것입니다.서비스 중단 없이 이루어져야 하므로 무중단 리플리케이션 설정을 적용합니다.작업 서버 정보DB0: 신규 서버 (IP: 172.16.34.5)DB1: 기존 서버, 마스터 서버 (IP: 172.16.34.6)DB2: 기존 서버, 부하 발생 중 (IP: 172.16.34.7)사전 준비: my.cnf 설정모든 MariaDB 서버에서 [mysqld] 섹션에 각 서버.. 더보기