rsyslog

공개
2016.06.21 23:00:59
조회수 32.1k 등록일 2016.06.21 23:36:06

1. 개요

nginx의 access log를 기준으로 1) 파일로 기록하는 경우와, 2) 파일로 기록하고 rsyslog를 이용하여 centralized server로 전송하는 경우의 시스템 자원의 사용량, 응답시간, 초당 요청 처리수를 검사한다.


2. 검사 환경

centralized server : Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz 1Core,  2GB

client server : Intel(R) Xeon(R) CPU E5-2676 v3 @ 2.40GHz 2Core, 8GB

* aws의 small, large 인스턴스로 진행하였다.


nginx version : 1.11.1

ab : 2.3, 벤치마크 툴은 ab(Apache HTTP server Benchmarking tool)를 사용한다.

1000개의 쓰레드로 100000번 요청한다. (초당 약 10000 Req)

    ex) ab -kc 1000 -n 10000  clientserver

시스템 모니터링 툴 : netdata

protocol : UDP


성능 검사는 총 3대의 서버로 진행한다.

  • 벤치마크 툴을 이용해 client server의 nginx에 요청한다.
  • client server 로 nginx access_log 를 syslog로 기록하고 다시 중앙 집결 서버에 전송한다.
  • centralized syslog server 로 로그가 전송도는 중앙 집결 서버이다.

3. 검사 항목

  • 시스템 자원
  • 응답시간
  • 손실로그
  • 초당 요청 처리수

4. 설정

  1. # client server config
  2. # vi /usr/local/nginx-1.11.1/conf/nginx.conf
  3. access_log syslog:server=unix:/dev/log,facility=local7,tag=nginx,severity=info main;
  1. # client server config
  2. # vi /usr/local/nginx-1.11.1/conf/nginx.conf
  3. *.info;mail.none;authpriv.none;cron.none                @clientserver
  1. # centralized server config
  2. # vi /etc/rsyslog.conf
  3. $ModLoad imudp
  4. $UDPServerRun 514

5. 검사

1) 파일로만 기록한 경우

req/sec : 7,875

response time : 126.970 m/s

cpu : 29.57%


2) 파일로 기록하고 rsyslog를 이용하여 centralized server로 전송


req/sec : 7,475

response time : 133.794 m/s

cpu : 34.76%


6. 결과

netdata의 CPU 사용량은 1% ~ 2%,

rsyslog 사용시 평균 약 5%의 오버헤드가 발생하였으며 많게는 15%의 오버헤드가 발생하였다.