-
[EdgeRouter] RaspberryPi로 원격 로그서버 설정Device 2021. 7. 22. 19:00
개요 EdgeRouter의 로그는 tmpfs 에 저장되므로 리부팅 되면 지워지며,
설정한 용량 보다 로그가 많이 쌓일 경우 이전 로그가 소실되게 된다.
여기서는 라즈베리 파이를 이용하여 rsyslog 로그서버 설정하는 방법에 대하여 설명한다.
라즈베리파이 설정 라즈베리파이에 기본적 rsyslog가 설치되어 있다.
■ 설치 버전 확인
$ dpkg -l | grep rsyslog ii rsyslog 8.1901.0-1 armhf reliable system and kernel logging daemon
■ 동작 상태 확인
$ sudo systemctl status rsyslog ● rsyslog.service - System Logging Service Loaded: loaded (/lib/systemd/system/rsyslog.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2021-07-22 18:13:18 KST; 23min ago Docs: man:rsyslogd(8) https://www.rsyslog.com/doc/ Main PID: 2096 (rsyslogd) Tasks: 10 (limit: 2062) CGroup: /system.slice/rsyslog.service └─2096 /usr/sbin/rsyslogd -n -iNONE Jul 22 18:13:18 raspberrypi systemd[1]: Starting System Logging Service... Jul 22 18:13:18 raspberrypi rsyslogd[2096]: imuxsock: Acquired UNIX socket '/run/systemd/journal/syslog' (fd 3) from systemd. [v8.1901.0] Jul 22 18:13:18 raspberrypi rsyslogd[2096]: [origin software="rsyslogd" swVersion="8.1901.0" x-pid="2096" x-info="https://www.rsyslog.com Jul 22 18:13:18 raspberrypi systemd[1]: Started System Logging Service.
■ rsyslog 설정
▷외부에서 라즈베리파이의 rsyslog에 로그를 전달 할 수 있게 udp 또는 tcp 포트를 열도록 설정한다.
- /etc/rsyslog.conf 파일을 열어 다음 부분과 같이 tcp또는 udp 부분의 주석을 제거하면 된다.
# provides UDP syslog reception module(load="imudp") input(type="imudp" port="514") # provides TCP syslog reception module(load="imtcp") input(type="imtcp" port="514")
▷ 그냥 로그를 저장하게 되면 외부에서 발생한 로그와 라즈베리파이 내부에서발생한 로그의 구분이 안되므로 별도의 파일에 저장되도록 설정한다.
- /etc/rsyslog.d/router.conf 파일을 생성하고
- 다음과 같이 내용을 채운다, 여기서는 router.log 파일에 로그가 저장되도록 하였다.
# 템플릿 생성 $template routerlog, "/var/log/router.log" # 특정 호스트로 부터 수신된 로그를 routerlog 템플릿에 저장 if $fromhost-ip startswith "192.168.1.1" then { # authpriv 의 info는 제외: 관심없는 로그는 빼고 로그 파일에 저장 또는 별도의 파일에 저장 *.*;authpriv.!info-?routerlog }
authpriv.info 를 제외하는 이유는 다음과 같은 로그가 몇초 주기로 찍히기 때문이다.
Jul 22 18:13:18 EdgeRouter-Lite-3-Port sudo: pam_unix(sudo:session): session closed for user root
Jul 22 18:13:18 EdgeRouter-Lite-3-Port sudo: root : TTY=unknown ; PWD=/ ; USER=root ; COMMAND=/sbin/iptables -t nat -L UBNT_PFOR_DNAT_RULES -vnx
Jul 22 18:13:18 EdgeRouter-Lite-3-Port sudo: pam_unix(sudo:session): session opened for user root by (uid=0)
Jul 22 18:13:18 EdgeRouter-Lite-3-Port sudo: pam_unix(sudo:session): session closed for user root■ rsyslog 서비스 재시작
$ sudo systemctl restart rsyslog
EdgeRouter 설정 ■ 리모트 로그서버 설정
라우터 쉘로 접속하여 다음 명령어 포맷으로 입력하면 된다.
configure set system syslog host <server-ip> facility all level <severity-level> commit ; save
라즈베리 파이 ip가 192.168.1.230 이고 모든 로그를 전달 하려면 다음과 같이 설정한다.
configure set system syslog host 192.168.1.230 facility all level debug commit ; save
레벨은 다음과 같은 값을 사용 할 수 있다.
목록에서 아래에 있는 값일 수록 더 많은 정보를 표시하게 되는데, info 레벨 정도가 적당한듯 하다.
Possible completions: emerg Emergency messages alert Urgent messages crit Critical messages err Error messages warning Warning messages notice Messages for further investigation info Informational messages debug Debug messages
■ DHCP 로그 설정
기본적으로 dhcp 관련 로그가 로그에 남지 않는다.
활성화 하기 위해서는 다음과 같이 라우터 쉘에서 명령어를 입력한다.
configure set service dhcp-server global-parameters 'log-facility local2;' commit save exit
참고자료 https://community.ui.com/questions/Log-file-management/6cefb845-52e0-47cc-96bb-e2baf84ec329
https://community.ui.com/questions/DHCP-Lease-Log/772c974c-fcc7-4db3-9137-1e0de34ff5f3
https://eang.it/use-the-raspberry-pi-as-a-syslog-server-using-rsyslog/
https://pimylifeup.com/raspberry-pi-syslog-server/
https://kifarunix.com/a-basic-introduction-to-rsyslog-filters/
728x90반응형