Graylog 로그 내보내는 방법

Graylog 로그 내보내는 방법

SOC Prime Team
SOC Prime Team linkedin icon 팔로우

Graylog은 메시지를 OpenSearch 또는 Elasticsearch에 저장하므로 두 가지 경로가 있습니다. 액세스 토큰으로 인증되는 Graylog REST API를 사용하거나 스크립트를 사용하여 백엔드 인덱스(graylog_*가 기본 값)를 직접 쿼리하세요. 어쨌든 JSON을 얻을 수 있습니다. 원래 줄은 메시지에 있으며, 일부 입력은 full_message에 포함되어 있습니다. Graylog 웹 인터페이스에서의 내보내기는 현재 LogTotal에서 읽을 수 없는 형식을 생성합니다. 

Graylog는 팀이 설정하는 첫 번째 중앙 로깅으로 종종 사용되는 인기 있는 오픈 로그 관리 플랫폼입니다. Prime Core는 Graylog에 대해 23,274개의 탐지 규칙을 보유하고 있으며, 이는 671개의 MITRE ATT&CK 기술에 매핑되어 있습니다. 아래는 메시지를 가져와 LogTotal에서 무료로 정리하고 조사하는 방법입니다.

무료로 시작하기

시작하기 전에

액세스 토큰. Graylog에서 사용자의 설정을 열고 토큰을 생성하세요. API를 사용하여 <token>:token으로 인증합니다: 토큰을 사용자 이름으로, token이라는 단어를 비밀번호로 사용하세요.

백엔드 접근, 직접 접근할 경우. Graylog의 배후에 있는 OpenSearch 또는 Elasticsearch 클러스터는 종종 외부에서 접근할 수 없습니다. 운영자에게 읽기 전용 계정을 요청하세요.

스트림과 인덱스 세트. Graylog는 메시지를 스트림으로 라우팅하고, 스트림은 고유한 접두사와 유지 정책이 있는 인덱스 세트에 매핑됩니다. 어떤 인덱스 세트가 데이터를 보유하고 있는지 알아두세요.

옵션 1: Graylog REST API

GL="https://graylog.example.com"

curl -sS -u "$GL_TOKEN:token" -H 'Accept: application/json' -G "$GL/api/search/universal/absolute"
 --data-urlencode 'query=source:web-03'
 --data-urlencode 'from=2026-10-19T00:00:00.000Z'
 --data-urlencode 'to=2026-10-20T00:00:00.000Z'
 --data-urlencode 'limit=10000'
 | jq -c '.messages[].message' > graylog_web03_1019.jsonl

새로운 Graylog 버전에서는 Views 검색 API를 선호합니다. 큰 내보내기의 경우 옵션 2가 더 신뢰할 수 있습니다.

옵션 2: 백엔드 인덱스 쿼리

이것은 우리가 Graylog의 인덱스를 지적한 것과 동일한 접근 방식입니다:

import json, os
from opensearchpy import OpenSearch, helpers

client = OpenSearch("https://opensearch.example.com:9200",
                    http_auth=("reader", os.environ["OS_PASSWORD"]), verify_certs=True)
query = {"query": {"bool": {"filter": [
    {"term": {"source": "web-03"}},
    {"range": {"timestamp": {"gte": "2026-10-19 00:00:00.000", "lt": "2026-10-20 00:00:00.000"}}},
]}}}

with open("graylog_web03_1019.jsonl", "w") as out:
    for hit in helpers.scan(client, index="graylog_*", query=query, size=1000):
        out.write(json.dumps(hit["_source"]) + "n")

Graylog은 yyyy-MM-dd HH:mm:ss.SSS 형식으로 UTC에 타임스탬프를 저장하므로 범위가 해당 형식을 사용합니다. 백엔드에 Elasticsearch가 실행되는 경우 동일한 방식으로 elasticsearch 클라이언트를 사용합니다.

LogTotal에 업로드하고 정리 및 검토하기

  1. 업로드. 열기 logtotal.com 및 파일을 드롭하세요.
  2. 정리. 
  3. 검토. 

문제가 발생했을 때

증상가능한 원인Fix
API에서 401잘못된 토큰 인증<token>:token 사용
검색 엔드포인트에서 404현재 버전에서 사용 불가능한 엔드포인트옵션 2 또는 Views API 사용
백엔드 쿼리가 아무것도 반환하지 않음잘못된 인덱스 접두사 또는 잘못된 타임스탬프 형식인덱스 세트 확인; yyyy-MM-dd HH:mm:ss.SSS 사용
백엔드에 접근할 수 없음노출되지 않은 클러스터읽기 전용 계정 요청 또는 API 사용

FAQ

message 또는 full_message?

message는 항상 있습니다. full_message는 GELF와 같은 일부 입력에 나타나며 더 많은 정보를 포함할 수 있습니다. 보유하고 있다면 둘 다 내보내십시오.

Graylog Cloud에서도 작동합니까?

API 경로는 가능하지만, 호스팅 플랜에서는 백엔드에 대한 직접적 접근이 보통 불가능합니다.

SOC Prime의 Detection as Code 플랫폼에 가입하세요 귀사의 비즈니스에 가장 중요한 위협에 대한 가시성을 개선하세요. 시작을 돕고 즉각적인 가치를 제공하기 위해 지금 SOC Prime 전문가와의 회의를 예약하세요.