로그프레소에서 HTTP POST 수집기를 만들고, 외부에서 로그를 전송하는 두 가지 방법을 안내합니다.
내용 중 수정이 필요한 부분이나 추가 의견이 있으시면 언제든 피드백 부탁드립니다.
1. 사전 준비
- 수집기를 동작시키려면 테이블 → 수집 모델 → 수집기 순서로 만들어 두어야 합니다.
테이블 생성
-
[시스템] → [테이블] → 추가 클릭
-
항목 입력 후 저장
-
테이블 이름: getpost
-
보관주기 : 0일(무제한)
-
수집 모델 생성
-
수집 → 수집 모델 → 추가 클릭
-
항목 입력 후 저장
-
이름: HTTPPOST
-
수집 유형: HTTP POST 선택
-
수집기 생성
-
수집 → 수집 → 추가 클릭
-
항목 입력 후 저장
-
이름: HTTPPOST
-
주기: 5초
-
수집모델: HTTP POST
-
대상 테이블: getpost
-
콜백 이름: getpost
-
-
수집기 실행
엔드포인트 URL
-
수집 엔드포인트는 다음과 같이 구성됩니다.
-
https://<로그프레소_서버_주소>:8443/log/<콜백이름> -
예) 로컬에서 콜백 이름이
getpost인 경우 →https://127.0.0.1:8443/log/getpost
2. 로그프레소 wget 쿼리로 전송 테스트
-
로그프레소 쿼리 창에서
wget명령을 사용하면, 서버에 별도로 접속하지 않고도 자기 자신(또는 다른 노드)의 HTTP POST 수집기로 데이터를 보낼 수 있습니다. -
예시 쿼리(분석 → 쿼리로 이동 후 하기 쿼리 실행)
json "{}" | eval url="<https://127.0.0.1:8443/log/getpost>" | eval headers=dict("Accept", "application/json") | eval name="superman" | eval age=30 | wget method=post format=json header=headers -
확인(분석 → 쿼리로 이동 후 하기 쿼리 실행하여 테이블 조회)
table getpost
3. CLI(curl)에서 전송 테스트
-
서버 터미널이나 다른 호스트에서 곧바로 보낼 때는
curl를 이용하여 데이터를 전달 할 수 있습니다. -
예시 쿼리(127.0.0.1로 데이터 전달)
curl -k -L -v \ -d '{"name":"superman","age":30}' \ -H "Accept: application/json" \ -H "Content-Type: application/json" \ https://127.0.0.1:8443/log/getpost -
확인(분석 → 쿼리로 이동 후 하기 쿼리 실행하여 테이블 조회)
table getpost