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에 업로드하고 정리 및 검토하기
- 업로드. 열기 logtotal.com 및 파일을 드롭하세요.
- 정리.
- 검토.
문제가 발생했을 때
| 증상 | 가능한 원인 | 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 경로는 가능하지만, 호스팅 플랜에서는 백엔드에 대한 직접적 접근이 보통 불가능합니다.