๊ทธ๋์ ์ ๋ ๋งค์ฐ ๋ณต์กํ ์ด๋ฒคํธ๋ฅผ ์ธ๋ฑ์ฑํ๋๋ฐ ์ด์ ์ฌ์ฉ์์๊ฒ ํ์ํ๊ณ ์ถ์ต๋๋ค.
"๋ฐฐ์ด์ ๊ฐ์ฒด๊ฐ ์ง์๋์ง ์์ต๋๋ค"๋ผ๋ ๋ฉ์์ง๊ฐ ํ์๋์ด copy_to: hits.messages
๋ฅผ ์ฌ์ฉํด์ผ ํ์ง๋ง ๋ค๋ฅธ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์ต๋๋ค.
Kibana๊ฐ doc_values: true
ํ๋๋ฅผ ํ์ํ ์ ์๋ ๊ฒ ๊ฐ์ต๋๋ค. ์ค์ ๋ก kibana๋ ES REST API๋ฅผ ํตํด ์ผ๋ฐ ์ฟผ๋ฆฌ์์ ๋ฐํ๋๋ ํ๋๋ฅผ ํ์ํ ์ ์์ต๋๋ค.
"fields": {
"hits.messages": [
"Access denied with code 402 (phase 2). Pattern match \"(.*)\" at TX:960009-OWASP_CRS/PROTOCOL_VIOLATION/MISSING_HEADER-REQUEST_HEADERS.",
"Operator EQ matched 0 at REQUEST_HEADERS.",
"Pattern match \"^[\\\\d.:]+$\" at REQUEST_HEADERS:Host."
]
}
hits.messages
๊ฐ ๋ค์๊ณผ ๊ฐ์ด ๋งคํ๋์์์๋ ๋ถ๊ตฌํ๊ณ :
"messages" : {
"index" : "not_analyzed",
"type" : "string",
"doc_values" : true
},
Kibana์๋ ํ์๋์ง ์์ต๋๋ค. ์๊ฐํํ ์๋ ์์ง๋ง ํ์ํ ์๋ ์์ต๋๋ค. ์ด๊ฒ์ ์ ์์ ์ธ ์ธ๊ฐ์ด ๊ธฐ๋ํ๋ ๊ฒ๊ณผ ๋ชจ์๋ฉ๋๋ค. ๋ํ ๊ฒ์ํ ์ ์์ผ๋ฉด ๋ณผ ์ ์์ด์ผ ํ๋ฉฐ ์ถ๊ฐ 8๋ฐ์ดํธ RAM์ด ๋ญ๋น๋๋์ง ์ฌ๋ถ๋ ์ค์ํ์ง ์์ต๋๋ค.
hit.messages์ ๊ฒฝ์ฐ Kibana๋ "์ด ํ๋๋ Elasticsearch ๋งคํ์ ์์ง๋ง ๊ฒ์ ๊ฒฐ๊ณผ์ ๋ฌธ์์๋ ์์ต๋๋ค. ์ฌ์ ํ ์๊ฐํํ๊ฑฐ๋ ๊ฒ์ํ ์ ์์ต๋๋ค."๋ผ๊ณ ๋งํฉ๋๋ค.
๋๋ ๋ฌธ์๋ฅผ ์ฝ์์ง๋ง ์ด๋์์๋ ํ๋์ ๋ํ ์ธ๊ธ์ ๋ณธ ์ ์ด ์์ต๋๋ค. kibana๊ฐ _source
ํ๋๋ง ํ์ํ๋ ๊ฒฝ์ฐ ์ด๋ ๋งค์ฐ ์ค์ํ๋ฏ๋ก ๋ฉ์ธ kibana ๋งค๋ด์ผ ํ์ด์ง์ ํฐ ๋นจ๊ฐ์ ๊ธ์๋ก ์์ฑํ์ญ์์ค.
ELK ํธ๋ฆฌ์ค์๋ ๊ณต๊ฐ๋ ๋ฒ๊ทธ๊ฐ ๋๋ฌด ๋ง์์ ์ถ๊ฐ๋ก ๊ธฐ๋กํด์ผ ํ๋์ง ์๋๋ฉด ์ํํธ์จ์ด๋ฅผ ๊ฑด๋๋ฐ์ด์ผ ํ๋์ง ์ ๋ชจ๋ฅด๊ฒ ์ต๋๋ค.
๋ค. Kibana๋ _source
์ ์ ์ฅ๋ ํญ๋ชฉ๋ง ํ์ํฉ๋๋ค. ํผ๋์ ๋๋ ค ์ฃ์กํฉ๋๋ค. ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ง๊ณํ ์๋ ์์ง๋ง ํ์ํ ์๋ ์์ต๋๋ค.
๊ฑด๋ฐฐ
logstash๋ฅผ ์ฌ์ฉํ์ฌ ์๋ ์ด๋ฒคํธ๋ฅผ ์ฌ์ ๋ ฌํ๊ณ ๋งน๊ธ๋ง/์กฐ์ ๋ ๋ฐ์ดํฐ๋ก ์ ํ๋๋ฅผ ์ฝ์ ํ๋ ๊ฒ ์ธ์ ํด๊ฒฐ ๋ฐฉ๋ฒ์ ๋ฌด์์ ๋๊น?
์ง๊ธ ๋ฌธ์ ์ ์ง๋ฉดํด ์์ต๋๋ค. Kibana๋ ์ ํ ์ฌ์ฉ์ ์นํ์ ์ด์ง ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ง๊ธ ๋ฌธ์ ์ ์ง๋ฉดํด ์์ต๋๋ค. Kibana๋ ์ ํ ์ฌ์ฉ์ ์นํ์ ์ด์ง ์์ต๋๋ค.