2022.03 ~ 2022.06
๋ฌธ์ ์
- ํด๋ผ์ฐ๋ ์๋น์ค๋ ๋ชจ๋ํฐ๋ง ์งํ๋ง์ผ๋ก ์ค์ ์๋น์ค ์ํ๋ฅผ ํ๋จํ๊ธฐ๊ฐ ์ด๋ ค์
- ๊ณ ๊ฐ๊ณผ ๋์ผํ ์๋น์ค ๋ ๋ฒจ์์ ๋ฐ์ดํฐ๋ฅผ ์์งํ๊ธฐ ์ํด ๋ชจ๋ ํ์ดํผ๋ฐ์ด์ ์ ๋๋ฏธ ์ธ์คํด์ค๋ฅผ ์์ฑ
- 500๋๊ฐ ๋๋ ๋๋ฏธ ์ธ์คํด์ค๊ฐ ์ ๋๋ก ๊ด๋ฆฌ๋์ง ์๋ ์ํ์์
- ๋ชจ๋ํฐ๋ง ๋ง์คํฐ ์๋ฒ๊ฐ ๋จ์ผํ๋์ด ์์ด ์ฅ์ ์ ์ทจ์ฝํ์
- ๋ชจ๋ํฐ๋ง ์์คํ ์์ ๋ฐ์ํ๋ ๋ชจ๋ ์ด๋ฒคํธ๋ฅผ ์์ ๋ก ์ ๋ฆฌํด ๊ด๋ฆฌํ๊ณ ์์์
ํด๊ฒฐ ๋ฐฉ๋ฒ
- ๋๋ฏธ ์ธ์คํด์ค ์ ์ ์กฐ์ฌ, ์ ๊ท ์์ฑ ๋ฐ ์ญ์ ๋ฅผ GUI๋ก ์์ฝ๊ฒ ํ ์ ์๋ ํด ๊ฐ๋ฐ
- AWS, KT Cloud๋ฅผ ํ์ฉํด ๋ชจ๋ํฐ๋ง ์๋ฒ๋ฅผ DR ๊ตฌ์ฑ
- ELK ์คํ์ ๋์ ํด ๋๋ฏธ ์ธ์คํด์ค์์ ๋ฐ์ํ๋ ๋ชจ๋ ์ด๋ฒคํธ๋ฅผ ์๋์ผ๋ก ์์งํ๋๋ก ๊ฐ๋ฐ
๊ตฌ์กฐ

๊ธฐ์ ์คํ
- Openstack SDK + FastAPI
- icinga
- ELK
- Docker
๋์
icingabeat๋ ์ด๋ฒคํธ๊ฐ ๋ฐ์ํ ๋๋ง๋ค logstash๋ก ๋จ์ผ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ฒ ๋ฉ๋๋ค.
์ฆ ํ๋์ ํธ์คํธ์ ์ฅ์ ๊ฐ ๋ฐ์ํด ํต์ ์ด ๋จ์ ๋์๋ค๊ฐ ํ๋ณต๋ ๊ฒฝ์ฐ, ๋ ๊ฐ์ ๋
๋ฆฝ๋ ์ด๋ฒคํธ๊ฐ ์ ์ก๋ฉ๋๋ค.
๋ฐ๋ผ์ ํธ์คํธ๋ช
๊ณผ ์๋น์ค ์ ์ ์ ๋ฌด๋ก ์ผ๋ง๋งํผ ํต์ ์ด ๋จ์ ๋์๋์ง ํ์ธํ๋ ์์
์ด ํ์ํ์ต๋๋ค.
Kibana๋ก ๋์๋ณด๋๋ฅผ ๊ตฌ์ฑํ๋ ๊ณผ์ ์์ scripted filter๋ฅผ ์ฌ์ฉํด ๋ฐ์ดํฐ๋ฅผ ํ์ฒ๋ฆฌํ๊ณ ์ ํ์ง๋ง, ํ๋์ ๋๋ฉ์ธ์์๋ง ๋์ํ๊ธฐ ๋๋ฌธ์ ๋ ๊ฐ์ ๋๋ฉ์ธ์ ์ฌ์ฉํด ๋จ์ ์๊ฐ์ ํ์ธํ๋ ๊ฒ์ด ๋ถ๊ฐ๋ฅํ์ต๋๋ค.
์ด๋ฅผ ํด์ํ๊ธฐ ์ํด Logstash์์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฒ๋ฆฌํ๋ ๋ฐฉ์์ ๋์
ํ๊ณ ,
ES์ ์ด์ ๋ฐ์ดํฐ๋ฅผ ์ฐธ์กฐํ๋ ์ฝ๋๋ฅผ ์ถ๊ฐํด ๋ฐ์ดํฐ ํ๋์ ๋จ์ ์๊ฐ์ ๊ธฐ๋กํจ์ผ๋ก์จ ์ํ๋ ๋ฐฉ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๊ฒ ๋์์ต๋๋ค.
input {
beats {
port => 5044
host => "..."
}
}
filter {
if [icinga][notification_type] == "RECOVERY" {
mutate {
add_field => { "event_end" => "${timestamp}" }
}
elasticsearch {
hosts => ["..."]
index => "elk-*"
query => "icinga.notification_type:PROBLEM AND icinga.host.keyword:${[icinga][host]}"
fields => {"@timestamp" => "started"}
}
date {...}
ruby {...}
}
}๊ฒฐ๊ณผ
- ํ์ฌ 2000๋ ์ด์์ ์ธ์คํด์ค์ ๋ํด ์ด๋ฒคํธ ์์ง ์ค
- ์ธ์คํด์ค ์๋ 4๋ฐฐ ์ด์ ๋์์ง๋ง ์ด๋ฒคํธ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฆฌํ๋ ๋ฐ 95% ์ด์ ๊ณต์ ์ ์ฝ
- ์ด๋ฒคํธ ๋ฐ์ดํฐ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก Kibana ๋์๋ณด๋ ์ ์, ๊ฐ์ฉ๋ฅ ๊ณผ ์ฅ์ ์ด๋ ฅ ๋ฑ ๋ฐ์ดํฐ ์ ๊ณต
- ๊ฐ๊ด์ ์ด๊ณ ์ ํํ ์ค์๊ฐ ์งํ๋ก ๊ฒฝ์์ง ์ด์ ์๋ฃ๋ก ์ฐจ์ฉ
๊ธฐ์ฌ๋
- FastAPI ์๋ฒ ๊ฐ๋ฐ, Openstack SDK ์ฐ๋ (50%)
- ํ์ดํผ๋ฐ์ด์ ๊ฐ ์ฆ์ค, ์ญ์ ๋ ๋๋ง๋ค GUI ๊ธฐ๋ฐ์ผ๋ก ๋๋ฏธ ์ธ์คํด์ค ์์ฑ ๋ฐ ์ ๊ฑฐ
- icinga ์๋ฒ ๊ตฌ์ฑ (60%)
- AWS 4๊ฐ ๋ฆฌ์ , KT Cloud์ icinga ์๋ฒ๋ฅผ ๊ตฌ์ฑํด ์ด์
- Docker-compose ๊ธฐ๋ฐ์ผ๋ก ์ผ๊ด์ ์ธ ์๋ฒ ๊ตฌ์ถ
- ์ธ๋ถ ํด๋ผ์ฐ๋๋ก ๋ชจ๋ํฐ๋ง ์๋ฒ DR ๊ตฌ์ฑ (100%)
- ๋ชจ๋ํฐ๋ง ๋์์ ๋์ผํ๊ฒ ๊ด๋ฆฌํ ์ ์๋๋ก icinga API๋ฅผ ํ์ฉํ sync ๊ธฐ๋ฅ ๊ฐ๋ฐ
- icingabeat + ELK ํ์ดํ๋ผ์ธ ๊ตฌ์ถ (100%)