본문 바로가기

Cisco

Use syslog server on Linux with Router

시스코 라우터,스위치 경우에는 로그(LOG) 데이터를 콘솔 포트를 통하여 표시하거나,
라우터 내부 버퍼에 저장하여 필요할 때마다 엔드 유저가 보는 방식을 선택한다.
그러나 이 경우에는 시스템에 Critical한 장애가 발생하면 이용이 불가능하다.

따라서 로그 데이터를 라우터,스위치 내부가 아닌 외부 시스템에 저장하는 형태의 시스템을 제공한다. 대표적인 방법은 UNIX, LINUX 에서 제공하는 “syslod” 프로그램을 이용하는 것이다. 여기서는 LINUX를 사용할 것이다.라우터의 표준 로깅 프로토콜이 LINUX의 데몬 프로그램에 자신의 로그 데이터를 전송한다. 그러면 이 로그 데이터는 LINUX 시스템의 특정 디렉토리에 저장하게 된다.


테스트 환경
1. 리눅스(CentOS) on VMWare 7.0
2. Dynamips
3. Dynagen 에서 리눅스의 Interface와 같은 서브넷을 사용할 interface 추가

[[router R1]] 
  console = 2001
  
f0/1 = NIO_gen_eth:\Device\NPF_{EA23F3A6-F92D-4321-BC68-776845054A70}
 (리눅스에서 현재 NAT 가상스위치를 사용하고 있다. 그래서 VMnet 8 의 값을 추가했다.)

라우터에서 구성
Step 0.
(config-if)#ip address 192.168.186.128 255.255.255.0
(config-if)#no shutdown

Step 1.
(config)#logging 192.168.186.3   ##Linux서버의 IP 주소
(config)#service timestamp log datetime  msec ##로그남길때 상세한 시간과 날짜 정보를 남겨라.
(config)#logging facility local5   ##남길 로그메세지 정의
(config)#exit
#copy run start


[참고]

Message Logging Keywords and Levels

Level
Keyword
Description
Syslog Definition

0

emergencies

System is unusable.

LOG_EMERG

1

alerts

Immediate action is needed.

LOG_ALERT

2

critical

Critical conditions exist.

LOG_CRIT

3

errors

Error conditions exist.

LOG_ERR

4

warnings

Warning conditions exist.

LOG_WARNING

5

notification

Normal, but significant, conditions exist.

LOG_NOTICE

6

informational

Informational messages.

LOG_INFO

7

debugging

Debugging messages.

LOG_DEBUG






리눅스 서버에서 구성

Step 2. 아래의 내용을 삽입하라.
(root)# vi /etc/syslog.conf
#Save router messages
local5.*                                                /var/log/cisco.log


참고 : 아래와 같이 자세히 로그를 분리 저장할 수 도 있다.
local5.emerg            /var/log/cisco/log.emerg

local5.alert            /var/log/cisco/log.alert

local5.crit             /var/log/cisco/log.crit

local5.err              /var/log/cisco/log.err

local5.warning          /var/log/cisco/log.warning

local5.notice           /var/log/cisco/log.notice

local5.info             /var/log/cisco/log.info

local5.debug            /var/log/cisco/log.debug


Step 3. 아래와 같이 내용을 수정하라.
 (root)# vi /etc/sysconfig/syslog
SYSLOGD_OPTIONS="-m 0 -r"


Step 4. 로그 남길 파일을 생성하라.
(root)#touch /var/log/cisco.log

Step 5. 데몬을 재시작하라.
(root)#service syslog restart

Step 6. 테스트 하라.
Linux 서버에서 아래와 같이 계속 모니터링한다.
(root)#watch tail /var/log/cisco.log

Router 에서 콘솔 메세지가 남을만한 작업을 해보라.
(config)#interface loopback 0
(config-if)#ip address 1.1.1.1 255.255.255.0

-------------

Facility/Severity Keywords Combinations

facility와 severity 키워드는 period(.)로 구분되어 있어, 특별한 source facility와 메시지의 severity와 일치한다. 예를 들어, kern.emerg는 kernel로부터의 emergency error 메시지를 가리킨다.

다음과 같은 특별한 경우가 셋있다.

• facility keyword가 마침표와 severity 키워드가 없이 지정되면, 이 키워드는 모든 레벨의 severity이다. 예를 들어, facility keyword가 mail이면, mail 메시지가 수행되는 모든 severiety level를 가리킨다.

• facility keyword에 마침표는 있고 severity 키워드가 없으면, 이것은 지정한 facility가 수행하는 동안 메시지가 없음을 가리킨다. 예를 들어, mail.none은 메시지 없이 메일이 수행됨을 의미한다.

• asterisk(*) facility는 mark facility를 제외한 모든 source facility를 의미한다. 예를 들어, *.notice는 mark를 제외한 모든 source로부터 syslog에 notice 레벨의 모든 메시지를 의미한다.

/etc/syslog.conf 엔트리에 facility/severity를 세미콜론(;)으로 구분하여 하나 이상의 여러 개를 지정할 수 있다.