๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ๋ก ์ ํํ๋ฉด์ ์ฐ๋ฆฌ๋ ์๋ก์ด ๊ณผ์ ์ ์ง๋ฉดํ๊ฒ ๋ฉ๋๋ค.
๋ชจ๋๋ฆฌ์ ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ผ๋ฐ์ ์ผ๋ก ์์คํ ์ ์ด๋ ๋ถ๋ถ์์ ์ค๋ฅ๊ฐ ๋ฐ์ํ๋์ง ํ์ธํ๋ ๊ฒ์ด ๋งค์ฐ ์ฝ์ต๋๋ค. ๋๋ถ๋ถ์ ๊ฒฝ์ฐ ๋ฌธ์ ๋ ๋ชจ๋๋ฆฌ์ค ์์ฒด์ ์ฝ๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ง์ดํฌ๋ก์๋น์ค ์ํคํ ์ฒ์์ ๋ฌธ์ ๋ฅผ ์ฐพ๊ธฐ ์์ํ๋ฉด ๋ชจ๋ ๊ฒ์ด ๋ ์ด์ ๋ช ํํ์ง ์์ต๋๋ค. ์์ฒญ์ด ์ฒ์๋ถํฐ ๋๊น์ง ์ด๋ํ ์ ์ฒด ๊ฒฝ๋ก๋ฅผ ์ฐพ์ ์๋ฐฑ ๊ฐ์ ๋ง์ดํฌ๋ก์๋น์ค ์ค์์ ์ ํํด์ผ ํฉ๋๋ค. ๋์ฑ์ด ๊ทธ๋ค ์ค ๋ค์๋ ์์ฒด ์ ์ฅ ์์ค์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ๋ ผ๋ฆฌ์ ์ค๋ฅ๋ ๋ฌผ๋ก ์ฑ๋ฅ ๋ฐ ๋ด๊ฒฐํจ์ฑ ๋ฌธ์ ๋ ๋ฐ์ํ ์ ์์ต๋๋ค.
๋๋ ๊ทธ๋ฌํ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋๋ ๋๊ตฌ๋ฅผ ์ค๋ซ๋์ ์ฐพ๊ณ ์์์ต๋๋ค. (๋๋ Habrรฉ์ ์ด์ ๋ํด ์ผ์ต๋๋ค:
๋ถ์ฐ ์ถ์ ์ ๋ถ์ฐ ์์คํ ์์ ์ค๋ฅ๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ ๋ํ ์ผ๋ฐ์ ์ธ ์๋ฃจ์ ์ ๋๋ค. ๊ทธ๋ฌ๋ ๋คํธ์ํฌ ์ํธ ์์ฉ์ ๋ํ ์ ๋ณด๋ฅผ ์์งํ๋ ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ด ์์ง ์์คํ ์ ๊ตฌํ๋์ง ์์๊ฑฐ๋, ๋ ๋์๊ฒ๋ ์์คํ ์ ์ผ๋ถ์์๋ ์ด๋ฏธ ์ ๋๋ก ์๋ํ์ง๋ง ๋ถ๋ถ์ ์ผ๋ก๋ ์ด์ ์๋น์ค์ ์ถ๊ฐ๋์ง ์์๊ธฐ ๋๋ฌธ์ ์๋ํ์ง ์๋ ๊ฒฝ์ฐ์๋ ์ด๋ป๊ฒ ๋ ๊น์? ? ๋ฌธ์ ์ ์ ํํ ๊ทผ๋ณธ ์์ธ์ ํ์ ํ๋ ค๋ฉด ์์คํ ์์ ๋ฌด์จ ์ผ์ด ์ผ์ด๋๊ณ ์๋์ง์ ๋ํ ์์ ํ ๊ทธ๋ฆผ์ด ํ์ํฉ๋๋ค. ์ฃผ์ ๋น์ฆ๋์ค์ ์ค์ํ ๊ฒฝ๋ก์ ์ด๋ค ๋ง์ดํฌ๋ก์๋น์ค๊ฐ ๊ด๋ จ๋์ด ์๋์ง ์ดํดํ๋ ๊ฒ์ด ํนํ ์ค์ํฉ๋๋ค.
์ฌ๊ธฐ์์๋ ์๋น์ค ์์ฒด๊ฐ ์๋ํ๋ ๊ฒ๋ณด๋ค ๋ฎ์ ์์ค์์ ๋คํธ์ํฌ ์ ๋ณด๋ฅผ ์์งํ๊ธฐ ์ํ ๋ชจ๋ ๊ธฐ๊ณ๋ฅผ ์ฒ๋ฆฌํ๋ ์๋น์ค ๋ฉ์ ์ ๊ทผ ๋ฐฉ์์ด ๋์์ด ๋ ์ ์์ต๋๋ค. ์ด ์ ๊ทผ ๋ฐฉ์์ ์ฌ์ฉํ๋ฉด ๋ชจ๋ ํธ๋ํฝ์ ๊ฐ๋ก์ฑ์ ์ฆ์ ๋ถ์ํ ์ ์์ต๋๋ค. ๊ฒ๋ค๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด์ ๋ํด ์๋ฌด๊ฒ๋ ์ ํ์์กฐ์ฐจ ์์ต๋๋ค.
์๋น์ค ๋ฉ์ ์ ๊ทผ ๋ฐฉ์
์๋น์ค ๋ฉ์ ์ ๊ทผ ๋ฐฉ์์ ์ฃผ์ ์์ด๋์ด๋ ๋คํธ์ํฌ๋ฅผ ํตํด ๋ ๋ค๋ฅธ ์ธํ๋ผ ๊ณ์ธต์ ์ถ๊ฐํ๋ ๊ฒ์ ๋๋ค. ์ด๋ฅผ ํตํด ์๋น์ค ๊ฐ ์ํธ ์์ฉ์ผ๋ก ๋ชจ๋ ์์ ์ ์ํํ ์ ์์ต๋๋ค. ๋๋ถ๋ถ์ ๊ตฌํ์ ๋ค์๊ณผ ๊ฐ์ด ์๋ํฉ๋๋ค. ํฌ๋ช ํ ํ๋ก์๊ฐ ์๋ ์ถ๊ฐ ์ฌ์ด๋์นด ์ปจํ ์ด๋๊ฐ ๊ฐ ๋ง์ดํฌ๋ก์๋น์ค์ ์ถ๊ฐ๋๊ณ , ์ด๋ฅผ ํตํด ์๋น์ค์ ๋ชจ๋ ๋ค์ด์ค๊ณ ๋๊ฐ๋ ํธ๋ํฝ์ด ์ ๋ฌ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฐ๋ก ์ด๊ณณ์์ ํด๋ผ์ด์ธํธ ๋ฐธ๋ฐ์ฑ์ ์ํํ๊ณ , ๋ณด์ ์ ์ฑ ์ ์ ์ฉํ๊ณ , ์์ฒญ ์์ ์ ํ์ ๊ฐํ๊ณ , ํ๋ก๋์ ์๋น์ค ์ํธ ์์ฉ์ ๋ํ ์ค์ํ ์ ๋ณด๋ฅผ ์์งํ ์ ์์ต๋๋ค.
์๋ฃจ์
์ด ์ ๊ทผ ๋ฐฉ์์ ์ด๋ฏธ ์ฌ๋ฌ ๊ฐ์ง ๊ตฌํ์ด ์์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ, ์ฐ๋ฆฌ๋ ์ง๊ธ ๋น์ฅ ํ์ํ ๊ธฐ๋ฅ์ด ๋ฌด์์ธ์ง ์ ํํ ์ดํด๋ณด์๊ณ , ์ด๋ฌํ ์๋ฃจ์ ์ ๊ตฌํํ๊ธฐ ์์ํ ์ฃผ๋ ์ด์ ๋ ์ ์ฒด ์์คํ ์์ ์ถ์ ์ ๋ณด๋ฅผ ํฌ๋ช ํ๊ฒ ์์งํ๋ ๋ฅ๋ ฅ์ด๋ผ๊ณ ํ๋จํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ๋ํ ์๋น์ค์ ์ํธ ์์ฉ์ ์ ์ดํ๊ณ ์๋น์ค ๊ฐ์ ์ ์ก๋๋ ํค๋๋ฅผ ์ฌ์ฉํ์ฌ ๋ค์ํ ์กฐ์์ ์ํ์ต๋๋ค.
๊ทธ ๊ฒฐ๊ณผ, ์ฐ๋ฆฌ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ์ ์ ๋ด๋ ธ์ต๋๋ค.โ
๋คํธ๋ผ๋ฉ์
์๋ก์ด ์๋ฃจ์ ์ ์ฃผ์ ๋ชฉํ๋ ๋ฎ์ ๋ฆฌ์์ค ์ค๋ฒํค๋์ ๋์ ์ฑ๋ฅ์ด์์ต๋๋ค. ์ฃผ์ ๊ธฐ๋ฅ ์ค ์ฐ๋ฆฌ๋ ์ฆ์ ์ถ์ ๋ฒ์๋ฅผ Jaeger ์์คํ ์ ํฌ๋ช ํ๊ฒ ๋ณด๋ผ ์ ์๊ธฐ๋ฅผ ์ํ์ต๋๋ค.
์ค๋๋ ๋๋ถ๋ถ์ ํด๋ผ์ฐ๋ ์๋ฃจ์ ์ Golang์ผ๋ก ๊ตฌํ๋ฉ๋๋ค. ๋ฌผ๋ก ์ฌ๊ธฐ์๋ ์ด์ ๊ฐ ์์ต๋๋ค. I/O์ ๋น๋๊ธฐ์ ์ผ๋ก ์๋ํ๊ณ ํ์์ ๋ฐ๋ผ ์ฝ์ด ์ ์ฒด์ ํ์ฅ๋๋ ๋คํธ์ํฌ ์ ํ๋ฆฌ์ผ์ด์ ์ Golang์ผ๋ก ์์ฑํ๋ ๊ฒ์ ํธ๋ฆฌํ๊ณ ๋งค์ฐ ๊ฐ๋จํฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ํ ๋งค์ฐ ์ค์ํ ๊ฒ์ ์ฑ๋ฅ์ด ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ์ ์ถฉ๋ถํ๋ค๋ ๊ฒ์ ๋๋ค. ๊ทธ๋์ ์ฐ๋ฆฌ๋ Golang์ ์ ํํ์ต๋๋ค.
ะัะพะธะทะฒะพะดะธัะตะปัะฝะพััั
์ฐ๋ฆฌ๋ ์ต๋์ ์์ฐ์ฑ์ ๋ฌ์ฑํ๊ธฐ ์ํด ๋ ธ๋ ฅ์ ์ง์คํด ์์ต๋๋ค. ์๋น์ค์ ๊ฐ ์ธ์คํด์ค ์์ ๋ฐฐํฌ๋๋ ์๋ฃจ์ ์ ๊ฒฝ์ฐ RAM ๋ฐ CPU ์๊ฐ์ด ์ฝ๊ฐ ์๋ชจ๋ฉ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌผ๋ก ์๋ต ์ง์ฐ๋ ์์์ผ ํฉ๋๋ค.
์ฐ๋ฆฌ๊ฐ ์ด๋ค ๊ฒฐ๊ณผ๋ฅผ ์ป์๋์ง ๋ด ์๋ค.
๋จ
Netramesh๋ ํธ๋ํฝ ์์ด ~10Mb๋ฅผ ์๋นํ๊ณ ์ธ์คํด์ค๋น ์ต๋ 50RPS์ ๋ก๋๋ก ์ต๋ 10000Mb๋ฅผ ์๋นํฉ๋๋ค.
Istio ํน์ฌ ํ๋ก์๋ ์์ฒ ๊ฐ์ ์ธ์คํด์ค๊ฐ ์๋ ํด๋ฌ์คํฐ์์ ํญ์ ~300Mb๋ฅผ ์๋นํฉ๋๋ค. ์ด๋ ์ ์ฒด ํด๋ฌ์คํฐ๋ก ํ์ฅ๋๋ ๊ฒ์ ํ์ฉํ์ง ์์ต๋๋ค.
Netramesh๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฉ๋ชจ๋ฆฌ ์๋น๊ฐ ์ต๋ 10๋ฐฐ ๊ฐ์ํ์ต๋๋ค.
CPU
CPU ์ฌ์ฉ๋์ ๋ก๋ ์ ์๋์ ์ผ๋ก ๋์ผํฉ๋๋ค. ์ฌ์ด๋์นด์ ๋ํ ๋จ์ ์๊ฐ๋น ์์ฒญ ์์ ๋ฐ๋ผ ๋ค๋ฆ ๋๋ค. ์ต๋ ์ด๋น ์์ฒญ 3000๊ฑด์ ๊ฐ:
ํ ๊ฐ์ง ๋ ์ค์ํ ์ ์ด ์์ต๋๋ค. Netramesh - ์ปจํธ๋กค ํ๋ ์ธ๊ณผ ๋ก๋๊ฐ ์๋ ์๋ฃจ์ ์ CPU ์๊ฐ์ ์๋นํ์ง ์์ต๋๋ค. Istio๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ด๋์นด๊ฐ ํญ์ ์๋น์ค ์๋ํฌ์ธํธ๋ฅผ ์ ๋ฐ์ดํธํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ์ฐ๋ฆฌ๋ ๋ก๋ ์์ด ์ด ๊ทธ๋ฆผ์ ๋ณผ ์ ์์ต๋๋ค:
์ฐ๋ฆฌ๋ ์๋น์ค ๊ฐ ํต์ ์ ์ํด HTTP/1์ ์ฌ์ฉํฉ๋๋ค. Envoy๋ฅผ ํตํด ํ๋ก์ํ ๋ Istio์ ์๋ต ์๊ฐ ์ฆ๊ฐ๋ ์ต๋ 5~10ms์์ผ๋ฉฐ, ์ด๋ ๋ฐ๋ฆฌ์ด ๋ด์ ์๋ตํ ์ค๋น๊ฐ ๋ ์๋น์ค์ ๊ฒฝ์ฐ ์๋นํ ๋ง์ ์๊ฐ์ ๋๋ค. Netramesh๋ฅผ ์ฌ์ฉํ๋ฉด ์ด ์๊ฐ์ด 0.5-2ms๋ก ๋จ์ถ๋์์ต๋๋ค.
ํ์ฅ์ฑ
๊ฐ ํ๋ก์๋ ์๋์ ๋ฆฌ์์ค๋ฅผ ์๋นํ๋ฏ๋ก ์ด๋ฅผ ๊ฐ ์๋น์ค ์์ ๋ฐฐ์นํ๋ ๊ฒ์ด ๊ฐ๋ฅํฉ๋๋ค. Netramesh๋ ๋จ์ํ ๊ฐ ์ฌ์ด๋์นด๋ฅผ ๊ฐ๋ณ๊ฒ ์ ์งํ๊ธฐ ์ํด ์ ์ด ํ๋ฉด ๊ตฌ์ฑ ์์ ์์ด ์๋์ ์ผ๋ก ๋ง๋ค์ด์ก์ต๋๋ค. ์๋น์ค ๋ฉ์ ์๋ฃจ์ ์์ ์ ์ด ํ๋ ์ธ์ ์๋น์ค ๊ฒ์ ์ ๋ณด๋ฅผ ๊ฐ ์ฌ์ด๋์นด์ ๋ฐฐํฌํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด์ ํจ๊ป ์๊ฐ ์ด๊ณผ ๋ฐ ๊ท ํ ์กฐ์ ์ค์ ์ ๋ํ ์ ๋ณด๋ ์ ๊ณต๋ฉ๋๋ค. ์ด ๋ชจ๋ ๊ธฐ๋ฅ์ ํตํด ๋ง์ ์ ์ฉํ ์์ ์ ์ํํ ์ ์์ง๋ง ๋ถํํ๋ ์ฌ์ด๋์นด์ ํฌ๊ธฐ๊ฐ ๋ถํ๋ ค์ง๋๋ค.
์๋น์ค ๋ฐ๊ฒฌ
Netramesh๋ ์๋น์ค ๊ฒ์์ ์ํ ์ถ๊ฐ ๋ฉ์ปค๋์ฆ์ ์ถ๊ฐํ์ง ์์ต๋๋ค. ๋ชจ๋ ํธ๋ํฝ์ Netra ์ฌ์ด๋์นด๋ฅผ ํตํด ํฌ๋ช ํ๊ฒ ํ๋ก์ ์ฒ๋ฆฌ๋ฉ๋๋ค.
Netramesh๋ HTTP/1 ์ ํ๋ฆฌ์ผ์ด์
ํ๋กํ ์ฝ์ ์ง์ํฉ๋๋ค. ์ด๋ฅผ ์ ์ํ๊ธฐ ์ํด ๊ตฌ์ฑ ๊ฐ๋ฅํ ํฌํธ ๋ชฉ๋ก์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ์์คํ
์๋ HTTP ํต์ ์ด ์ด๋ฃจ์ด์ง๋ ์ฌ๋ฌ ํฌํธ๊ฐ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด ์๋น์ค์ ์ธ๋ถ ์์ฒญ ๊ฐ์ ์ํธ ์์ฉ์๋ 80, 8890, 8080์ ์ฌ์ฉํ๋๋ฐ, ์ด ๊ฒฝ์ฐ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ์ค์ ํ ์ ์์ต๋๋ค. NETRA_HTTP_PORTS
.
Kubernetes๋ฅผ ์ค์ผ์คํธ๋ ์ดํฐ๋ก ์ฌ์ฉํ๊ณ ์๋น์ค ๊ฐ ํด๋ฌ์คํฐ ๋ด ํต์ ์ ์ํ ํด๋น ์๋น์ค ์ํฐํฐ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ฉ์ปค๋์ฆ์ ์ ํํ ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค. ๋จผ์ ๋ง์ดํฌ๋ก์๋น์ค๋ kube-dns๋ฅผ ์ฌ์ฉํ์ฌ ์๋น์ค IP ์ฃผ์๋ฅผ ํ๋ํ๊ณ ์ด์ ๋ํ ์ ์ฐ๊ฒฐ์ ์ฝ๋๋ค. ์ด ์ฐ๊ฒฐ์ ๋จผ์ ๋ก์ปฌ netra-sidecar๋ฅผ ํตํด ์ค์ ๋๋ฉฐ ๋ชจ๋ TCP ํจํท์ ์ฒ์์ netra์ ๋์ฐฉํฉ๋๋ค. ๋ค์์ผ๋ก netra-sidecar๋ ์๋ ๋์๊ณผ์ ์ฐ๊ฒฐ์ ์ค์ ํฉ๋๋ค. ๋ ธ๋์ ํฌ๋ IP์ ๋ํ NAT๋ netra๊ฐ ์๋ ๊ฒ๊ณผ ์ ํํ ๋์ผํ๊ฒ ์ ์ง๋ฉ๋๋ค.
๋ถ์ฐ ์ถ์ ๋ฐ ์ปจํ ์คํธ ์ ๋ฌ
Netramesh๋ HTTP ์ํธ ์์ฉ์ ๋ํ ์ถ์ ๋ฒ์๋ฅผ ๋ณด๋ด๋ ๋ฐ ํ์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. Netra-sidecar๋ HTTP ํ๋กํ ์ฝ์ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ , ์์ฒญ ์ง์ฐ์ ์ธก์ ํ๊ณ , HTTP ํค๋์์ ํ์ํ ์ ๋ณด๋ฅผ ์ถ์ถํฉ๋๋ค. ๊ถ๊ทน์ ์ผ๋ก ์ฐ๋ฆฌ๋ ๋จ์ผ Jaeger ์์คํ
์์ ๋ชจ๋ ์ถ์ ์ ์ป์ต๋๋ค. ์ธ๋ถํ๋ ๊ตฌ์ฑ์ ์ํด ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ์ ๊ณตํ๋ ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
ํ์ง๋ง ๋ฌธ์ ๊ฐ ์์ต๋๋ค. ์๋น์ค๊ฐ ํน๋ณํ uber ํค๋๋ฅผ ์์ฑํ๊ณ ๋ณด๋ผ ๋๊น์ง ์์คํ
์์ ์ฐ๊ฒฐ๋ ์ถ์ ๋ฒ์๋ฅผ ๋ณผ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ๋ฐ๋ก ๋ฌธ์ ์ ์์ธ์ ๋น ๋ฅด๊ฒ ์ฐพ์๋ด๊ธฐ ์ํด ํ์ํ ๊ฒ์
๋๋ค. ์ฌ๊ธฐ์์๋ Netramesh๊ฐ ํด๊ฒฐ์ฑ
์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ํ๋ก์๋ HTTP ํค๋๋ฅผ ์ฝ๊ณ Uber ์ถ์ ID๊ฐ ํฌํจ๋์ด ์์ง ์์ผ๋ฉด ํค๋๋ฅผ ์์ฑํฉ๋๋ค. Netramesh๋ ๋ํ ์ฌ์ด๋์นด์ ๋ค์ด์ค๊ณ ๋๊ฐ๋ ์์ฒญ์ ๋ํ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ํ์ํ ๋๊ฐ๋ ์์ฒญ ํค๋๋ก ์ด๋ฅผ ๊ฐํํ์ฌ ์ผ์น์ํต๋๋ค. ์๋น์ค์์ ํด์ผ ํ ์ผ์ ํค๋ ํ๋๋ง ๋ณด๋ด๋ ๊ฒ ๋ฟ์
๋๋ค. X-Request-Id
, ํ๊ฒฝ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ฑํ ์ ์์ NETRA_HTTP_REQUEST_ID_HEADER_NAME
. Netramesh์์ ์ปจํ
์คํธ ํฌ๊ธฐ๋ฅผ ์ ์ดํ๋ ค๋ฉด ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํ ์ ์์ต๋๋ค. NETRA_TRACING_CONTEXT_EXPIRATION_MILLISECONDS
(์ปจํ
์คํธ๊ฐ ์ ์ฅ๋๋ ์๊ฐ) ๋ฐ NETRA_TRACING_CONTEXT_CLEANUP_INTERVAL
(์ปจํ
์คํธ ์ ๋ฆฌ ๋น๋).
ํน์ ์ธ์
ํ ํฐ์ผ๋ก ํ์ํ์ฌ ์์คํ
์ ์ฌ๋ฌ ๊ฒฝ๋ก๋ฅผ ๊ฒฐํฉํ๋ ๊ฒ๋ ๊ฐ๋ฅํฉ๋๋ค. Netra๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์์ ์ค์นํ ์ ์์ต๋๋ค. HTTP_HEADER_TAG_MAP
HTTP ํค๋๋ฅผ ํด๋น ์ถ์ ๋ฒ์ ํ๊ทธ๋ก ๋ณํํฉ๋๋ค. ์ด๋ ํ
์คํธ์ ํนํ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ธฐ๋ฅ ํ
์คํธ๋ฅผ ํต๊ณผํ ํ ํด๋น ์ธ์
ํค๋ฅผ ๊ธฐ์ค์ผ๋ก ํํฐ๋งํ๋ฉด ์์คํ
์ ์ด๋ ๋ถ๋ถ์ด ์ํฅ์ ๋ฐ์๋์ง ํ์ธํ ์ ์์ต๋๋ค.
์์ฒญ ์์ค ๊ฒฐ์
์์ฒญ์ด ์ด๋์ ์๋์ง ํ์ธํ๋ ค๋ฉด ์์ค์ ํจ๊ป ํค๋๋ฅผ ์๋์ผ๋ก ์ถ๊ฐํ๋ ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. ํ๊ฒฝ ๋ณ์ ์ฌ์ฉ NETRA_HTTP_X_SOURCE_HEADER_NAME
์๋์ผ๋ก ์ค์น๋ ํค๋ ์ด๋ฆ์ ์ง์ ํ ์ ์์ต๋๋ค. ์ฌ์ฉํ์ฌ NETRA_HTTP_X_SOURCE_VALUE
๋ชจ๋ ๋๊ฐ๋ ์์ฒญ์ ๋ํด X-Source ํค๋๊ฐ ์ค์ ๋ ๊ฐ์ ์ค์ ํ ์ ์์ต๋๋ค.
์ด๋ฅผ ํตํด ์ด ์ ์ฉํ ํค๋๋ฅผ ๋คํธ์ํฌ ์ ์ฒด์ ๊ท ์ผํ๊ฒ ๋ฐฐํฌํ ์ ์์ต๋๋ค. ๊ทธ๋ฐ ๋ค์ ์ด๋ฅผ ์๋น์ค์์ ์ฌ์ฉํ๊ณ ๋ก๊ทธ ๋ฐ ์งํ์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
ํธ๋ํฝ ๋ผ์ฐํ ๋ฐ Netramesh ๋ด๋ถ
Netramesh๋ ๋ ๊ฐ์ง ์ฃผ์ ๊ตฌ์ฑ ์์๋ก ๊ตฌ์ฑ๋ฉ๋๋ค. ์ฒซ ๋ฒ์งธ์ธ netra-init๋ ํธ๋ํฝ์ ๊ฐ๋ก์ฑ๊ธฐ ์ํ ๋คํธ์ํฌ ๊ท์น์ ์ค์ ํฉ๋๋ค. ๊ทธ๋ ์ฌ์ฉํ๋ค INBOUND_INTERCEPT_PORTS, OUTBOUND_INTERCEPT_PORTS
.
์ด ๋๊ตฌ์๋ ํ๋ฅ ์ ๋ผ์ฐํ
์ด๋ผ๋ ํฅ๋ฏธ๋ก์ด ๊ธฐ๋ฅ๋ ์์ต๋๋ค. ์ถ์ ๋ฒ์ ์์ง์ ์ํด Netramesh๋ฅผ ๋
์ ์ ์ผ๋ก ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ๋ก๋์
ํ๊ฒฝ์์ ๋ฆฌ์์ค๋ฅผ ์ ์ฝํ๊ณ ๋ณ์๋ฅผ ์ฌ์ฉํ์ฌ ํ๋ฅ ์ ๋ผ์ฐํ
์ ํ์ฑํํ ์ ์์ต๋๋ค. NETRA_INBOUND_PROBABILITY
ะธ NETRA_OUTBOUND_PROBABILITY
(0์์ 1๊น์ง). ๊ธฐ๋ณธ๊ฐ์ 1(๋ชจ๋ ํธ๋ํฝ์ด ์ฐจ๋จ๋จ)์
๋๋ค.
์ฐจ๋จ์ ์ฑ๊ณตํ ํ Netra ์ฌ์ด๋์นด๋ ์ ์ฐ๊ฒฐ์ ์๋ฝํ๊ณ ๋ค์์ ์ฌ์ฉํฉ๋๋ค. SO_ORIGINAL_DST
์๋ ๋์์ ๊ฐ์ ธ์ค๋ ์์ผ ์ต์
์
๋๋ค. ๊ทธ๋ฐ ๋ค์ Netra๋ ์๋ IP ์ฃผ์์ ๋ํ ์ ์ฐ๊ฒฐ์ ์ด๊ณ ๋น์ฌ์ ๊ฐ์ ์๋ฐฉํฅ TCP ํต์ ์ ์ค์ ํ์ฌ ํต๊ณผํ๋ ๋ชจ๋ ํธ๋ํฝ์ ์์ ํฉ๋๋ค. ํฌํธ๊ฐ HTTP๋ก ์ ์๋ ๊ฒฝ์ฐ Netra๋ ํฌํธ๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ์ถ์ ํ๋ ค๊ณ ์๋ํฉ๋๋ค. HTTP ๊ตฌ๋ฌธ ๋ถ์์ด ์คํจํ๋ฉด Netra๋ TCP๋ก ๋์ฒด๋์ด ๋ฐ์ดํธ๋ฅผ ํฌ๋ช
ํ๊ฒ ํ๋ก์ํฉ๋๋ค.
์ข ์์ฑ ๊ทธ๋ํ ์์ฑ
Jaeger์์ ๋ง์ ์์ ์ถ์ ์ ๋ณด๋ฅผ ๋ฐ์ ํ ์์คํ
์ ์ํธ ์์ฉ์ ๋ํ ์์ ํ ๊ทธ๋ํ๋ฅผ ์ป๊ณ ์ถ์ต๋๋ค. ๊ทธ๋ฌ๋ ์์คํ
๋ก๋๊ฐ ์๋นํ ๋ง๊ณ ํ๋ฃจ์ ์์ญ์ต ๊ฐ์ ์ถ์ ๋ฒ์๊ฐ ๋์ ๋๋ ๊ฒฝ์ฐ ์ด๋ฅผ ์ง๊ณํ๋ ๊ฒ์ ๊ทธ๋ฆฌ ์ฌ์ด ์์
์ด ์๋๋๋ค. ์ด๋ฅผ ์ํํ๋ ๊ณต์์ ์ธ ๋ฐฉ๋ฒ์ด ์์ต๋๋ค:
Elasticsearch๋ฅผ ์ฌ์ฉํ์ฌ ์ถ์ ๋ฒ์๋ฅผ ์ ์ฅํ๋ ๊ฒฝ์ฐ ๋ค์์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Netramesh๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
Netra๋ ์ค์ผ์คํธ๋ ์ดํฐ๋ฅผ ์คํํ๋ ๋ชจ๋ ์๋น์ค์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์๋ฅผ ๋ณผ ์ ์์ต๋๋ค
ํ์ฌ Netra์๋ ์๋น์ค์ ์ฌ์ด๋์นด๋ฅผ ์๋์ผ๋ก ๊ตฌํํ๋ ๊ธฐ๋ฅ์ด ์์ง๋ง ๊ตฌํ ๊ณํ์ด ์์ต๋๋ค.
๋คํธ๋ผ๋ฉ์์ ๋ฏธ๋
์ฃผ์ ๋ชฉํ
์์ผ๋ก Netramesh๋ HTTP ์ธ์ ๋ค๋ฅธ ์ ํ๋ฆฌ์ผ์ด์ ๊ณ์ธต ํ๋กํ ์ฝ์ ์ง์ํ ์์ ์ ๋๋ค. L7 ๋ผ์ฐํ ์ ๊ฐ๊น์ด ์์ผ ๋ด์ ์ ๊ณต๋ ์์ ์ ๋๋ค.
์ ์ฌํ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ฉด Netramesh๋ฅผ ์ฌ์ฉํ๊ณ ์ง๋ฌธ๊ณผ ์ ์ ์ฌํญ์ ๋ณด๋ด์ฃผ์ญ์์ค.
์ถ์ฒ : habr.com