크라켄 SIEM을 이용한 네트워크 로그 수집 튜토리얼 크라켄북

이번 튜토리얼에서는 간단하게 syslog와 snmp trap을 수신하여 크라켄 로그DB에 쌓고 조회하는 방법을 다룹니다.

아래 경로에서 최신 버전의 크라켄 코어를 다운로드 합니다.

아래 명령으로 크라켄 코어를 실행합니다. (-Xmx 등 적절한 메모리 옵션을 주면 좋음)
java -jar kraken-core-1.14.5-package.jar

텔넷 7004번 포트를 통해 크라켄 콘솔에 접속합니다. (putty나 SecureCRT 등 사용)
기본으로 설치되어 있는 계정은 root, 패스워드는 kraken 입니다.

login as: root
password:
Kraken (version 1.14.5)

kraken 프롬프트가 뜨면 pkg.install kraken-siem 명령으로 SIEM 패키지를 설치합니다.

kraken@xeraph-pc demo> pkg.install kraken-siem
Resolving {groupId: org.apache.felix, artifactId: org.apache.felix.ipojo, version: 1.4.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.apache.felix.ipojo 1.4.0

Resolving {groupId: org.jboss.netty, artifactId: netty, version: 3.2.2.Final}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.jboss.netty 3.2.2.Final

Resolving {groupId: org.krakenapps, artifactId: kraken-ipojo, version: 1.1.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.ipojo 1.1.0

Resolving {groupId: org.krakenapps, artifactId: kraken-log-api, version: 1.4.1}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.log.api 1.4.1

Resolving {groupId: org.krakenapps, artifactId: kraken-event-api, version: 1.2.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.event.api 1.2.0

Resolving {groupId: org.krakenapps, artifactId: kraken-firewall-api, version: 1.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.firewall.api 1.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-iptables, version: 1.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.iptables 1.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-msgbus, version: 1.3.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.msgbus 1.3.0

Resolving {groupId: org.krakenapps, artifactId: kraken-webconsole, version: 2.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.webconsole 2.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-util, version: 1.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.util 1.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-json, version: 1.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.org.json 1.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-logstorage, version: 1.9.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.logstorage 1.9.0

Resolving {groupId: org.krakenapps, artifactId: kraken-logdb, version: 0.5.1}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.logdb 0.5.1

Resolving {groupId: org.krakenapps, artifactId: kraken-logdb-geoip, version: 1.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.logdb.geoip 1.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-geoip, version: 1.2.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.geoip 1.2.0

Resolving {groupId: org.krakenapps, artifactId: kraken-codec, version: 2.1.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.codec 2.1.0

Resolving {groupId: org.krakenapps, artifactId: kraken-dom, version: 2.6.2}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.dom 2.6.2

Resolving {groupId: org.krakenapps, artifactId: kraken-rule, version: 1.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.rule 1.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-http-rule, version: 1.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.rule.http 1.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-logfile-parser, version: 1.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.logfile.parser 1.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-syslog-parser, version: 1.1.1}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.syslog.parser 1.1.1

Resolving {groupId: org.krakenapps, artifactId: kraken-bnf, version: 1.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.bnf 1.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-ahocorasick, version: 1.2.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.ahocorasick 1.2.0

Resolving {groupId: org.krakenapps, artifactId: kraken-xmlrpc, version: 1.1.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.xmlrpc 1.1.0

Resolving {groupId: org.krakenapps, artifactId: kraken-isc-api, version: 1.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.isc.api 1.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-mail, version: 1.1.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.mail 1.1.0

Resolving {groupId: org.krakenapps, artifactId: kraken-rpc, version: 1.4.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.rpc 1.4.0

Resolving {groupId: org.krakenapps, artifactId: kraken-siem, version: 1.3.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.siem 1.3.0

Resolving {groupId: org.krakenapps, artifactId: kraken-servlet-api, version: 3.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.servlet.api 3.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-syslog, version: 1.3.2}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.syslog 1.3.2

Resolving {groupId: org.krakenapps, artifactId: kraken-filter, version: 1.3.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.filter 1.3.0

Resolving {groupId: org.krakenapps, artifactId: kraken-snmp, version: 1.2.1}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.snmp 1.2.1

Resolving {groupId: org.snmp4j, artifactId: snmp4j, version: 1.11.1}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.snmp4j 1.11.1

Resolving {groupId: org.krakenapps, artifactId: kraken-syslogmon, version: 1.0.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.syslogmon 1.0.0

Resolving {groupId: org.krakenapps, artifactId: kraken-snmpmon, version: 0.2.0}
  -> trying to download from http://download.krakenapps.org/
  -> resolved
  -> installing: org.krakenapps.snmpmon 0.2.0

Resolving {groupId: commons-codec, artifactId: commons-codec, version: 1.4}
  -> trying to download from http://download.krakenapps.org/
  -> trying to download from http://repo1.maven.org/maven2/
  -> resolved
  -> installing: org.apache.commons.codec 1.4

Starting Bundles
  -> [OK] org.apache.felix.ipojo 1.4.0
  -> [OK] org.jboss.netty 3.2.2.Final
  -> [OK] org.krakenapps.ipojo 1.1.0
  -> [OK] org.krakenapps.log.api 1.4.1
  -> [OK] org.krakenapps.event.api 1.2.0
  -> [OK] org.krakenapps.firewall.api 1.0.0
  -> [OK] org.krakenapps.iptables 1.0.0
  -> [OK] org.krakenapps.msgbus 1.3.0
  -> [OK] org.krakenapps.webconsole 2.0.0
  -> [OK] org.krakenapps.util 1.0.0
  -> [OK] org.krakenapps.org.json 1.0.0
  -> [OK] org.krakenapps.logstorage 1.9.0
  -> [OK] org.krakenapps.logdb 0.5.1
  -> [OK] org.krakenapps.logdb.geoip 1.0.0
  -> [OK] org.krakenapps.geoip 1.2.0
  -> [OK] org.krakenapps.codec 2.1.0
  -> [OK] org.krakenapps.dom 2.6.2
  -> [OK] org.krakenapps.logfile.parser 1.0.0
  -> [OK] org.krakenapps.syslog.parser 1.1.1
  -> [OK] org.krakenapps.rule 1.0.0
  -> [OK] org.krakenapps.rule.http 1.0.0
  -> [OK] org.krakenapps.bnf 1.0.0
  -> [OK] org.krakenapps.ahocorasick 1.2.0
  -> [OK] org.krakenapps.xmlrpc 1.1.0
  -> [OK] org.krakenapps.mail 1.1.0
  -> [OK] org.krakenapps.rpc 1.4.0
  -> [OK] org.krakenapps.siem 1.3.0
  -> [OK] org.krakenapps.servlet.api 3.0.0
  -> [OK] org.krakenapps.syslog 1.3.2
  -> [OK] org.krakenapps.filter 1.3.0
  -> [OK] org.krakenapps.snmp 1.2.1
  -> [OK] org.krakenapps.syslogmon 1.0.0
  -> [OK] org.krakenapps.snmpmon 0.2.0
  -> [OK] org.snmp4j 1.11.1

Complete!

나중에 GEOIP 쿼리를 하려면 데이터셋을 설치해야 하니 geoip.install 명령을 사용하여 설치합시다.

kraken@xeraph-pc demo> geoip.install
downloading geoip city data
unzipping geoip_blocks.bin
unzipping geoip_locs.csv
unzipping geoip_locs.idx
install completed

제대로 GEOIP 데이터셋이 설치되었는지 한 번 구글 DNS 서버 주소를 쳐서 확인해봅시다.

kraken@xeraph-pc demo> geoip.locate 8.8.8.8
id=2703, country=US, region="CA", city="Mountain View", latitude=37.419200, longitude=-122.057400

크라켄 SIEM은 크라켄 로그 API를 기반으로 다양한 로거, 로그 파서, 로그 정규화 모듈을 런타임에 설치하여 확장할 수 있도록 설계되어 있습니다. 대부분은 팩토리와 인스턴스로 나뉘어있는데, 일반적으로 팩토리에 이런저런 설정 옵션들을 주어 인스턴스를 만들어내게 되어있습니다. 

가령, 아파치 웹 로그의 경우 LogFormat "%v: %h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined 이런 식으로 설정한 로그 포맷에 맞추어 로그가 남게 되는데, 나중에 로그를 파싱할 때도 이런 다양한 설정 옵션에 맞추어 파서를 만들어 낼 수 있어야 합니다. 그래서 로그 파서 팩토리가 파싱 옵션들을 넘겨받아 파서 인스턴스를 만들어내도록 되어있습니다. 현재 지원되는 로거 팩토리의 목록을 먼저 확인해보겠습니다.

kraken@xeraph-pc demo> logapi.loggerFactories
Logger Factories
---------------------
fullname=local\snmpmon, type=network usage logger, description=network usage logs using SNMP query
fullname=local\syslog, type=syslog logger, description=syslog logger
fullname=local\snmptrap, type=snmp trap logger, description=snmp trap logger
fullname=local\textfile, type=text file logger, description=text file logger

기본적으로 텍스트 파일, Syslog, SNMP 트랩, SNMP 쿼리를 이용한 로그 수집을 지원하고 있습니다.

이제 주니퍼 넷스크린 장비의 syslog를 수집하여 저장하고 쿼리하는 시나리오를 상정해봅시다. 아래와 같이 아무런 인자 없이 logapi.createLogger 명령어만 치게 되면 명령어에 맞는 적절한 도움말이 표시됩니다.

kraken@xeraph-pc demo> logapi.createLogger
Description

        create new logger

Arguments

        1. logger factory name: logger factory name. try logapi.loggerFactories command. (required)
        2. logger namespace: new logger namespace (required)
        3. logger name: new logger name (required)
        4. description: the description of new logger (required)

장비의 IP가 10.0.0.1이고 syslog를 전송할 때 사용할 facility가 local0 이라고 가정한다면,

kraken@xeraph-pc demo> logapi.createLogger syslog local firewall#1 "sample netscreen firewall"
remote ip (required)? 10.0.0.1
syslog facility (required)? 16
logger created: name=local\firewall#1, factory=local\syslog, status=stopped, log count=0, last log=null, last run=null

위와 같이 설정 옵션을 물어올 때, 원격지 IP와 facility 값을 입력해줍니다. (syslog facility 값은 http://tools.ietf.org/html/rfc5424 참고) 이 때 여러 개의 facility를 쉼표 (,)로 구분하여 입력할 수 있습니다.

firewall#1 로거를 시작시킵니다. syslog는 passive 하게 수신되므로 run interval은 실제 의미가 없으니 1000 이상의 적당한 값을 줍니다. (이후 버전에서는 passive logger가 run interval 매개변수를 받지 않도록 변경될 것입니다.)

kraken@xeraph-pc demo> logapi.startLogger local\firewall#1 10000
logger started

이제 local\firewall#1 이라는 이름의 로거는 10.0.0.1으로부터 전송되는 facility가 local0인 모든 syslog를 수신하게 됩니다.

위의 설정은 syslog가 전달될 때 분류해서 받는 것에 불과하고, 실제로는 SyslogReceiver를 열어야 로그가 수신됩니다.
아래와 같이 syslog.load 명령으로 새로운 syslog 수신기를 설정합니다. UDP 포트 번호와, 텍스트 해석에 사용할 인코딩을 지정합니다.

kraken@xeraph-pc demo> syslog.load
syslog receiver name: default
bind address (default to localhost): 0.0.0.0
bind port (default to 514):
charset (default to utf-8):

이제 syslog.list 명령을 쳐보면, 아래와 같이 syslog 수신기가 열려있는 것을 확인할 수 있습니다.

kraken@xeraph-pc demo> syslog.list
==========================
Syslog Receiver List
==========================
filter name = default, listen = 0.0.0.0:514, encoding = utf-8

이 상태에서 실시간으로 syslog를 트레이스 해보고 싶다면 아래 명령어를 입력하여 모니터링 할 수 있습니다.
만약 로그를 분명히 보내고 있는데 화면에 syslog가 출력되지 않는다면, 서버의 방화벽이나 외부의 방화벽 설정을 확인하도록 합시다.

kraken@unknown kraken> syslog.trace default
[2012-02-12 23:22:14.365+0900] (/211.174.xxx.xxx:57537) => [fc:16, sv:5] ****_KIDC_Left: NetScreen device_id=****_KIDC_Left  [Root]system-notification-00257(traffic): start_time="2012-02-12 23:22:15" duration=0 policy_id=1568 service=tcp/port:8014 proto=6 src zone=Untrust dst zone=Trust action=Deny sent=0 rcvd=32 src=121.254.152.50 dst=211.233.xxx.xxx src_port=61223 dst_port=8014 session_id=0
[2012-02-12 23:22:14.369+0900] (/211.174.xx.xxx:57537) => [fc:16, sv:5] ****_KIDC_Left: NetScreen device_id=****_KIDC_Left  [Root]system-notification-00257(traffic): start_time="2012-02-12 23:22:15" duration=0 policy_id=1583 service=dns proto=17 src zone=Untrust dst zone=Trust action=Deny sent=0 rcvd=46 src=219.147.1.102 dst=211.233.xxx.xxx src_port=58477 dst_port=53 session_id=0

모니터링을 중단하려면 Ctrl-C를 누릅니다.

실제 로그가 전송되고 있고 지금까지 설정을 잘 했다면, 아래와 유사한 로거 상태를 확인할 수 있습니다.

Loggers
----------------------
name=local\firewall#1, factory=local\syslog, status=running, log count=8675813, last log=2012-02-12 23:27:16, last run=2012-02-12 23:27:12
name=local\openssh, factory=local\textfile, status=running, log count=10982, last log=2012-02-12 22:48:45, last run=2012-02-12 23:27:15

크라켄 로그 API를 통해 로그가 흘러다니는지 점검하려면, 

kraken@unknown kraken> logapi.trace local\firewall#1
tracing logger: name=local\firewall#1, factory=local\syslog, status=running, log count=9423435, last log=2012-02-12 23:31:36, last run=2012-02-12 23:31:34
local\firewall#1: date=2012-02-12 23:31:36, logger=local\firewall#1, msg=null

중단하려면 Ctrl-C를 누릅니다. Syslog를 트레이스 하는 것은 Syslog 수신기에서 바로 받아졌는지 확인하는 것이고, 크라켄 로그 API로 트레이스하는 것은 로그 처리 파이프라인에 들어왔는지 점검하는 의미가 있습니다. 런타임에 설치되는 어떤 모듈이라도 로그 파이프라인을 연결하면 실시간으로 로그를 수신하여 처리할 수 있습니다. 개발자가 아니라면 중요한 내용이 아니니 잘 이해되지 않는다면 넘어갑시다.

지금까지 따라왔다고 해도 로그가 임의의 로그 처리기에 공급될 수 있도록 흘러다닐 뿐이지 저장되지는 않습니다. 로그를 저장하려면 아래와 같이 설정합니다.

kraken@xeraph-pc demo> siem.createLogger localhost local\firewall#1
created

아래와 같이 설정이 들어간 것을 확인할 수 있습니다.

kraken@xeraph-pc demo> siem.loggers
Managed Loggers
-------------------
fullname=local\firewall#1, enabled=true

이 시점부터는 전달되는 모든 로그가 크라켄 로그DB에 저장됩니다. 로그가 들어왔는지 limit=1 옵션을 걸어서 1개만 쿼리해봅시다.

kraken@unknown kraken> logdb.query "table limit=1 local\firewall#1"
{_id=9662665, _table=local\firewall#1, _time=Sun Feb 12 23:40:46 KST 2012, facility=16, line=****_KIDC_Left: NetScreen device_id=****_KIDC_Left  [Root]system-notification-00257(traffic): start_time="2012-02-12 23:40:36" duration=9 policy_id=1651 service=http proto=6 src zone=Untrust dst zone=Trust action=Permit sent=1172 rcvd=1277 src=122.37.56.32 dst=211.233.xxx.xxx src_port=57605 dst_port=80 src-xlated ip=122.37.56.32 port=57605 dst-xlated ip=211.233.xxx.xxx port=80 session_id=459988 reason=Close - TCP FIN, severity=5}
0.1s

아래의 쿼리는 1분 간격으로 1시간 동안의 로그 발생 추이를 조사합니다.

kraken@unknown kraken> logdb.query "table duration=1h local\firewall#1 | timechart span=1m count"
{_time=Sun Feb 12 22:58:00 KST 2012, count=26223}
{_time=Sun Feb 12 22:59:00 KST 2012, count=27221}
...
{_time=Sun Feb 12 23:57:00 KST 2012, count=25890}
{_time=Sun Feb 12 23:58:00 KST 2012, count=373}
29.5s

크라켄 로그DB는 원본을 그대로 저장하기 때문에 line 키에 연결된 값으로 syslog로 전송된 원문 텍스트를 보관합니다. 그런데 이 상태로 단순한 문자열 패턴매칭 정도는 가능하겠지만, 좀 더 유용한 통계를 뽑아내기는 어렵습니다. 여기에 로그 파서를 설정하면 파싱된 결과를 얻어볼 수 있습니다.

kraken@unknown kraken> logstorage.table local\firewall#1 logparser netscreen-isg
set logparser to netscreen-isg

local\firewall#1 로그 테이블의 메타데이터로 logparser를 netscreen-isg로 설정했습니다. 설정 가능한 로그 파서의 목록은 다음과 같이 확인할 수 있습니다.

kraken@unknown kraken> logapi.parserFactories
Log Parser Factories
----------------------
fortigate
delimiter
netscreen-isg
httpd
weguardia
openssh
snort

이제 다시 쿼리를 수행해봅시다.

kraken@unknown kraken> logdb.query "table limit=1 local\firewall#1"
{_id=9622699, _table=local\firewall#1, _time=Sun Feb 12 23:39:19 KST 2012, action=Deny, category=traffic, device_id=****_KIDC_Left, dst=211.233.xxx.xxx, dst zone=Trust, dst_port=25, duration=0, facility=16, policy_id=1568, proto=6, rcvd=24, sent=0, service=smtp (tcp), session_id=0, severity=5, src=117.53.114.151, src zone=Untrust, src_port=45019, start_time=2012-02-12 23:39:20}
0.1s

로그가 실시간으로 들어오고 있기 때문에 데이터가 바뀌긴 했지만 잘 보면 이전 쿼리와 달리 키/값 쌍으로 분리되어 있는 것을 확인할 수 있습니다.

이제 좀 더 복잡한 쿼리를 해봅시다. 아래는 목적지 포트가 1025 이상인 차단 로그를 대상으로 출발지IP-목적지IP-목적지포트 쌍을 통계내어 상위 20개를 뽑아내고 국가코드를 확인한 것입니다.

kraken@unknown kraken> logdb.query "table duration=1h local\firewall#1 | search action != Permit | search dst_port > 1024 | stats count by src, dst, dst_port | s rt limit=20 -count | lookup geoip src output country | fields country, src, dst, dst_port, count"
{count=54910, country=KR, dst=121.254.xxx.xxx, dst_port=2351, src=168.126.63.2}
{count=1108, country=KR, dst=211.233.xxx.xxx, dst_port=8014, src=210.124.157.10}
{count=392, country=KR, dst=211.233.xxx.xxx, dst_port=8014, src=112.217.3.129}
{count=199, country=KR, dst=211.233.xxx.xxx, dst_port=8014, src=58.229.65.196}
{count=175, country=KR, dst=211.233.xxx.xxx, dst_port=21002, src=211.198.173.79}
{count=172, country=KR, dst=211.233.xxx.xxx, dst_port=8014, src=121.254.152.54}
{count=164, country=KR, dst=211.233.xxx.xxx, dst_port=21002, src=121.254.157.236}
{count=158, country=KR, dst=211.233.xxx.xxx, dst_port=8014, src=121.254.152.49}
{count=150, country=KR, dst=211.233.xxx.xxx, dst_port=8014, src=121.254.152.50}
{count=150, country=KR, dst=211.233.xxx.xxx, dst_port=8014, src=121.254.152.52}
{count=148, country=KR, dst=211.233.xxx.xxx, dst_port=21002, src=121.254.157.235}
{count=146, country=KR, dst=211.233.xxx.xxx, dst_port=21002, src=211.219.13.56}
{count=144, country=KR, dst=211.233.xxx.xxx, dst_port=8014, src=121.254.152.51}
{count=79, country=CN, dst=211.233.xxx.xxx, dst_port=8080, src=58.41.170.73}
24.3s

지금까지 syslog를 수집하고 쿼리하는 과정을 다루었습니다. SNMP Trap의 경우에도 유사하게 설정할 수 있는데, snmptrap 로거를 사용하면 됩니다.
kraken@unknown kraken> logapi.createLogger snmptrap local firewall#2 "firewall #2"
remote ip (required)? 10.0.0.2
logger created: name=local\firewall#2, factory=local\snmptrap, status=stopped, log count=0, last log=null, last run=null

이후 과정은 syslog 설정 시나리오와 동일합니다.

로그DB를 이용한 또다른 쿼리 시나리오는 아래 문서를 참고하시기 바랍니다. 이 문서는 로그DB에 저장하지 않고 원본 텍스트 로그 파일을 대상으로 즉시 쿼리하는 방법을 설명합니다.



트랙백

이 글과 관련된 글 쓰기 (트랙백 보내기)
TrackbackURL : http://xeraph.com/tb/5604870 [도움말]

덧글

댓글 입력 영역