728x90
Fluentd 에서 http로 다른 서버로 로그 전송 후 로그를 받은 서버에서 log analytics로 전송하도록 만들었다.
로그 전송 서버
<source>
@type tail
encoding utf-8
<parse>
@type regexp
expression /^\[(?<timestamp>\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2})\]\[(?<jsession_id>.*?)\] \[(?<method>.*?)\] (?<result>.*?)$/
</parse>
path <logPath>/%Y-%m-%d.txt
pos_file /tmp/fluent/log_file.pos
tag test.t1
</source>
<filter test.t1>
@type record_modifier
char_encoding utf-8
<record>
host_ip "#{Socket.ip_address_list.find { |ai| ai.ipv4? && !ai.ipv4_loopback? }.ip_address}"
</record>
</filter>
<match test.t1>
@type http
endpoint http://<ip>:24224/jcgf.member
json_array true
<buffer>
flush_interval 2s
</buffer>
</match>
로그 수집 서버
<source>
@type http
port 24224
bind 0.0.0.0
<parse>
@type json
time_key nil
</parse>
</source>
<filter test.**>
@type record_modifier
char_encoding utf-8
</filter>
<match test.t2>
@type azure-loganalytics
customer_id <customer_id>
shared_key <shared_key>
log_type testT2
add_time_field true
time_field_name testtime
time_format %FT%T%z
localtime true
</match>
<match test.t1>
@type azure-loganalytics
customer_id <customer_id>
shared_key <shared_key>
log_type testT1
add_time_field true
time_field_name testtime
time_format %FT%T%z
localtime true
</match>
<match test.t3.**>
@type azure-loganalytics
customer_id <customer_id>
shared_key <shared_key>
log_type testT3
add_time_field true
time_field_name testtime
time_format %FT%T%z
localtime true
</match>
수집 서버는 로그를 수집하는 동시에 json 타입으로 파싱 후 utf-8 인코딩 방식으로 인코딩을 한 후에 log analytics로 전송한다.
TEST
test 툴 : JMETER
사용 쓰레드 : 10
쓰레드 당 요청 건 : 10000
걸린시간 : 14분 35초
요청 넣은 url : /index/login
로그 전송 서버
CPU : 0~9%
MEM : 0~2.1%
로그 수집 서버
CPU : 0.3 ~ 1.7 %
MEM : 0.8 ~ 0.9 %
728x90
'Fluentd > 적용' 카테고리의 다른 글
Fluentd from ASCII-8BIT to UTF-8 error (0) | 2022.07.31 |
---|---|
Fluentd Config 파일 분리하기 (0) | 2022.07.25 |
Fluentd + Azure Loganalytics (0) | 2022.07.25 |
Fluentd Installation ( ruby gem ) (0) | 2022.07.25 |
Fluentd access log 500 에러만 남기기 (0) | 2022.06.23 |
Comment