ELK ์คํ์ด ์ ๋ช ํ ์ด์ ๋ ๋ฌด์์ ๋๊น?
ELK ์คํ์ ๋ก๊ทธ ๋ถ์ ๊ณต๊ฐ์์์ ํ์๋ฅผ ์ฑ์์ฃผ๊ธฐ ๋๋ฌธ์ ์ ๋ช ํฉ๋๋ค. ์ฌ๋ฌ๋ถ์ IT ์ธํ๋ผ๊ฐ ์ ์ ๋ ํผ๋ธ๋ฆญ ํด๋ผ์ฐ๋๋ก ์ด๋ํ ์๋ก, ํด๋น ์ธํ๋ผ์ ์๋ฒ ๋ก๊ทธ, ์ ํ๋ฆฌ์ผ์ด์ ๋ก๊ทธ, ํด๋ฆญ์คํธ๋ฆผ ํ๋ก์ธ์ค๋ฅผ ๋ชจ๋ํฐ๋งํ๊ธฐ ์ํด ๋ก๊ทธ ๊ด๋ฆฌ์ ๋ถ์ ์๋ฃจ์ ์ด ํ์ํฉ๋๋ค. ELK ์คํ์ ๊ฐ๋ฐ์์ DevOps ์์ง๋์ด๊ฐ ์ค๋ฅ ์ง๋จ, ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๋ฅ, ์ธํ๋ผ ๋ชจ๋ํฐ๋ง์ผ๋ก๋ถํฐ ๊ฐ์ง ์ธ์ฌ์ดํธ๋ฅผ ์ป์ ์ ์๋๋ก ์ ์ ๋น์ฉ์ผ๋ก ๋จ์ํ๋ฉด์๋ ๊ฐ๋ ฅํ ๋ก๊ทธ ๋ถ์ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค.
- ์ถ์ฒ : https://aws.amazon.com/ko/opensearch-service/the-elk-stack/
๋ฐ์ดํฐ ์ฒ๋ฆฌ ๊ด๋ จ ์คํ์์ค ์๋ฃจ์ ์ธ ์๋ผ์คํฑ ์์น(Elasticsearch) + ๋ก๊ทธ์คํ์(Logstash) + ํค๋ฐ๋(Kibana)๋ฅผ ๊ฐ์ด ์ฐ๋ํ์ฌ ์ฌ์ฉํ๋ค๋ ์๋ฏธ๋ก, ELK ํน์ ELK ์คํ(ELK Stack), ์๋ผ์คํฑ ์คํ(Elastic Stack)์ด๋ผ๊ณ ํ๋ค.
- Elasticsearch : ๋ก๊ทธ ์ ์ฅ ๋ฐ ๊ฒ์
- Data Processing (Logstash)
- ์๋ฒ ๋ด์ ๋ก๊ทธ, ์น, ๋ฉํธ๋ฆญ ๋ฑ ๋ค์ํ ์์ค์์ ๋ฐ์ดํฐ๋ฅผ ์์งํ์ฌ ์ ๋ ฅ
- ๋ฐ์ดํฐ ๋ณํ ๋ฐ ๊ตฌ์กฐ ๊ตฌ์ถ
- ๋ฐ์ดํฐ ์ถ๋ ฅ ๋ฐ ์ก์
- Data Processing (Logstash)
- Logstash : ๋ก๊ทธ ์์ง ์์ง
- Storage (Elasticsearch)
- ๋ฐ์ดํฐ ์ ์ฅ
- ๋ฐ์ดํฐ ๋ถ์
- ๋ฐ์ดํฐ ๊ด๋ฆฌ
- Storage (Elasticsearch)
- Kibana : ๋ก๊ทธ ์๊ฐํ ๋ฐ ๊ด๋ฆฌ
- Visualize (Kibana)
- Dashboard๋ฅผ ํตํ ๋ฐ์ดํฐ ํ์
- ํ์๋ค๊ณผ ๊ณต์ ๋ฐ ํ์ ํ๋๋ฐ ์ฌ์ฉ ๊ฐ๋ฅ
- ์์ธ์ค ์ ์ด (Access Control) ์ฌ์ฉ ๊ฐ๋ฅ
- Visualize (Kibana)
ELK ์๋ฃจ์ ์์ Beats ์ถ๊ฐ๋๋ฉด์ ELK Stack์ด๋ผ๊ณ ๋ถ๋ฆฐ๋ค.
Beats : ์๋ฒ์ ์์ด์ ํธ๋ก ์ค์นํ์ฌ ๋ค์ํ ์ ํ์ ๋ฐ์ดํฐ๋ฅผ ElasticSearch ๋๋ Logstash์ ์ ์กํ๋ ์คํ ์์ค ๋ฐ์ดํฐ ๋ฐ์ก์๋ค.
๊ธฐ์กด์ ELK์์์ ํฐ ๋ฌธ์ ์ ์ค ํ๋๋ Logstash์๋ค.๋ฐ์ดํฐ ์์ง์ ์ญํ ์ ๋งก๊ณ ์๋ Logstash๋, ์ํ๋ ํํ๋ก์ ๋ฐ์ดํฐ ์ ์ถ๋ ฅ ๋ณํ ๊ธฐ๋ฅ๊น์ง ๋งก๊ณ ์์๊ธฐ ๋๋ฌธ์ ๊ทธ ์ค๋ฒํค๋๊ฐ ์ปธ๋ค. ๋ง์ ์ฌ์ฉ์๋ค์ ์๊ตฌ์ฌํญ์ ๋ฐ์๋ค์ธ Elastic ํ์ฌ๋, ์ค๋ก์ง ๋ฐ์ดํฐ์ ์์ง๋ง์ ๋ด๋นํ๋ ๊ฒฝ๋ํ๋ ๋ชจ๋ Beats๋ฅผ ๋์ ํ๋ค.
- ๊ฐ๋ ฅํ ์ ์ฐ์ฑ๊ณผ ํธํ์ฑ
์๋ผ์คํฑ ์์น, ๋ก๊ทธ์คํ์, ํค๋ฐ๋๋ ๊ฐ๊ฐ ๋ฐ์ดํฐ์ ์ฟผ๋ฆฌ(๊ฒ์), ์์ง, ์๊ฐํ๋ฅผ ๋ด๋นํ๋ค. ์ฉ๋๋ณ๋ก ๋ถ๋ฆฌํ์ฌ ๋ฐ์ ํ๋ ์๋ฃจ์ ์ด๊ธฐ์ ๊ตฌ์กฐ์ ์์ ์ฑ์ ๋ฌผ๋ก ๋ค๋ฅธ ์์คํ ๊ณผ๋ ์ ์ฐํ ํธํ์ฑ์ ๊ฐ์ง๋ค.
- ์์ ์คํค๋ง
JSON ๋ฐฉ์์ Key-Value ํ์์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ๋ฏ๋ก ํ์์ ์์ ๋กญ๋ค.
- ์ธ๋ฑ์ค ์์ผ๋์นด๋ ์ง์
๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ก ์น๋ฉด ํ ์ด๋ธ(Table)์ ํด๋นํ๋ ๊ฐ๋ ์ธ ์ธ๋ฑ์ค(Index)์ Union ๋๋ Join์ด ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์์ผ๋ ์นด๋(*) ํ๊ธฐ ํ๋๋ก ๋๋ ์๋ ์๋ค.
- ํ์ฅ(Scale-out) ๊ฐ๋ฅ ๋ฐ์ดํฐ๋ฒ ์ด์ค
์ฒ์๋ถํฐ ํ์ฅ์ ๊ณ ๋ คํ์ฌ ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ๋์ ์๋ฒ๋ฅผ ์ฎ์ด์ ์ฑ๋ฅ ํฅ์์ ๊ธฐ๋ํ ์ ์๋ ํด๋ฌ์คํฐ ๋ฐฉ์์ ๊ตฌ์ฑํ ๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณด๋ค ์๋์ ์ผ๋ก ๊ด๋ จ ์ ๋ณด์ ์ฝ๊ฒ ์ ๊ทผ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ์ฐจ๋ฅผ '๋ ๊ฑฐ์ ์ฝ๋ฉ'๋ณด๋จ ๊ฐ๋ณ ์ค์ ์ผ๋ก ๊ฐ๋ฅ
๋ฐ์ดํฐ ์ฒ๋ฆฌ ์ ์ฐจ๋ฅผ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ์ด์ฉํ ์ฝ๋ฉ์ผ๋ก ๋ช ์ํ๋ค๋ฉด, ํฅํ ์ ์ง๋ณด์๊ฐ ์ฉ์ดํ์ง ์๊ณ ๋ถํ์ํ ์ข ์์ฑ์ด ๋์์ง๋ ๋ฌธ์ ๊ฐ ์์ง๋ง ๋ก๊ทธ์คํ์(Logstash)๋ฅผ ํฌํจํ๋ ELK ์คํ ๊ตฌ์ฑ ์ ์ ์ฐ์ฑ ํ๋ณด๊ฐ ๊ฐ๋ฅํ๋ค.
- ์ฌ์ ์ ์ค๋น๋ ์๊ฐํ ๋๊ตฌ์ ๋ถ๊ฐ๊ธฐ๋ฅ
๋ฐ์ดํฐ๋ฅผ ์๊ฐํํ์ฌ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ์ฌ์ฉ์ ์ธํฐํ์ด์ค(UI)๋ฅผ ๋ด๋ณด๋ผ ํ๋ก๊ทธ๋จ์ ๋ฐ๋ก ์์ฑํ์ง ์์๋, ์ด๋ฏธ ์ฌ์ ์ ์ค๋น๋ ์๊ฐํ ๋๊ตฌ๋ฅผ ๊ฐ์ง ํค๋ฐ๋(Kibana)๊ฐ ๋ง์ฐ์ค ๋ช๋ฒ ์กฐ์ํ๋ฉด ๊ฑฐ์ง ๋ค ์์์ ํด์ค๋ค. ๊ทธ ์ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ์๋ฅผ ์ํ ๋ถ๊ฐ๊ธฐ๋ฅ์ด ํฌํจ๋์ด ์๋ค.
- ์ค์๊ฐ ๋ฐ์ดํฐ ์ฒ๋ฆฌ
๋ฉ์์ง ํ(Message Queue, MQ)์ ๊ฒฐํฉํ๋ฉด ๊ฐ๋ ฅํ ์ค์๊ฐ(Realtime) ๋ฐ์ดํฐ ์์ง ๋ฐ ์ฒ๋ฆฌ ์์คํ ์ด ๋๋ค.
- ์๋ผ์คํฑ ์์น์ ๋ฒ์ ๋ณ ๋ฒํฌ(Bulk) ๋ฐฉ๋ฒ ์ฐจ์ด๋ฅผ ์ํ์๋ผ์คํฑ ์์น์ ๋ฒํฌ(Bulk)๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์ฝ์ (Insert)์ ํด๋นํ๋ค. ํ๋ก๊ทธ๋๋ฐ์ผ๋ก ์ง์ ๊ตฌํํ ๊ฒฝ์ฐ ์๋ผ์คํฑ ์์น ๋ฒ์ ๋ณ ๋ฒํฌ ๋ฐฉ๋ฒ์ ์ฐจ์ด๊ฐ ํฌ๊ธฐ ๋๋ฌธ์, ์ธํฐ๋ท์ ๋ ๋์๋ค๋๋ ํํ ๋ฆฌ์ผ๋ง ๋ณด๊ณ ์งํํ๊ธฐ์๋ ์ค๋๋ ์๋ฃ๋ ๋ง์ ๋ฌด๋ฆฌ๊ฐ ๋ฐ๋ฅผ ์ ์๋ค. ๋ก๊ทธ์คํ์(Logstash)๋ก ์๋ผ์คํฑ ์์น๋ฅผ ๋ค๋ฃฌ๋ค๋ฉด ์ด๋ฐ ๊ฑฑ์ ์ ํ์ง ์์๋ ๋๋ค.
'๋์งํธ ๊ฟํ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
const , let, var์ ์ฐจ์ด (0) | 2022.05.20 |
---|---|
curl ์ค์น ๋ฐ ์ฌ์ฉ๋ฒ (0) | 2022.05.18 |
[์นด์นด์ค๋ทฐ] ๋ณด๋ ์๋ ๋ฐํ 5๋จ๊ณ, ์๋ ๋ฐํ (์ค๋ฅ๊ฐ ์ข ์ข ๋ฐ์ํ๋ ์ฝ๋) (5) | 2022.05.17 |
๋๊ธ