ComplexEventProcessingã¨ã³ã¸ã³ Setsuna ããªãªã¼ã¹ãã¾ããï¼ï¼
ãã£ã¨ãªãªã¼ã¹ã§ãã¾ããï¼
Sourceforge.jpダウンロードページ
ååã¯Setsuna(ã»ãã)ã¨ãã¾ããã
æéã®åä½ã表ãè¨èã§ããå¹é£ãããã¦ãã¾ãã
å¹é£ã®çãã§ãã¼ã¿ãå¦çåºæ¥ãã°ãããªã¨ãããã¨ã§ãã®ååã«ãã¾ããã
ãã®Setsunaã§ãããCEPã¨ããããã«ãã´ãªã«å±ãããã®ã§ãã
ã§ã¯CEPã¨ã¯ï¼ï¼ãªãã§ãããããã¯èªæºãã®ã¾ã¾ã§ãã
ComplexãEvent Processing
è¤æ°ã®ã¤ãã³ãã¤ã¾ããã¼ã¿ãå¦çããã¨ã³ã¸ã³ã§ãã
ã¤ã¡ã¼ã¸ã¨ãã¦ã¯ãã¼ã¿ã®æµãã«ç´æ¥å¦çãè¡ããã¤ã¡ã¼ã¸ã§ãã
ãã¾ãæç« ã°ããã§ãã¤ã¾ããªãã®ã§ãå®éSetsunaã使ããªãã説æãã¦ããããã¨æãã¾ãã
ã§ã¯é¡æã¯ãããªã®ã«ãããã¨æãã¾ãã
ãApacheãéãï¼ï¼ãã²ãã£ã¨ãã¦æ»æããã¦ãï¼ï¼ã
ããã¾ãããããããããã¿ã¤ãã«ã§ãããã
ãããããã¨ã¯ãWebãµã¼ãã®è² è·ãä¸å®å¤ãè¶
ããå ´åã«ãApacheã®ã¢ã¯ã»ã¹ãã°ã®ç´è¿1ä¸ä»¶ä»¥å
ããã®
IPã¢ãã¬ã¹å¥ã§ã¢ã¯ã»ã¹åæ°ãåè¨ããã®åè¨å¤ããè¦å®åæ°ãè¶
ãã¦ããå ´åã«ãã¢ã©ã¼ãå
容ãSystemãã°ã«
åºåããã¨ãããã®ã§ãã
ã§ã¯ãã®å¦çãã©ã®ããã«ãããé ã追ã£ã¦è¦ã¦ããããã¨æãã¾ãã
â»ç°å¢ã¯CentOS5.5(64bit)åæã¨ãã¦é²ãã¾ãã
Step1.ãµã¼ãã®è² è·ãç£è¦ãã
Step1:ã¾ãã¯ãµã¼ãã®è² è·ãç£è¦ããªãã¨ãã¡ã§ãã
ããã§ã¯topã³ãã³ãã®ãã¼ãã¢ãã¬ã¼ã¸ãè² è·ã®ææ¨ã«å©ç¨ãããã¨æãã¾ãã
çµæã¯ä»¥ä¸ã®ãããªæãã§ãã
$top -d 1
ã§ã¯æ©éãããSetsunaã«æµãè¾¼ã¿ããã¨æãã¾ãã
top - 16:47:19 up 8 min, 2 users, load average: 0.06, 0.11, 0.08
Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie
Cpu(s): 2.5%us, 3.0%sy, 0.0%ni, 93.9%id, 0.2%wa, 0.1%hi, 0.3%si, 0.0%st
Mem: 793284k total, 180116k used, 613168k free, 12272k buffers
Swap: 1048568k total, 0k used, 1048568k free, 130704k cachedPID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 15 0 2072 636 544 S 0.0 0.1 0:00.72 init
2 root RT -5 0 0 0 S 0.0 0.0 0:00.00 migration/0
ãããããããããããããããã»
ãããããããããããããããã»
ãããããããããããããããã»
Setsunaã¯æ¨æºã§ãã¤ãã§ç¹ããã¨ã§ãã¼ã¿ãæµãè¾¼ããã¨ãå¯è½ã§ãã
Setsunaããã¦ã³ãã¦ã³ãã¼ããã¦ããã£ã¦é©å½ãªå ´æã«è§£åãã¦ãããã¨
ä¸ã«setsuna.jarã¨ãããã¡ã¤ã«ãããã¨æãã¾ãããããæ¬ä½ã§ãã
å®è¡å¯è½jarãªã®ã§ãjavaãåãç°å¢ã§ããã°ãã®ãã¡ã¤ã«ä»¥å¤ã¯ä½ãå¿ è¦ããã¾ããã
ä¸è¨ãå®è¡ããã¨ä»¥ä¸ã®ãããªã¨ã©ã¼ãåºãã¨æãã¾ãã
$top -b -d 1 | java -jar setsuna.jar
ããã¯ãSetsunaã®èªåãã¼ãã«ãããã³ã°ã®æ©è½ãããã¦ãã¾ããã¤ã¾ãSetsunaã¾ã§ã¯
setsuna.core.util.SetsunaException: The read data differs from definition information. Adapter name is PIPE
at setsuna.core.adapter.SetsunaCoreAdapterEngine.doEvent(SetsunaCoreAdapterEngine.java:67)
at setsuna.core.AbstractCoreEngine.run(AbstractCoreEngine.java:54)
topã®çµæã¯å±ãã¦ãã¾ããã§ã¯ã©ããã£ãã¨ã©ã¼ãï¼ï¼
ãããã¯ã1è¡ç®ã®ãã¼ã¿ã¨2è¡ç®ã®ãã¼ã¿ã®å½¢å¼ãéãã¾ããã¨ãããã¨ãè¨ã£ã¦ãã¾ãã
Setsunaã¯ãã¤ãã©ã¤ã³å ¥åã§æ¸¡ããããã¼ã¿ãå èµããH2Databseã«èªåçã«æ ¼ç´ãã¾ãã
ãã®ãããæ ¼ç´ããããã«ãã¼ã¿ãã¬ã³ã¼ãã¨ãã¦èªèããã¤ãã«ã©ã ã«å解ãããã¨ãã¾ãã
Setsunaã¯ããã©ã«ãã§ã¯ãã¼ã¿(ã¬ã³ã¼ã)ã®åºåããæ¹è¡ã¨ããã«ã©ã ã¬ãã«ã¸ã®å解ã«
åè§ã¹ãã¼ã¹ãå©ç¨ãã¾ãã(2ã¤ä»¥ä¸ç¶ãã¹ãã¼ã¹ã¯èªåçã«1ã¤ã«ããªã ããã¾ã)
topã®çµæãããä¸åº¦ã¿ã¦ã¿ãã¨ã
è¡çªå·1ã¨2ã§ã¯å ¨ããã©ã¼ããããç°ãªãã¾ãããã©ã¼ãããã¨ã¯ã¹ãã¼ã¹ã§å解ããéã®å解ã§ããæ°ã§ãã
1: top - 16:47:19 up 8 min, 2 users, load average: 0.06, 0.11, 0.08
2: Tasks: 78 total, 1 running, 77 sleeping, 0 stopped, 0 zombie
ããã§ãã¼ãã¢ãã¬ã¼ã¸ãå«ã1è¡ç®ã ããSetsunaã«éãè¾¼ãã§ã¿ã¾ããããããã«ã¯grepãå©ç¨ãã¾ãã
ããã¦ãã®ãã¼ã¿ã®æµãã«ååãä»ãããã¨æãã¾ãã-streamãªãã·ã§ã³ãå©ç¨ããã¨ååãä»ããã¾ãã
$top -b -d 1 | grep --line-buffered "top -" | java -jar setsuna.jar -stream top
Exceptionãåºãªããªãå¤ããã«ä»¥ä¸ã®ãããªçµæã«ãªã£ã¦ããªãã§ããããï¼
ããã¯Setsunaãåãè¾¼ãã ãã¼ã¿ãJSONãã©ã¼ãããã§
{"COLUMN0":"top","COLUMN1":"-","COLUMN2":"17:01:58","COLUMN3":"up","COLUMN4":"23","COLUMN5":"min,","COLUMN6":"2","COLUMN7":"users,","COLUMN8":"load","COLUMN9":"average:","COLUMN10":"0.20,","COLUMN11":"0.12,","COLUMN12":"0.09"}
{"COLUMN0":"top","COLUMN1":"-","COLUMN2":"17:01:59","COLUMN3":"up","COLUMN4":"23","COLUMN5":"min,","COLUMN6":"2","COLUMN7":"users,","COLUMN8":"load","COLUMN9":"average:","COLUMN10":"0.20,","COLUMN11":"0.12,","COLUMN12":"0.09"}
{"COLUMN0":"top","COLUMN1":"-","COLUMN2":"17:02:00","COLUMN3":"up","COLUMN4":"23","COLUMN5":"min,","COLUMN6":"2","COLUMN7":"users,","COLUMN8":"load","COLUMN9":"average:","COLUMN10":"0.20,","COLUMN11":"0.12,","COLUMN12":"0.09"}
{"COLUMN0":"top","COLUMN1":"-","COLUMN2":"17:02:01","COLUMN3":"up","COLUMN4":"23","COLUMN5":"min,","COLUMN6":"2","COLUMN7":"users,","COLUMN8":"load","COLUMN9":"average:","COLUMN10":"0.20,","COLUMN11":"0.12,","COLUMN12":"0.09"}
ã«ã©ã æ å ±ã¨ã»ããã§åºåãã¦ãã¾ãã
Setsunaã¯ãã¤ãã©ã¤ã³ã§ãã¼ã¿ãä¸ããã ãã®å ´åãã®ãããªåãã«ãªãã¾ãã
ã§ã¯ããããè¦ã¦ããã¾ãããã
topã®ãã¼ãã¢ãã¬ã¼ã¸ã®è¡
Setsunaã®çµæ
top - 16:47:19 up 8 min, 2 users, load average: 0.06, 0.11, 0.08
ãããã³ã°åºæ¥ã¦ãã¾ããã
{
"COLUMN0":"top",
"COLUMN1":"-",
"COLUMN2":"17:01:58",
"COLUMN3":"up",
"COLUMN4":"23",
"COLUMN5":"min,",
"COLUMN6":"2",
"COLUMN7":"users,",
"COLUMN8":"load",
"COLUMN9":"average:",
"COLUMN10":"0.20,",
"COLUMN11":"0.12,",
"COLUMN12":"0.09"
}
ç®å½ã¦ã®ãã¼ãã¢ãã¬ã¼ã¸ã®å¤ã¯"COLUMN10"ã®å¤ã§ãã
ããã§Setsunaã¸ã®ãã¼ã¿ã®æµãè¾¼ã¿ã¯å®äºã§ãã
ãã®æµãè¾¼ãå¦çã®é¨åã¯Adapterã¨å¼ãã§ãã¾ãã
Step2
ã§ã¯æ¬¡ã«ãããä¸ã¤ã®ãã¼ã¿ã§ããApacheã®ã¢ã¯ã»ã¹ãã°ãæµãè¾¼ã¿ããã¨æãã¾ãã
ãã®ãã¼ã¿ã¯ã¢ã¯ã»ã¹IPã®æ½åºã«å©ç¨ãããã¨æãã¾ãã
å ã»ã©ã¨åãæé ã§Setsunaã«ãã¼ã¿ãæµãè¾¼ã¿ã¾ãã
ãã®ãã¼ã¿ã®æµãã«ã¯logã¨ããååãä»ãã¾ãã
ä»åã¯å ã»ã©ã¨éãã-sepã¨ããé ç®ãã¤ãã¦ãã¾ãã
$tail -f /etc/httpd/logs/access_log | java -jar setsuna.jar -sep " - -" -stream log
ããã¯ãã¬ã³ã¼ããã¼ã¿ãã«ã©ã ã«å解ããéã®ã»ãã¬ã¼ã¿ãæå®ãã¦ãã¾ãã
åã®ç°å¢ã®ã¢ã¯ã»ã¹ãã°ã¯ä»¥ä¸ã®ãããªãã©ã¼ãããã§ããã
ããããIPã ããåãåºãããã®ã§ããã¼ã¿ãå解ããã»ãã¬ã¼ã¿ã«" - -"ã¨ããæååã
192.168.1.100 - - [15/Mar/2012:17:29:52 +0900] "GET /index.php HTTP/1.1" 200 130 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11"
å©ç¨ãã¾ãããããã§å é ã®IPé¨åã®ç´å¾ã§å解ã§ãã¾ãã
ããã¦å®éã«Setsunaã«æµãããã çµæãä¸ã§ãã
"COLUMN0"ã«IPæ å ±ããããã³ã°ããã¦ããã®ããããã¾ãã
{"COLUMN0":"192.168.1.100","COLUMN1":" [15/Mar/2012:17:46:45 +0900] "GET /index.php HTTP/1.1" 200 130 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.79 Safari/535.11""}
Step3
ããã¾ã§ã¯ãã¼ã¿ãSetsunaã«æµãè¾¼ãã ãã§ãããããããã¯å®éã«ãã¼ã¿ãå¦çãã¦è² è·ãæ¤ç¥ãã¦ã¿ã¾ãã
è² è·ã®æ¤ç¥ã«ã¯å ã»ã©ã®topã®ãã¼ã¿ã®æµãã®ãã¼ãã¢ãã¬ã¼ã¸ã®å¤ã使ãããã¨æãã¾ãã
ããã¦ãè² è·ãå¤å®ããããã®æ¡ä»¶ãè¨å®ãããã¨æãã¾ããããã«ã¯-triggerãªãã·ã§ã³ãå©ç¨ãã¾ãã
ããã¦ãããè¤éãªæ¡ä»¶ã§ããã¢ã¯ã»ã¹é »åº¦ã®é«ãIPãå²ãåºãããã«ã-queryãªãã·ã§ã³ã使ãã
SQLã«ã¦ãã¢ã¯ã»ã¹ãã°ã®ãã¼ã¿å ããåºåºåæ°ãè¶ ããã¢ã¯ã»ã¹ãè¡ã£ã¦ããIPããã£ãå ´åã«ã
Systemãã°ã«ã¢ã©ã¼ãæ¸ãã ããã¨æãã¾ãã
ã¾ããå ã»ã©ã®ãã¼ã¿ãã¯ãªã¢ããããã«ã2ã¤ã®Setsunaããã»ã¹ãæ¢ãã¦ãã ãããCrtl+Cãªã©ã§å¼·å¶çµäºã§OKã§ãã
ããã¦ã¾ãã¢ã¯ã»ã¹ãã°ãæµãè¾¼ã¿ã¾ãã
ããã¦ãtopã®çµæãæµãè¾¼ããã§ããããã®åã«ã-triggerãä½ãããã¨æãã¾ãã
$tail -f /etc/httpd/logs/access_log | java -jar setsuna.jar -sep " - -" -stream log
triggerã§ã¯ãã¼ãã¢ãã¬ã¼ã¸ãè¦å®å¤ãè¶ ãã¦ããªããããã§ãã¯ããã¾ãã
- trigger "COLUMN10 > 1"
ããã§å©ç¨ããã®ã¯å
ã»ã©ã®æµããã¨ãã ãã¼ã¿ãåèã«COLUMN10ãæå®ãã¦ãã¾ãã
ããã¯ç´è¿ã®ãã¼ãã¢ãã¬ã¼ã¸ã®å¤ã§ããããã¦ã'>'ã¨ããæ¡ä»¶è¨å·ã使ã£ã¦ã
'1'ã¨ãæ°å¤ä»¥ä¸ãæå®ãã¦ãã¾ãã
ããã§æ³¨ç®ãã¦ãããããã®ã¯ãä¸ã®å解ããtopã®COLUMN10ã®å¤ã§ãã
COLUMN10ã®å¤ã¯æ°å¤ã®å¾ãã«','ãå ¥ã£ã¦ãã¾ãããã®æåã§ãã"0.20,"ãæ°å¤å¤æããã¨
"COLUMN10":"0.20,"
å½ç¶æå¾ã®','ã®ããã§å¤æã¨ã©ã¼ã«ãªã£ã¦ãã¾ãã¾ãã
ããããSetsunaã®æã¤'>'ã'<'æ¡ä»¶è¨å·ã¯ãããã£ãå¤ãå¯è½ãªéãæ°å¤åãã¾ãã
ã¤ã¾ãæå¾ã®','ã¯å¤ãã¦æ°å¤ã«å¤æãã¦ããæ¯ã¹ã¾ãã
ããã¯ã対象ãã¼ã¿ã®ä¸ããæ°å¤ãæåã«è¦ã¤ããã¨ããããæ°å¤ã§ã¯ãªããªãã¾ã§ã®éã®
å¤ãæ°å¤ã¨ãã¦èªèããããã«åºæ¥ã¦ããããã§ãããªã®ã§ã"Count=10"ã¿ãããªå¤ã§
ãã£ã¦ã10ã¨èªèãããã¨ãã§ãã¾ãã
ãã®ã»ãã«æ¡ä»¶è¨å·ã¯å®å ¨ä¸è´ãæå®ãã'='ããé¨åä¸è´ãæå®ãã'like'ãåå¨ãã¾ãã
ã§ã¯ããã§triggerã¯å®æã§ãã
次ã«ã¢ã¯ã»ã¹é »åº¦ã®é«ãIPãè¦ã¤ãã-queryã§ããããã¯å®å ¨ã«SQLã§è¨è¿°ãã¾ãã
æ¢ã«å®è¡ä¸ã®ã¢ã¯ã»ã¹ãã°ã®ã¹ããªã¼ã ãå©ç¨ãããã¨æãã¾ãã
ã¢ã¯ã»ã¹é »åº¦ã®é«ãIPãæ½åºããã¯ã¨ãªã ãè¨è¿°ãã¾ãã
ããã§ç´è¿ã®60ç§ã®ãã°ããã¢ã¯ã»ã¹ãã¦ããIPã¢ã¯ã»ã¹åæ°ã®å¹³åã
select
count(*)
from
(select count(column0) as gcnt,
column0
from
log \ // 20120321:ä¿®æ£
group by column0)
where (gcnt*3) < (select
avg(cnt)
from (select
count(column0) as cnt,
column0
from
log
where
C_TIME > DATEADD(SECOND, -60, current_timestamp)
group by column0)
);
大ããè¶ ãã(3å)IPãåå¨ãã¦ããããã«ã¦ã³ããã¦ã¾ãã
ããã§æ³¨ç®ãã¦ããã ãããããã®ã¯ãä¸ãã3è¡ç®ã®C_TIMEã¨ããé ç®ã§ãã
ããã¯Setsunaããã¼ã¿ããã¼ãã«ã«æ ¼ç´ããéã«èªåçã«ä½æãã¦ããã«ã©ã ã§ãã
ãã®ã«ã©ã ã«ã¯ããã¼ã¿ãæå ¥ããæ¥æãTimestampåã§ç»é²ããã¾ãã
ãªã®ã§ããã®ããã«ç¾å¨æå»ãã60ç§åã®ãããªæå®ãå¯è½ã«ãªã£ã¦ãã¾ãã
"C_TIME > DATEADD(SECOND, -60, current_timestamp)"ã®é¨åã
ãã®ã»ãã«longåã®ã·ã¼ã±ã³ã¹å¤ããã£ã¦ãã¾ããããã¯0å§ã¾ãã®ã·ã¼ã±ã³ã¹å¤
ãªã®ã§ãåç´ã«ãã¼ã¿ãã½ã¼ãããéã¯ãã¡ãã便å©ã§ãã
ãã®æ¡ä»¶æå®ã®é¨åãQueryã¨å¼ãã§ãã¾ãã
ãã¦-tirggerã¨-queryã§ãã¼ã¿ããã³ããªã³ã°åºæ¥ãã°å¾ã¯ãUserEventã¨è¨ãæå¾ã®é¨åã§ãã
ããã¯ãã¦ã¼ã¶ãèªç±ã«å®ç¾©ããå¦çãæå®ããé¨åã§ãã
ä»åã®ä¾ã§ã¯loggerã¨è¨ãããsyslogã«ãã°ãåºåããæ¨æºã®ã©ã¤ãã©ãªã使ãããã¨æãã¾ãã
UserEventãå©ç¨ããå ´åã¯-eventã¨è¨è¿°ãããã以éã«å®è¡ããã³ãã³ããè¨è¿°ãã¾ãã
以ä¸ã®ããã«ãªãã¾ãã
ããã¦ä»ã¾ã§ã®å ¨ã¦ãç¹ãã¨ä»¥ä¸ã®ããã«ãªãã¾ãã
-event "logger Warning!! System busy"
ããã§topã®ãã¼ãã¢ãã¬ã¼ã¸å¤ã1以ä¸ã®å ´åã«ãç´è¿60ç§éã®ã¢ã¯ã»ã¹ã®éã«ç°å¸¸ã«
$top -b -d 1 | grep --line-buffered "top -" | java -jar setsuna.jar -stream top\
-trigger "COLUMN10 > 1" \
-query "select \
* \
from \
(select count(column0) as gcnt,\
column0 \
from \
log \ // 20120321:ä¿®æ£
group by column0) \
where (gcnt*3) < (select \
avg(cnt) \
from (select \
count(column0) as cnt,\
column0\
from \
log\
where\
C_TIME > DATEADD(SECOND, -60, current_timestamp)\
group by column0)"\
-event "logger Warning!! System busy"
ã¢ã¯ã»ã¹æ°ãå¤ãIPã¢ãã¬ã¹ãè¦ã¤ãã¦syslogã«ã¯ã¼ãã³ã°ãåºåã§ãã¾ãã
â»2012/03/20 追è¨
- eventã§æå®ããã³ãã³ãã«ã¯å¼æ°ã¨ãã¦ãã®UserEventãå®è¡ããå¼ãéã¨ãªã
Adapterããã®ãã¼ã¿ã1ã¬ã³ã¼ãã渡ãããã®ã§ç¬¬ä¸å¼æ°ã§åå¾ãã¦ä½¿ãã¾ãã
ãããªæãã§ãã
å®éã«ã¯ä¸ã®ããã«ãªãã¾ãã
-event "logger "
logger "{"COLUMN0":"top","COLUMN1":"-","COLUMN2":"17:01:58","COLUMN3":"up","COLUMN4":"23","COLUMN5":"min,","COLUMN6":"2","COLUMN7":"users,","COLUMN8":"load","COLUMN9":"average:","COLUMN10":"0.20,","COLUMN11":"0.12,","COLUMN12":"0.09"}"
1ã¬ã³ã¼ãã§ã¯ãªããSQLãªã©ã§ãã¼ã¿ãåå¾ãã¦ããããå©ç¨ãããå ´åã¯
- eventqueryã使ãã¾ãã
ããã¯UserEventã§SQLãå®è¡ãããã®ã§æ¸ãæ¹ã¯-queryã¨å
¨ãåãã§ãã
ãã çµæãæ¨æºåºåã«åºåãããã®ã§ãSetsunaãã®ãã®ãããã«å¥ã®ã³ãã³ãã«ãã¤ãã§ç¹ãã§ã-eventqueryã®çµæãå©ç¨åºæ¥ã¾ãã
ãã¼ã¸ã§ã³0.0.1ã§ã¯-eventãã-eventqueryã®ã©ã¡ããããæå®åºæ¥ã¾ããã
次ã®ãã¼ã¸ã§ã³ã§ããã®ã¯ã¨ãªã®çµæã-eventã§æå®ããã³ãã³ãã«ã渡ããæ§ã«ããäºå®ã§ãã
ãã®ããã«ãè¤æ°ã®ãã¼ã¿ãSetsunaã«æµãã¦ããã°ããããè¤åãã¦ãã¼ã¿ã®å¤åãæ´ããã¨ã
åºæ¥ã¾ããã¦ã¼ã¶ã¤ãã³ããæå®ã¯èªç±ãªã®ã§ãã¡ã¼ã«ãåºããããä»åã®ä¾ã§è¨ãã¨iptablesãªã©ã§
IPãé®æãããã¨ãã§ãã¾ãã
ãã ãããã¼ã¿ãã¼ã¹ã§ã¯ãªããããã¼ã¿ãèç©ãããã¨ã¯ã§ãã¾ãããSQLã§ãã¼ã¿ãå¼ãããã
ãã¼ã¿ã¯èç©ãããããã«è¦ãã¾ãããèªåçã«å¤ããã¼ã¿ããæ¶ãã¦ããã¾ãã(ããã©ã«ã10åå)
ããã¯å¤§éã®ã¤ã³ããããã¼ã¿ã«é«éã«å¦çãè¡ãããã«å
èDBãã¤ã³ã¡ã¢ãªã§ããããã§ãã
ããã¾ã§å¦çãè¡ãã¨ã³ã¸ã³ã¨ããã¨ããã§ããã
ç¾å¨ã¯ãã¤ãã®ã¤ã³ããããããªãã®ã§ä»å¾ã¯ãµã¼ãåã®éçºãè¡ããå¤é¨ããNWè¶ãã«ãã¼ã¿ã
æµããããã«ããäºå®ã§ãããã°ã³ã¬ã¯ã¿ãæè¿ã¯ç±ãã®ã§ããããã¨ãã¤ãªãããã§ã(fluentdã¨ãè¯ãã§ããï¼ï¼)ã