5.데이터 조회

Edit

5.1table

문법

table [offset=숫자] [limit=숫자] [duration=단위시간] [from=yyyyMMddHHmmss] [to=yyyyMMddHHmmss] [window=단위시간] 테이블1, [테이블2], …

로그프레소 테이블에 저장된 데이터를 조회합니다.

offset

건너 뛸 로그 갯수

limit

가져올 최대 로그 갯수

duration

현재 시각으로부터 일정 시간 범위 이내의 로그로 한정. s(초), m(분), h(시), d(일), mon(월) 단위로 지정할 수 있습니다. 예를 들면, 10s의 경우 현재 시각으로부터 10초 이전까지의 범위를 의미합니다.

from

yyyyMMddHHmmss 포맷으로 범위의 시작을 지정합니다. 뒷자리까지 쓰지 않으면 0으로 채워집니다. 가령 20130605를 입력하는 경우 2013년 6월 5일 0시 0분 0초로 지정됩니다.

to

yyyyMMddHHmmss 포맷으로 범위의 끝을 지정합니다. 뒷자리까지 쓰지 않으면 0으로 채워집니다.

window

쿼리 시작 시점으로부터 일정 시간 범위 이내의 테이블 입력을 수신합니다. s(초), m(분), h(시), d(일), mon(월) 단위로 지정할 수 있습니다. 예를 들면, 10s의 경우 쿼리 시작 시점으로부터 10초까지의 범위를 의미합니다. window 옵션을 사용하는 경우 from, to, duration 옵션을 사용할 수 없습니다.

테이블명 뒤에 물음표(?)를 붙이면 해당 테이블이 존재하지 않아도 에러가 발생하지 않습니다. 가령, test라는 테이블이 존재하지 않을때 table test 라는 쿼리를 실행하면 에러가 발생하지만, table test? 라는 쿼리를 실행하면 에러 없이 쿼리가 수행되며 결과 0건이 출력됩니다.

테이블 이름 지정 시 와일드카드를 사용할 수 있습니다. 가령, table *_FGT 쿼리를 사용하면 이름이 _FGT로 끝나는 모든 테이블을 동시에 조회합니다. 와일드카드를 사용할 때 읽기 권한이 없는 테이블은 배제됩니다.

범위 검색은 [from, to) 로 처리됩니다. 즉, from으로 지정된 시각은 포함하고 to로 지정된 시각은 포함하지 않는다는 의미입니다. from과 to 시각을 초 단위까지 같게 하면 결과가 나오지 않습니다.

테이블 이름 대신 다음과 같은 함수 형태의 표현으로 테이블을 필터링하여 조회 대상을 지정할 수 있습니다.

table meta("메타데이터 조건식", ["와일드카드 패턴을 포함한 테이블 식별자", ...])
메타데이터 조건식

"키 == 값" 형태 혹은 "키 != 값" 형태의 조건식을 and나 or로 연결할 수 있습니다. 키는 테이블 메타데이터의 키 이름을 의미하며 와일드카드를 사용할 수 없습니다. 값은 테이블 메타데이터의 값을 의미하며 와일드카드 패턴을 사용할 수 있습니다.

테이블 식별자

특정한 패턴의 이름을 가진 테이블에 대해서만 조회하고자 할 경우 이용합니다. 아무것도 적지 않을 경우 모든 테이블에 대해 매칭을 시도합니다.

사용 예

1) sys_cpu_logs 테이블에서 최근 100건의 로그를 조회

table limit=100 sys_cpu_logs

2) sys_cpu_logs 테이블에서 최근 10분 간의 로그를 조회

table duration=10m sys_cpu_logs

3) sys_cpu_logs 테이블에서 2013년 6월 5일의 전체 로그를 조회

table from=20130605 to=20130606 sys_cpu_logs

4) sys_cpu_logs 테이블과 sys_mem_logs 테이블의 모든 로그를 순서대로 조회

table sys_cpu_logs, sys_mem_logs

5) 테이블의 파서가 openssh인 테이블만을 조회

table meta("parser==openssh")

5.2fulltext

문법

fulltext [offset=숫자] [limit=숫자] [duration=단위시간] [from=yyyyMMddHHmmss] [to=yyyyMMddHHmmss] 불린표현식 [from 테이블1.인덱스1,테이블1.인덱스2, 테이블2, ... ]
offset

건너 뛸 로그 갯수

limit

가져올 최대 로그 갯수

duration

현재 시각으로부터 일정 시간 범위 이내의 로그로 한정. s(초), m(분), h(시), d(일), mon(월) 단위로 지정할 수 있습니다. 예를 들면, 10s의 경우 현재 시각으로부터 10초 이전까지의 범위를 의미합니다.

from

yyyyMMddHHmmss 포맷으로 범위의 시작을 지정합니다. 뒷자리까지 쓰지 않으면 0으로 채워집니다. 가령 20130605를 입력하는 경우 2013년 6월 5일 0시 0분 0초로 지정됩니다.

to

yyyyMMddHHmmss 포맷으로 범위의 끝을 지정합니다. 뒷자리까지 쓰지 않으면 0으로 채워집니다.

풀텍스트 인덱스를 이용하여 데이터를 검색합니다. 불린표현식은 각 검색 문자열을 and, or, not으로 조합한 수식을 의미합니다. 가령, 1.2.3.4와 80 문자열이 모두 포함된 로그를 검색하려면, "1.2.3.4" and "80"을 입력합니다. 검색 문자열은 대소문자를 가리지 않습니다. 또한 불린표현식의 일부를 서브쿼리 형태로 작성할 수 있습니다. fulltext 명령은 []로 묶인 서브쿼리를 인식하며, 인덱스 검색을 수행하기 전에 해당 쿼리를 먼저 수행합니다. 서브쿼리 수행 결과에 등장하는 모든 term 에 대해 검색을 시도하게 되어 있습니다만, fulltext 명령 안에 들어가는 텀의 갯수가 많아질수록 인덱스 탐색 속도가 느려지니 주의하십시오. 대부분의 경우 fields 명령으로 꼭 필요한 필드만 추려내는 작업이 필요합니다.

불린표현식 앞에 from, to 옵션을 이용하여 검색 범위를 지정할 수 있습니다. yyyyMMddHHmmss 포맷으로 입력하는데, 만약 앞부분만 입력하면 나머지 자리는 0으로 채워집니다. 즉, from=20130605 으로 입력하면 2013년 6월 5일 0시 0분 0초 이후의 로그를 검색하게 됩니다. from이나 to 옵션을 입력하지 않으면 모든 일자의 인덱스를 조회하게 됩니다. 테이블 이름만 지정하게 되면 해당 테이블의 모든 인덱스를 조회하게 됩니다. 만약 같은 테이블이나 인덱스를 여러번 지정하게 되면, 동일한 검색 결과가 해당 횟수만큼 중복되어 출력됩니다.

range 함수를 이용하면 정수 범위를 지정하여 풀텍스트 검색을 수행할 수 있습니다. 가령, fulltext range(1, 5) 구문은 fulltext "1" or "2" or "3" or "4" or "5" 와 동일한 표현입니다. 다만, range 매개변수로 넣을 수 있는 최소, 최대 값의 차이는 65535를 넘지 못합니다. 65535보다 큰 정수 범위가 주어지는 경우 쿼리가 실패합니다.

iprange 함수를 이용하면 IP 범위를 지정하여 풀텍스트 검색을 수행할 수 있습니다. 가령, fulltext iprange("1.1.1.1", "1.1.1.4") 구문은 fulltext "1.1.1.1" or "1.1.1.2" or "1.1.1.3" or "1.1.1.4" 와 동일한 표현입니다. 검색할 수 있는 ip 범위 크기엔 제한이 없으나 범위에 비례하여 검색 속도가 느려지는 점을 주의하십시오.

사용 예

1) 전체 테이블에서 2013년 6월 5일 로그 중 1.2.3.4를 포함한 로그 검색

fulltext from=20130605 to=20130606 "1.2.3.4"

2) iis 테이블에서 cmdshell을 포함한 모든 웹 로그 검색

fulltext "cmdshell" from iis

3) iis 테이블에서 game을 포함하면서 MSIE 혹은 Firefox 문자열이 포함된 모든 웹 로그 검색

fulltext "game" and ("MSIE" or "Firefox") from iis

4) iis 테이블에서 400~500 범위의 숫자를 문자열로 포함한 웹 로그 검색

fulltext range(400, 500) from iis

5) iis 테이블에서 블랙리스트 DB의 IP 집합을 검색

fulltext [ dbquery black select ip from ip_blacklist ] from iis

6) 테이블의 파서가 openssh인 테이블 집합을 대상으로 풀텍스트 검색

fulltext "term" from meta("parser==openssh")

5.3textfile

문법

textfile [offset=숫자] [limit=숫자] [brex="정규표현식"] [erex="정규표현식"] [df="날짜포맷"] [dp="날짜추출정규표현식"] [cs=문자집합] 파일경로

텍스트 파일에서 데이터를 조회합니다. 정규표현식으로 사용하여 여러개의 줄로 구성된 데이터의 시작과 끝을 인식시킬 수 있습니다. 텍스트 파일에서 조회한 각 레코드는 line 필드를 포함합니다. 파일경로에 와일드카드(*)를 사용하면 특정 문자열 패턴을 포함한 모든 파일을 한 번에 조회할 수 있습니다.

읽을 파일의 확장자가 .gz이면 자동으로 gzip파일로 인식하여 압축 해제 후 조회할 수 있습니다.
(ENT #2241 2019-04-23_17-20 일자 버전부터 지원)
offset

건너뛸 레코드 갯수

limit

가져올 최대 레코드 갯수

brex

다수의 줄로 구성된 하나의 레코드를 구분할 수 있도록, 레코드 시작 줄을 판정하는 정규표현식을 입력합니다. brex 정규표현식이 매칭되는 줄이 나오기 전까지 하나의 레코드로 병합합니다. 미지정 시 CR LF 혹은 LF 기준으로 각 줄을 하나의 레코드로 인식합니다.

erex

다수의 줄로 구성된 하나의 레코드를 구분할 수 있도록, 레코드 마지막 줄을 판정하는 정규표현식을 입력합니다. erex 정규표현식이 매칭되는 줄이 나오기 전까지 하나의 레코드로 병합합니다. 미지정 시 CR LF 혹은 LF 기준으로 각 줄을 하나의 레코드로 인식합니다.

dp

dp 옵션으로 날짜 추출 정규표현식을 입력하면, df 옵션으로 지정된 타임스탬프 포맷으로 파싱하여 _time 필드를 추출합니다. 미지정 시 _time 필드 값이 데이터 로딩 시점의 시각으로 결정됩니다.

df

_time 필드 추출에 필요한 타임스탬프 포맷을 입력합니다. 예를 들어, yyyy-MM-dd HH:mm:ss.SSS 와 같이 입력할 수 있습니다. 미지정 시 _time 필드 값이 데이터 로딩 시점의 시각으로 결정됩니다.

cs

텍스트 파일의 인코딩을 지정합니다. 미지정 시 기본값은 utf-8입니다.

사용 예

1) /var/log/secure 로그 파일 조회

textfile /var/log/secure

2) euc-kr로 인코딩 된 iis.txt 파일 조회

textfile cs=euc-kr iis.txt

3) 확장자가 .gz인 test.gz 파일 조회

textfile cs=euc-kr test.gz

5.4csvfile

문법

csvfile [offset=숫자] [limit=숫자] [cs=문자집합] [maxcol=숫자] [rest=t] [strict=t] [tab=t] 파일경로

쉼표를 구분자로 사용하는 CSV 포맷의 텍스트 파일에서 데이터를 조회합니다. CSV파일 첫번째 줄에 있는 헤더 정보를 읽어와 필드명으로 사용합니다. 파일경로에 와일드카드(*)를 사용하면 특정 문자열 패턴을 포함한 모든 파일을 한 번에 조회할 수 있습니다.

maxcol과 rest 옵션은 ENT #2246 2019-05-24_14-58 일자 버전부터 지원
offset

건너뛸 레코드 갯수

limit

가져올 최대 레코드 갯수

cs

CSV 파일의 인코딩을 지정합니다. 미지정 시 기본값은 utf-8입니다.

maxcol

조회할 최대 컬럼 수를 지정합니다. maxcol 지정하지 않으면 araqne.logapi.max_columns 옵션의 설정 값을 따라갑니다. (araqne.logapi.max_columns 옵션을 설정하지 않으면 기본 값은 10000)

rest

t로 설정 시, maxcol 옵션으로 지정한 최대 컬럼 수를 넘어가는 데이터를 _rest 필드에 넣습니다. 예를 들어 20000개의 컬럼이 있는 CSV 파일을 조회할 때, maxcol을 5000으로 지정하면 5000개의 컬럼이 조회되고 나머지 데이터는 _rest필드에 들어갑니다. f로 설정 시, maxcol을 5000으로 지정하면 5000개의 컬럼이 조회되고 나머지 데이터는 조회되지 않습니다. 미지정 시 기본 값은 f 입니다.

strict

t로 설정 시, RFC4180 표준안을 엄격히 따르는 CSV 파싱 규칙을 수행합니다. 엑셀로 CSV파일을 열었을 때의 파싱 동작과 같습니다. f로 설정 시에는 CSV파일을 유연한 규칙으로 파싱합니다. 미지정 시 기본 값은 f입니다.

tab

t로 설정 시, 구분자를 탭 문자로 인식합니다. 미지정 시 기본 값은 f입니다.

사용 예

1) test.csv 파일을 조회

csvfile C:\logpresso\test.csv

2) test.csv 파일 내용 중 20건 조회

csvfile limit=20 C:\logpresso\test.csv

3) 컬럼 갯수가 20000개인 20000columns.csv 파일에서 5000개의 컬럼만 조회

csvfile maxcol=5000 C:\logpresso\20000columns.csv

strict 옵션 예

1) 구분자와 컬럼 사이에 공백이 있는 데이터

strict가 t일 때, 구분자와 컬럼 사이에 공백이 있으면 "는 문자로 인식되어 의도한대로 파싱되지 않습니다. strict가 f일 때는 "의 짝이 맞으면 "사이의 문자열만 컬럼으로 인식하기 때문에 의도한대로 파싱됩니다.

원본 데이터

"Chevy", "Venture ""Extended Edition, Very Large""", "MUST SELL! air, moon roof, loaded", "5000.00"

strict=t

[Chevy],[ "Venture ""Extended Edition],[ Very Large"""],[ "MUST SELL! air],[ moon roof],[ loaded"],[ "5000.00"]

strict=f

[Chevy],[Venture "Extended Edition, Very Large"],[MUST SELL! air, moon roof, loaded],[5000.00]

2) 구분자와 컬럼 사이에 공백이 없는 데이터

strict 값에 관계없이 구분자와 컬럼 사이에 공백이 없으므로 의도한대로 파싱됩니다.

원본 데이터

"Chevy","Venture ""Extended Edition, Very Large""","MUST SELL! air, moon roof, loaded","5000.00"

strict=t

[Chevy],[Venture "Extended Edition, Very Large"],[MUST SELL! air, moon roof, loaded],[5000.00]

strict=f

[Chevy],[Venture "Extended Edition, Very Large"],[MUST SELL! air, moon roof, loaded],[5000.00]

3) "의 표기로 \"를 사용한 데이터

strict가 t일 때, \는 문자로 인식하기 때문에 "로 감싸인 컬럼에서 \"를 사용하여 "을 표기한 데이터는 의도한대로 파싱되지 않습니다. strict가 f일 때는 ""뿐만 아니라 \"로도 표기하기 때문에 의도한대로 파싱됩니다.

원본 데이터

"Chevy","Venture \"Extended Edition, Very Large\"","MUST SELL! air, moon roof, loaded","5000.00"

strict=t

[Chevy],[Venture \Extended Edition],[Very Large\""],[MUST SELL! air, moon roof, loaded],[5000.00]

strict=f

[Chevy],[Venture "Extended Edition, Very Large"],[MUST SELL! air, moon roof, loaded],[5000.00]

4) "의 표기로 ""를 사용한 데이터

strict 값에 관계없이 "로 감싸인 컬럼에서 """를 사용하여 표기하기 때문에 의도한대로 파싱됩니다.

원본 데이터

"Chevy","Venture ""Extended Edition, Very Large""","MUST SELL! air, moon roof, loaded","5000.00"

strict=t

[Chevy],[Venture "Extended Edition, Very Large"],[MUST SELL! air, moon roof, loaded],[5000.00]

strict=f

[Chevy],[Venture "Extended Edition, Very Large"],[MUST SELL! air, moon roof, loaded],[5000.00]

5.5xmlfile

ENT #2241 2019-04-23_17-20 일자 버전부터 지원

문법

xmlfile [cs=문자집합] [xpath=xpath표현식] 파일경로

XML 포맷의 파일에서 데이터를 조회합니다. UTF-8, UTF-16LE 등 BOM 유형별 XML 파일도 자동 인식되어 조회됩니다. 파일경로에 와일드카드(*)를 사용하면 특정 문자열 패턴을 포함한 모든 파일을 한 번에 조회할 수 있습니다.

cs

XML 파일의 인코딩을 지정합니다. 미지정 시 기본값은 utf-8입니다.

xpath

XML 노드를 선택하는데 사용할 XPath 표현식을 지정합니다.

5.6jsonfile

문법

jsonfile [offset=숫자] [limit=숫자] 파일경로

CR LF 혹은 LF로 구분되는 줄 단위로 JSON을 포함하는 텍스트 파일에서 데이터를 조회합니다. JSON의 키/값은 자동으로 로그프레소 타입으로 매핑되어 파싱됩니다. 파일경로에 와일드카드(*)를 사용하면 특정 문자열 패턴을 포함한 모든 파일을 한 번에 조회할 수 있습니다.

offset

건너뛸 레코드 갯수

limit

가져올 최대 레코드 갯수

5.7zipfile

문법

zipfile [offset=숫자] [limit=숫자] ZIP파일경로 ZIP엔트리경로

ZIP으로 압축된 텍스트 파일에서 데이터를 조회합니다. ZIP파일경로 및 ZIP엔트리경로에는 와일드카드를 사용할 수 있습니다.

offset

건너뛸 레코드 갯수

limit

가져올 최대 레코드 갯수

사용 예

1) C:\logpresso 경로의 testdata.zip 파일에 압축된 텍스트 파일 중 iis.txt 파일 조회

zipfile C:\logpresso\testdata.zip iis.txt

2) C:\logpresso 경로의 testdata.zip 파일에 압축된 모든 텍스트 파일 조회

zipfile C:\logpresso\testdata.zip *.txt

3) C:\logpresso 경로의 모든 ZIP파일에 압축된 모든 텍스트 파일 조회

zipfile C:\logpresso\*.zip *.txt

5.8json

문법

json "JSON 문자열"

JSON 문자열을 이용하여 데이터 원본을 생성합니다. 일반적으로 이후에 연결되는 쿼리 커맨드의 동작을 테스트하기 위한 용도로 사용합니다. JSON 문자열 내에 큰 따옴표가 들어가는 경우에는 역슬래시 (\)를 사용하여 이스케이프 합니다.

사용 예

1) a => 8, b => "miles" 키/값 쌍을 가진 로그 생성

json "{ 'a': 8, 'b':'miles' }"

2) a => 8, b => "miles" 로그와 a => 2, b => "cats" 로그 생성

json "[{ 'a': 8, 'b':'miles' }, { 'a': 2, 'b':'cats' }]"

5.9logger

문법

logger window=시간간격 로그수집기1, 로그수집기2, …

쿼리 시작 시점부터 지정한 시간 동안 실시간으로 로그 수집기의 출력을 수신합니다. 쿼리가 실행되는 동안 수집되는 로그가 없으면 빈 결과를 내보내게 됩니다. 이 커맨드를 실행하려면 관리자 권한이 필요합니다. 로그 수집기의 이름이 _logger 필드로 포함됩니다.

window

쿼리 시작 시점으로부터 일정 시간 범위 이내의 로그 수집기 출력을 수신합니다. s(초), m(분), h(시), d(일), mon(월) 단위로 지정할 수 있습니다. 예를 들면, 10s의 경우 쿼리 시작 시점으로부터 10초까지의 범위를 의미합니다.

사용 예

1) local\sample1, local\sample2 로그 수집기에서 10초간 실시간 수신

logger window=10s local\sample1, local\sample2

5.10stream

문법

stream window=시간간격 forward=t 스트림1, 스트림2, …

지정된 스트림으로부터 출력을 수신하거나, 지정된 스트림으로 입력 데이터를 전달합니다. window 옵션과 forward 옵션은 동시에 사용할 수 없습니다. 이 커맨드를 실행하려면 관리자 권한이 필요합니다.

window

쿼리 시작 시점으로부터 일정 시간 범위 이내의 스트림 쿼리 출력을 수신합니다. 쿼리가 실행되는 동안 스트림 쿼리의 출력이 없으면 빈 결과를 내보내게 됩니다. s(초), m(분), h(시), d(일), mon(월) 단위로 지정할 수 있습니다. 예를 들면, 10s의 경우 쿼리 시작 시점으로부터 10초까지의 범위를 의미합니다. 스트림의 이름이 _stream 필드로 포함됩니다.

forward

t로 설정 시 지정한 스트림 쿼리들의 입력으로 현재 쿼리 데이터를 넘깁니다.

사용 예

1) sample1, sample2 스트림 쿼리의 출력을 10초간 실시간 수신

stream window=10s sample1, sample2

2) test 테이블의 데이터 100건을 스트림 쿼리 sample1, sample2의 입력으로 전달

table limit=100 test | stream forward=t sample1, sample2

5.11remote

문법

remote 노드이름 [ 서브쿼리 ]

페데레이션 등록된 원격 노드에서 쿼리를 실행합니다. 노드 접속 실패 시 쿼리가 실패합니다.

사용 예

1) n1 노드에서 system tables 쿼리 실행

remote n1 [ system tables ]

5.12serial

문법

serial [ row 단위로 실행할 스트림 커맨드들  ]

순서가 중요한 커맨드를 실행할 수 있도록 입력을 튜플 단위로 직렬화하여 실행하고, 서브쿼리 결과를 다시 하나의 전송 단위로 묶어서 전달합니다.

사용 예

1) 테이블 쿼리 후 행 단위로 CEP 함수 적용

table iis | serial [ search cs_uri_stem == "*game*" 
  | evtctxadd topic=TEST key=cs_uri_stem maxrows=0 true 
  | eval prev_ip = evtctxgetvar("TEST", cs_uri_stem, "prev_ip")
  | eval _dummy = evtctxsetvar("TEST", cs_uri_stem, "prev_ip", c_ip) ] 
  | fields _time, cs_method, prev_ip, c_ip, cs_uri_stem, cs_uri_query

5.13load

문법

load 저장된 쿼리 결과 GUID

저장된 쿼리 결과를 다시 조회합니다. 쿼리를 실행하고 해당 쿼리의 결과를 저장하면 저장된 쿼리 결과 목록에 추가됩니다. 저장된 쿼리 결과 목록에서 다시 조회를 원하는 쿼리 결과를 클릭하면 load 커맨드로 해당 결과가 조회됩니다.

사용 예

1) 저장한 쿼리 결과 조회

load f1737746-1dbf-48e6-8efb-1091a6fde37e

5.14result

문법

result [offset=숫자] 쿼리 ID

현재 세션에서 실행 중인 쿼리 결과를 조회합니다. 쿼리 ID는 system queries 쿼리를 실행하여 id필드에서 확인하거나, 결과 조회를 원하는 실행 중인 쿼리의 쿼리 실행 계획에서 확인할 수 있습니다.

offset

건너뛸 레코드 갯수

사용 예

1) 현재 세션에서 실행중인 쿼리(616)의 쿼리 결과를 조회

result 616

2) 현재 세션에서 실행중인 쿼리(616)의 쿼리 결과 중 10개를 건너 뛰고 조회

result offset=10 616

5.15confdb

문법

confdb 옵션

로그프레소 araqne DB의 설정값 데이터를 조회합니다. 관리자 권한을 가진 계정만이 조회 가능합니다.

databases

모든 설정 데이터베이스 인스턴스의 목록이 조회됩니다.

cols 인스턴스명

confdb databases 명령으로 조회된 데이터베이스 인스턴스 중 지정한 설정 인스턴스의 모든 컬렉션 이름 목록을 나열합니다.

docs 인스턴스명 컬렉션명

confdb cols 인스턴스명으로 조회된 컬렉션 이름 목록 중 지정한 설정 컬렉션의 모든 문서 개체가 조회됩니다.

logs 인스턴스명

confdb databases 명령으로 조회된 데이터베이스 인스턴스 중 지정한 설정 인스턴스의 로그를 조회합니다.

사용 예

1) 데이터베이스 인스턴스 목록 조회

confdb databases

2) araqne-log-api 인스턴스의 컬렉션 목록 조회

confdb cols araqne-log-api

3) araqne-log-api 인스턴스의 logger 컬렉션 조회

confdb docs araqne-log-api logger

4) araqne-log-api의 로그 조회

confdb logs araqne-log-api
Count of comments [0]