sendsyslog-tcp

입력되는 레코드를 시스로그(syslog) 형식으로 변환한 다음 TCP 통신을 통해 목적지로 전송합니다.

문법

sendsyslog-tcp dst=IP_ADDR port=INT [framing=lf|rfc6587] [format=json|txt] [pri=INT]
필수 매개변수
dst=IP_ADDR
Syslog 서버의 IP 주소
port=INT
Syslog 서버의 리스닝 포트 번호(기본값: 514). 1 ~ 65535 사이의 정수를 입력할 수 있습니다.
선택 매개변수
format=json|txt

전송할 로그의 형식을 json, txt 중에서 선택해 지정(기본값: txt).

  • json: 입력으로 받는 데이터를 모두 JSON 형식으로 변환해 전송
  • txt: line 필드의 문자열 값을 그대로 전송
framing=lf|rfc6587

시스로그 메시지의 경계를 식별하는 방법(기본값: lf). 시스로그를 수신하는 서버에 적합한 방식을 선택

  • lf: 시스로그 메시지의 끝을 나타내는 문자로 줄바꿈 문자(LF)를 이용
  • rfc6587: RFC 6587에 따라 각 메시지의 시작 부분에 메시지의 길이를 바이트로 명시
pri=INT

rfc 5424 (https://tools.ietf.org/html/rfc5424)에 정의된 PRI 상수값(기본값: 134). 이는 local0INFO 수준에 해당됩니다.

PRI 상수값은 Facility 값의 8배수에 Severity 값을 더한 값입니다. 다음 표를 참조해서 계산된 값을 사용하세요.

Facility(↓)
Severity(→)
0/Emer1/Alert2/Crit3/Error4/Warn5/Notice6/Info7/Debug
0 / kern01234567
1 / user89101112131415
2 / mail1617181920212223
3 / deamon2425262728293031
4 / auth3233343536373839
5 / syslog4041424344454647
6 / lpr4849505152535455
7 / news5657585960616263
8 / uucp6465666768697071
9 / clock7273747576777879
10 / authpriv8081828384858687
11 / ftp8889909192939495
12 / ntp96979899100101102103
13 / audit104105106107108109110111
14 / alert112113114115116117118119
15 / solaris-cron120121122123124125126127
16 / local0128129130131132133134 (기본값)135
17 / local1136137138139140141142143
18 / local2144145146147148149150151
19 / local3152153154155156157158159
20 / local4160161162163164165166167
21 / local5168169170171172173174175
22 / local6176177178179180181182183
23 / local7184185186187188189190191

설명

이 명령어는 TCP를 통해 시스로그 메시지를 전송하므로 UDP 방식과 달리 IP 패킷 단편화 문제 없이 안정적인 메시지 송신이 가능하게 해줍니다. 그러나 시스로그 서버와 연결이 끊기거나, 지연이 발생하면 전송할 시스로그 메시지 큐가 적체될 수 있습니다. sendsyslog-tcp 명령은 메시지 큐 적체를 방지하기 위해 메시지가 30초 이내에 전송되지 않으면 메시지를 버립니다. 메시지 전송 큐를 관리할 수 있도록 로그프레소 셸에서 다음과 같은 시스템 스위치를 제공합니다.

스위치설명
logpresso.tcp_sender.idle_timeout서버에서 응답이 없으면 전송을 중단할 기준1 ~ 86400초, 기본값 300 초
logpresso.tcp_sender.max_queue_time전송 시간이 오래 걸리면 전송을 중단할 기준1 ~ 600초, 기본값 30 초
logpresso.tcp_sender.max_queue_chars적체된 문자열이 너무 많으면 전송을 중단할 기준1,000,000 ~ 1,000,000,000 문자, 기본값 100,000,000(약 10MB)

스위치를 적용하려면 로그프레소 셸에서 다음과 같은 명령을 실행하세요.

set logpresso.tcp_sender.idle_timeout=300
set logpresso.tcp_sender.max_queue_time=30
set logpresso.tcp_sender.max_queue_chars=100000000

환경 설정 파일 config.sh 또는 logpresso.sh에 다음과 같이 시스템 스위치를 적용할 수 있습니다.

JAVA_OPTS="$JAVA_OPTS -Dlogpresso.tcp_sender.idle_timeout=300"
JAVA_OPTS="$JAVA_OPTS -Dlogpresso.tcp_sender.max_queue_time=30"
JAVA_OPTS="$JAVA_OPTS -Dlogpresso.tcp_sender.max_queue_chars=100000000"