CQE ๋ ํฌ์งํ ๋ฆฌ ์คํฌ๋ฆฝํธ ๊ด๋ฆฌ ๊ฐ์ด๋
CQE(Custom Query Engine) ๋ ํฌ์งํ ๋ฆฌ์์ ์คํฌ๋ฆฝํธ๋ฅผ ๊ด๋ฆฌํ๊ณ , ์ฌ๋ฌ ์๋ฒ์ ๋ฑ๋กํ๋ฉฐ, ์คํ ์ํ๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฐฉ๋ฒ์ ์๋ดํฉ๋๋ค.
๐ ๊ฐ์
CQE Repo List๋ ์ ์ง๋ณด์ ๋ฐ ์ง๋จ์ฉ ์คํฌ๋ฆฝํธ๋ฅผ ์ค์์์ ๊ด๋ฆฌํ๋ ์ ์ฅ์์ ๋๋ค. ํ ๋ฒ ์ ์ฅ๋ ์คํฌ๋ฆฝํธ๋ ์ฌ๋ฌ ๋ ผ๋ฆฌ ์๋ฒ(LSVR)์ ์๋ก ๋ค๋ฅธ ์คํ ํ๋ผ๋ฏธํฐ๋ก ๋ฐฐํฌํ์ฌ ์คํํ ์ ์์ต๋๋ค.
๐ ์คํฌ๋ฆฝํธ ์์ธ ๋ฐ ์คํ ์ค์
๋ชฉ๋ก์์ ์คํฌ๋ฆฝํธ๋ฅผ ํด๋ฆญํ๋ฉด ์์ธ ๋ชจ๋ฌ์ด ์ด๋ฆฌ๋ฉฐ, ๋ค์ ๊ธฐ๋ฅ์ ์ํํ ์ ์์ต๋๋ค.
1. ์คํฌ๋ฆฝํธ ๋ณธ๋ฌธ ํ์ธ
์คํฌ๋ฆฝํธ์ ์์ค ์ฝ๋๋ฅผ ์ ์ฒด ํ๋ฉด์ผ๋ก ํ์ธํฉ๋๋ค. (๋ชฉ๋ก์์๋ ์ฝ๊ธฐ ์ ์ฉ์ด๋ฉฐ, ์์ ์ด ํ์ํ ๊ฒฝ์ฐ ํธ์ง ๊ธฐ๋ฅ์ ์ด์ฉํ์ธ์.)
2. ์คํ ์ค์ (์ ๊ท)
์๋ฒ์ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฑ๋กํ๊ธฐ ์ ์ ์คํ ๋ฐฉ์์ ์ค์ ํ ์ ์์ต๋๋ค.
- ํ์ฑ (Active): ์ ํํ ์๋ฒ์์ ์คํฌ๋ฆฝํธ ์คํ์ ํ์ฑํํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
- ๋ฐ๋ณต (Repeat): ํ์ฑํ ์ ์คํฌ๋ฆฝํธ๊ฐ ์ฃผ๊ธฐ์ ์ผ๋ก ๋ฐ๋ณต ์คํ๋ฉ๋๋ค.
- ์คํ ๊ฐ๊ฒฉ (๋ถ): ๋ฐ๋ณต ์คํ ์์ ์ฃผ๊ธฐ(๋ถ ๋จ์)๋ฅผ ์ค์ ํฉ๋๋ค.
- ์์ ์ผ์: ์ฒซ ์คํ์ด ์์๋ ์์ ์ ์ง์ ํฉ๋๋ค.
3. ์๋ฒ ๋ฑ๋ก (LSVR ํ ๋ฑ๋ก)
ํ์ฌ ํ๋ก์ ํธ์ ์๋ฒ ์ค ์ํ๋ ์๋ฒ๋ฅผ ์ ํํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ๋ฐฐํฌํ ์ ์์ต๋๋ค.
- LSVR ์ ํ๊ธฐ: ์ฒดํฌ๋ฐ์ค๋ฅผ ํตํด ๋์ ์๋ฒ๋ค์ ์ ํํฉ๋๋ค.
- ํ ๋ฑ๋ก: ๋ฒํผ์ ํด๋ฆญํ๋ฉด ์ ์๋ ์ค์ ์ผ๋ก ์ ํ๋ ๋ชจ๋ ์๋ฒ์ ์คํฌ๋ฆฝํธ๊ฐ ๋ฑ๋ก๋ฉ๋๋ค.
๐ ์คํฌ๋ฆฝํธ ๋ฑ๋ก ํํฉ
๋ชจ๋ฌ ํ๋จ์ ์คํฌ๋ฆฝํธ ๋ฑ๋ก ํํฉ ํ ์ด๋ธ์์ ํ์ฌ ์ด ์คํฌ๋ฆฝํธ๋ฅผ ์ฌ์ฉ ์ค์ธ ๋ชจ๋ ์๋ฒ ๋ชฉ๋ก์ ์ค์๊ฐ์ผ๋ก ํ์ธํ ์ ์์ต๋๋ค.
- ํธ์คํธ๋ช : ์คํฌ๋ฆฝํธ๊ฐ ๋ฑ๋ก๋ ์๋ฒ์ ์ด๋ฆ์ ๋๋ค.
- ์ฉ๋: ํด๋น ๋ ผ๋ฆฌ ์๋ฒ์ ์ ์๋ ์ฉ๋์ ๋๋ค.
- ์ค์ ์ ๋ณด: ๊ฐ ์๋ฒ๋ณ๋ก ์ค์ ๋ ํ์ฑ/๋ฐ๋ณต/๊ฐ๊ฒฉ ์ํ๋ฅผ ๋ณด์ฌ์ค๋๋ค.
- ๋ง์ง๋ง ์คํ: ํด๋น ์๋ฒ์์ ์คํฌ๋ฆฝํธ๊ฐ ๋ง์ง๋ง์ผ๋ก ์คํ๋ ์๊ฐ์ ์ถ์ ํฉ๋๋ค.
API ์ฐธ์กฐ
์ด ๊ธฐ๋ฅ์ API ์์ธ ์ฌ์์ ๋ณ๋ ๊ฐ์ด๋๋ฅผ ์ฐธ์กฐํ์ธ์.
๋ฌธ์ ํด๊ฒฐ
| ์ฆ์ | ์์ธ | ํด๊ฒฐ |
|---|---|---|
| ํ ๋ฑ๋ก ํ์๋ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋์ง ์์ | ์คํ ์ค์ ์์ ํ์ฑ(Active) ์ด ๊บผ์ ธ ์์ | ์์ธ ๋ชจ๋ฌ์์ Active๋ฅผ ์ผ ๋ค ๋ค์ ํ์ ๋ฑ๋กํฉ๋๋ค. |
| LSVR ์ ํ๊ธฐ์ ๋์ ์๋ฒ๊ฐ ๋ณด์ด์ง ์์ | ํ์ฌ ์ ํ๋ ํ๋ก์ ํธ์ ์๋ฒ๊ฐ ์๊ฑฐ๋ ์๋ฒ๊ฐ ๋ค๋ฅธ ํ๋ก์ ํธ์ ์ํจ | ์๋จ์์ ์ฌ๋ฐ๋ฅธ ํ๋ก์ ํธ๋ฅผ ์ ํํ๋์ง ํ์ธํฉ๋๋ค. |
| ๋ฐ๋ณต ์คํ์ด ๋์ํ์ง ์์ | ๋ฐ๋ณต(Repeat) ์ ์ผฐ์ง๋ง ์คํ ๊ฐ๊ฒฉ(๋ถ) ์ด ๋น์ด ์์ | ์คํ ๊ฐ๊ฒฉ์ 1 ์ด์์ผ๋ก ์ค์ ํ ๋ค ๋ค์ ๋ฑ๋กํฉ๋๋ค. |
| ๋ฑ๋ก ํํฉ์ ๋ง์ง๋ง ์คํ ์ด ๊ฐฑ์ ๋์ง ์์ | ๋์ ์๋ฒ์ ์์ด์ ํธ๊ฐ ์์ง ํ๋ฅผ ์์ ํ์ง ๋ชปํจ | ์์ด์ ํธ ์ฐ๊ฒฐ ์ํ์ ์์ ์ผ์๊ฐ ๊ณผ๊ฑฐ ์๊ฐ์ธ์ง ํ์ธํฉ๋๋ค. |
๐ CQE API (์๋ํ์ฉ)
์ UI ๋์์ ๋ค์ CQE API ๋ฒ๋ธ(byAK/bySk ๋์คํจ์ฒ)์ ๋์ํฉ๋๋ค. ์์ฒญ์ text(๋ฒ๋ธ+ํ๋ผ๋ฏธํฐ ์ด๋ฆ), jsondata(๊ฐ), token์ ๋ณด๋
๋๋ค.
-
CQERepoPut
msName msDetail msBody msPer msPrice msTypeโ ์คํฌ๋ฆฝํธ๋ฅผ repo์ ๋ฑ๋ก.text์๋ ํ๋ผ๋ฏธํฐ ์ด๋ฆ๋ง ๋ด์ต๋๋ค:CQERepoPut msName msDetail msBody msPer msPrice msTypejsondata์ ์ค์ ๊ฐ์ ๋ด์ต๋๋ค:{"msName":"...","msDetail":"...","msBody":"#!/bin/sh\n...","msPer":0,"msPrice":0,"msType":"sh"}msType์ 5์ ์ด๋ด์ ๋๋ค(varchar(5)).powershellยทexpectยทcmdwin๊ฐ์ ๊ธด ์ด๋ฆ์ ์ ์ฅ๋์ง ์์ผ๋ ์๋ ํ์ ์งง์ ์ฝ๋๋ฅผ ์๋๋ค.
msType ์คํ ๋์ OS ์์ด์ ํธ๊ฐ ์ค์ ๋ก ์คํํ๋ ๋ฐฉ๋ฒ ps1Windows powershell.exe(์ฐฝ ์์ด)cmdWindows cmd.exebatWindows cmd๋ก ์ ๊ทํ๋ ๋คcmd.exewsfWindows wscript.exe //B //Nologops1ui/cmduiWindows ๋ฐ์คํฌํฑ ์ธ์ ์์ ์ฐฝ์ ๋์ ์คํ shLinux sh <์์ํ์ผ>pyLinux python3 <์์ํ์ผ>ps1Linux pwsh <์์ํ์ผ>OS ๋ฅผ ์์ง ๋ง์ธ์. Windows ์์ด์ ํธ๋ ์ Windows ํ์ ๋ง ์คํํ๊ณ ๊ทธ ๋ฐ์ ๊ฐ์
unsupported_script_type์ค๋ฅ๋ก ๊ธฐ๋ก๋ง ํ๊ณ ์คํํ์ง ์์ต๋๋ค. Linux ์์ด์ ํธ๋ ๋ฐ๋๋ก ๋ชจ๋ฅด๋ ํ์ ์ ์ ๋ถsh๋ก ์คํํฉ๋๋ค โbat/wsf์คํฌ๋ฆฝํธ๋ฅผ Linux ์๋ฒ์ ํ ๋นํ๋ฉด ์กฐ์ฉํsh๋ก ๋์๊ฐ ๊นจ์ง๋๋ค. ํ ๋นํ ์๋ฒ์ OS ์ ๋ง๋ ํ์ ์ผ๋ก ๋ฑ๋กํ์ธ์.-
Linux ์ ธ ์คํฌ๋ฆฝํธ ๋ฑ๋ก:
msType์sh,msBody์ ์ ธ ์คํฌ๋ฆฝํธ ์ ๋ฌธ์ ๋ฃ์ต๋๋ค. Linux ์์ด์ ํธ๋ ๋ฐ์ ๋ณธ๋ฌธ์ ์์ ํ์ผ๋ก ์ ์ฅํ ๋คsh๋ก ์คํํ๋ฏ๋ก#!/bin/bash์ ฐ๋ฑ ์ ๋ฌด์๋ฉ๋๋ค. bash ์ ์ฉ ๋ฌธ๋ฒ([[ ]], ๋ฐฐ์ด ๋ฑ)์ ์ฐ์ง ๋ง๊ณ POSIX ์ ธ๋ก ์์ฑํ๊ฑฐ๋, ๋ณธ๋ฌธ ์ฒซ ์ค์์exec bash "$0" "$@"๋ก bash ์ ๋๊ธฐ์ธ์.#!/bin/sh # sh ๋ก ์คํ๋๋ฏ๋ก POSIX ๋ฌธ๋ฒ๋ง ์๋๋ค. sk/lssn/apiaddrv2 ๋ ํ๊ฒฝ๋ณ์๋ก ๋ค์ด์ต๋๋ค. curl -s -H "Authorization: Bearer $sk" "$apiaddrv2/health" | jq -r .status -
์คํฌ๋ฆฝํธ ๋ณธ๋ฌธ์ ์ด๋์ ๋์ง: ๋ ๋ฐฉ์ ๋ชจ๋ ๋์ํฉ๋๋ค.
- ๋ณธ๋ฌธ ์ ์ฒด๋ฅผ
msBody์ ๋ฃ๊ธฐ โ ํธ์คํธ์ ํ์ผ์ ๋ฏธ๋ฆฌ ๊น์ง ์์๋ ๋๊ณ giip ์ชฝ ๋ณ๊ฒฝ๋ง์ผ๋ก ์ ์ฒด ์๋ฒ์ ๋ฐฐํฌ๋ฉ๋๋ค. ๊ถ์ฅํฉ๋๋ค. - ํธ์คํธ์ ๋ ์คํฌ๋ฆฝํธ๋ฅผ ํธ์ถ๋ง ํ๊ธฐ โ ํธ์คํธ์
jqยทcurl๋ฑ ์ ์ ๊ฐ ์๊ฑฐ๋ ๋ณธ๋ฌธ์ด ์์ฃผ ๊ธธ ๋ ์๋๋ค. ๋์ ํธ์คํธ๋ณ ๋ฐฐํฌ ์ํ๋ฅผ ๋ฐ๋ก ๊ด๋ฆฌํด์ผ ํฉ๋๋ค. msBody๋ntext๋ผ ์ค์ฉ์ ์ธ ๊ธธ์ด ์ ํ์ด ์์ต๋๋ค(์ค์ธก ์ต๋ 20,883์).
- ๋ณธ๋ฌธ ์ ์ฒด๋ฅผ
-
CQEQueuePut
mssn lssngroup csn interval active script_type custom_values repeat startdate auidโ ์๋ฒ์ ์คํฌ๋ฆฝํธ ํ ๋น.lssngroup: ์ฝค๋ง ๊ตฌ๋ถ LSSN ๋ชฉ๋ก(์๋ฒ๋ง๋ค 1๊ฑด ํ ๋น).interval: ๋ถ.repeat: 0/1 = ์ผํ์ฑ, 2 = ์ฌ๊ท(interval๋ง๋ค ๋ฐ๋ณต).custom_values: ์๋ฒ๋ณ ์ฃผ์ ๊ฐ โ ์คํฌ๋ฆฝํธ ๋ณธ๋ฌธ์{{CustomVariables}}๋ก ์นํ.
-
CQEQueueGet
lssn hostname os opโ ์์ด์ ํธ๊ฐ ํด๋งํด ๋ค์ ์คํฌ๋ฆฝํธ ๋ณธ๋ฌธ์ ์์ .
์คํฌ๋ฆฝํธ ๋ณธ๋ฌธ ์นํ์: {{CustomVariables}}(ํ ๋น๋ณ custom_values, ์๋ฒ์ธก ์ฃผ์
), {{sk}}(์์ด์ ํธ ํ ํฐ), {{lssn}}(์์ด์ ํธ LSSN).
Linux ์์ด์ ํธ๋
sk,lssn,apiaddrv2๋ฅผ ํ๊ฒฝ๋ณ์๋ก๋ export ํฉ๋๋ค.{{sk}}/{{lssn}}์นํ์ ๋์ ์คํฌ๋ฆฝํธ์์$skยท$lssnยท$apiaddrv2๋ฅผ ๊ทธ๋๋ก ์จ๋ ๋ฉ๋๋ค.
์คํ ์ ํ
| ๊ตฌ๋ถ | Windows ์์ด์ ํธ | Linux ์์ด์ ํธ |
|---|---|---|
| ์คํ ์๊ฐ ์ ํ | ๊ธฐ๋ณธ 600์ด. giipAgent.cfg ์ cqetimeoutsec ๋ก ๋ณ๊ฒฝํฉ๋๋ค. ์ด๊ณผํ๋ฉด ๊ฐ์ ์ข
๋ฃ๋ฉ๋๋ค | ์ ํ ์์ต๋๋ค |
| ์คํ ๋ฐฉ์ | ์์ ํ์ผ์ ๋ง๋ค์ด ์ฐฝ ์์ด ์คํ | ์์ ํ์ผ์ ๋ง๋ค์ด sh ๋ก ์คํ |
| ๋ณธ๋ฌธ ๊ธธ์ด | ์ ํ ์์(ntext) | ๊ฐ์ |
์คํ ๊ฐ๊ฒฉ: interval ์ ๋ถ ๋จ์์
๋๋ค. ์ค์ ์ฌ์คํ ์ฃผ๊ธฐ๋ ์์ด์ ํธ ํด๋ง ์ฃผ๊ธฐ์ ์ข์ฐ๋ฉ๋๋ค โ interval=0 ์ "์ฃผ๊ธฐ ์์" ์ด ์๋๋ผ ํด๋ง ๋กํ
์ด์
๋ง๋ค ์ฌ๋ฐฐ๊ธ ์
๋๋ค. ํ์ฑ ํ๊ฐ ์ฌ๋ฌ ๊ฑด์ด๋ฉด ๋กํ
์ด์
์ผ๋ก ๋์๊ฐ๋ฏ๋ก ํ๊ฐ N๊ฑด์ผ ๋ ์ฒด๊ฐ ์ฃผ๊ธฐ๊ฐ ์ฝ N๋ฐฐ๋ก ๋์ด๋ฉ๋๋ค(giipdb docs/30_Specs/SPEC_AND_CHECKLIST.md ์ค์ธก). ๊ฐ๊ฒฉ์ 1๋ถ์ผ๋ก ๋ฌ๋ ํด๋ง๋ณด๋ค ์์ฃผ ์คํ๋์ง๋ ์์ต๋๋ค.
์คํ ๊ฒฐ๊ณผ ์ ์ฅ: ์คํฌ๋ฆฝํธ์ ํ์ค์ถ๋ ฅยทํ์ค์ค๋ฅ๋ ์์ด์ ํธ๊ฐ ๋์๊ฐ๋ ์๋ฒ์ ๋ก์ปฌ ๋ก๊ทธ ํ์ผ์ ์์
๋๋ค. giip ์ชฝ์ผ๋ก๋ ์์ฝ๋ง ์ฌ๋ผ๊ฐ๋๋ค โ KVSPut(kType=lssn, kKey=<lssn>, kFactor=giipagent) ๋ก event_type="script_execution" ๋ ์ฝ๋๊ฐ ๋ง๋ค์ด์ง๊ณ ๊ทธ ์์ script_type, exit_code, execution_time_seconds, mslsn, mssn ์ด ๋ด๊น๋๋ค. ์ถ๋ ฅ ๋ณธ๋ฌธ ์์ฒด๋ giip ์ ์ ์ฅ๋์ง ์์ต๋๋ค. ์ถ๋ ฅ์ giip ์์ ๋ณด๋ ค๋ฉด ์คํฌ๋ฆฝํธ๊ฐ ์ง์ KVSPut ์ผ๋ก ์ฌ๋ ค์ผ ํฉ๋๋ค(๋ณด์กด ๊ธฐ๊ฐ์ ๊ทธ KVS ์ค์ ์ ๋ฐ๋ฆ
๋๋ค).
์คํจ ์๋ฆผ: ์๋ ์๋ฆผ ๊ธฐ๋ฅ์ ์์ต๋๋ค. exit_code ๊ฐ 0์ด ์๋ script_execution ๋ ์ฝ๋๋ฅผ ์กฐํํด ๊ฐ์งํ๊ฑฐ๋, ์คํฌ๋ฆฝํธ ์์์ ์ง์ ์๋ฆผ์ ๋ณด๋ด๋๋ก ๋ง๋์ธ์.
์ ์ฒด ์ฌ์: giipdb
docs/30_Specs/CQE_SPECIFICATION.md.
๋ฒ์ : 1.3
์ต์ข
์
๋ฐ์ดํธ: 2026-10-19
์์ค ํ์ผ: giipv3/public/help/cqerepolist.ko.md