Splunk 사용을 위한 SQL 문법과 Linux 명령어 정리

KIM DO YOON·2025년 4월 1일
0

Splunk를 효과적으로 사용하기 위해서는 SQL문법과 Linux 명령어에 대한 기본적인 이해가 필요하다. 이 두가지는 Splunk의 검색 및 분석 기능을 보다 효율적으로 활용하는 데 도움이 된다.
이번 글은 Splunk 학습 전에 알아두면 좋을 SQL 문법과 Linux 명령어의 핵심 내용을 정리하는 글이다.

Linux 명령어 정리

Linux 명령어는 파일 관리, 시스템 모니터링, 텍스트 처리 등 다양한 작업을 수행하는 데 사용된다. Splunk 에서도 이러한 명령어에 기반한 검색 및 분석 기능을 제공하므로 기본적인 리눅스 명령어를 숙지하는 것이 중요하다.

기본 디렉토리 및 파일 관리 명령어

명령어설명사용예시
cdChange Directory의 약자로 디렉토리를 이동하는 명령cd /parents/test - test 디렉토리로 이동
cd .. - 상위 디렉토리로 이동
lsList의 약자로 디렉토리 내 파일 목록을 나열하는 명령ls -al - 숨김파일을 포함하여 목록 자세히 출력
ls -alRr - 하위 디렉토리까지 숨김파일을 포함한 목록을 자세히 역순으로 출력
pwdPrint Working Directory의 약자로 현재 디렉토리의 경로를 표시pwd - 현재 작업 중인 디렉토리의 경로를 출력
mkdirMake Directory의 약자로 새로운 디렉토리를 생성mkdir abc - 현재 디렉토리에 abc 디렉토리 생성
mkdir -p /a/b - 부모 디렉토리가 없을 경우 자동 생성
rmdirRemove Directory의 약자로 빈 디렉토리를 삭제rmdir old_folder - old_folder 디렉토리 삭제

파일 조작 명령어

명령어설명사용예시
mvMove의 약자로 파일이나 디렉토리의 이름을 변경하거나 위치 이동mv a.txt b.txt - a.txt의 이름을 b.txt로 변경
mv a.txt b.txt ddd - a, b파일을 ddd 디렉토리로 이동
rmRemove의 약자로 파일이나 디렉터리를 삭제rm abc.txt - 해당 파일 삭제
rm -i abc.txt - 삭제 시 확인 메시지 표시
rm -rf abc - abc 디렉토리와 하위 내용 강제 삭제
cpCopy의 약자로 파일이나 디렉터리를 복사cp a.txt b.txt - a.txt 파일을 b.txt 이름으로 복사
cp -r source_dir dest_dir - 디렉토리와 하위 내용 모두 복사
touch파일 생성 또는 타임스탬프 갱신touch new_file.txt - 새로운 파일 생성 또는 기존 파일 시간 갱신

텍스트 처리 및 검색 명령어

명령어설명사용예시
catConcatenate의 약자로 파일 내용 출력 또는 파일 연결cat file.txt - 파일 내용 표시
cat file1.txt file2.txt > combined.txt - 두 파일 내용 합쳐서 저장
grep특정 문자열 검색grep 'error' 파일명 - 특정 파일에서 'error' 문자열 찾기
grep -i 'error' * - 대소문자 구분없이 모든 파일에서 검색
tail파일 마지막 부분 출력tail -f a.log - a로그 파일을 실시간으로 보기
tail -n 50 file.txt - 마지막 50줄 보기
find파일, 디렉토리 검색find . -name "*.txt" - 현재 디렉토리에서 .txt 확장자 모두 찾기
find . -name "*abc*" - abc가 포함된 파일 찾기
chmodChange Mode의 약자로 파일/디렉토리 권한 변경chmod 755 file.sh - 실행 권한 부여

SQL 문법 정리

SQL은 데이터베이스에서 데이터를 관리하고 조작하는 언어이다. Splunk에서도 SQL과 유사한 쿼리 문법을 사용하므로 SQL의 기본 문법을 이해면 Splunk 사용이 더 쉬워진다.

SQL 쿼리 순서

작성 순서 : SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY - LIMIT
실행 순서 : FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY - LIMIT

데이터 조회 및 필터링

기본 SELECT 문

SELECT 컬럼명1, 컬럼명2
FROM 테이블명
WHERE 조건;

LIKE 연산자를 이용한 문자열 검색

  • LIKE 'PARK%': PARK으로 시작하는 데이터 검색
  • LIKE '%PARK': PARK으로 끝나는 데이터 검색
  • LIKE '%PARK%': PARK이 포함된 데이터 검색

IN 연산자

SELECT CATEGORY, PRICE, PRODUCT_NAME
FROM FOOD_PRODUCT
WHERE CATEGORY IN ('과자', '국', '김치', '식용유');

데이터 그룹화 및 집계

SELECT 그룹화할_컬럼, COUNT(집계할_컬럼)
FROM 테이블명
GROUP BY 그룹화할_컬럼
HAVING 집계_조건;

집계 함수: SUM, COUNT, MIN, MAX, AVG 등

JOIN 구문

SELECT A.컬럼명, B.컬럼명
FROM 테이블A A JOIN 테이블B B
ON A.키컬럼 = B.키컬럼;

조건문과 함수

CASE WHEN 구문

SELECT 컬럼명,
CASE
    WHEN 조건1 THEN 결과1
    WHEN 조건2 THEN 결과2
    ELSE 기본결과
END AS 새컬럼명
FROM 테이블명;

IF 구문

SELECT IF(조건, 참값, 거짓값)

IFNULL 함수

SELECT IFNULL(컬럼명, 대체값)

문자열 함수

  • LEFT(문자열, 길이): 왼쪽에서부터 지정된 길이만큼 문자 추출
  • RIGHT(문자열, 길이): 오른쪽에서부터 지정된 길이만큼 문자 추출
  • SUBSTRING(문자열, 시작위치, 길이): 지정된 위치에서 지정된 길이만큼 문자 추출
  • REPLACE(문자열, 찾을문자, 바꿀문자): 문자열 내 특정 문자를 다른 문자로 대체

Splunk 과 Linux, SQL의 연관성

Splunk는 머신 데이터를 수집, 저장, 분석, 시각화할 수 있는 빅데이터 플랫폼이다. 서버/네트워크 로그, 애플리케이션 로그, 설비 데이터 등 다양한 형태의 머신 데이터를 처리할 수 있으며, 정형/ 비정형 데이터 모두 수용 가능하다.

Splunk 에서의 SQL 문법 활용

Splunk는 SPL 이라는 자체 언어를 사용하지만, 이는 SQL과 유사한 파이프라인(|) 기반 구문을 가지고 있다. SQL의 SELECT, WHERE, GROUP BY 와 같은 개념이 SPL에도 유사하게 적용된다.

주요 Splunk 검색 명령어

카테고리명령어
데이터 나열, 변환table, rename, fields, dedup
통계 계산stats, top, rare, len(x)
차트 시각화timechart, chart
비교분석eval, case, cidrmatch, if, like, match
다중문자열과 시간mvindex, split, substr, round, ruldecode, strftime, strptime, now
profile
안녕하세요 김도윤 입니다.

0개의 댓글