์กฐ์ง์์ ์๋ง์กด ์น ์๋น์ค๋ฅผ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ผ๋ก ์ฌ์ฉํ๊ณค ์์ง๋ง ์ธํ๋ผ ์์ง๋์ด๋ก ๊ตฌ์ฑ๋ ์ธํ๋ผํ์ด ๋ณ๋๋ก ์กด์ฌํ์ง ์๋ค๋ณด๋ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ ๋๋ก ํ์ฉํ์ง ์๊ณ ํ์ํ๋ค๊ณ ์๊ฐ๋ ๋ ์ด๋ป๊ฒ ์ฌ์ฉํด์ผํ๋๊ฐ๋ฅผ ์ฐพ์๋ณด๊ณ ๊ณ ๋ฏผํ๊ฒ ๋๋ ๊ฒ ๊ฐ์ต๋๋ค. ์๋ฒ ์ธ์คํด์ค ๋ชจ๋ํฐ๋ง์ ๋ํด์๋ ๊ธฐ๋ณธ์ ์ผ๋ก๋ ์น ์ฝ์์์ ์งํ๋ฅผ ํ์ธํ ์ ์๋๋ก Amazon EC2 ๋ชจ๋ํฐ๋ง๊ธฐ๋ฅ์ ์ ๊ณตํ๊ณ ์์ง๋ง 5๋ถ ๋จ์๋ก ์์ง๋๋ ์งํ๋ฅผ 1๋ถ ๋จ์๋ก ์์งํ๊ธฐ ์ํด์๋ ์ธ์คํด์ค์ ๋ํ ์ธ๋ถ ๋ชจ๋ํฐ๋ง ํ์ฑํ๋ฅผ ํด์ผํ๊ณ ๋ ๋ง์ ์ธ์คํด์ค์ ๋ํ ์งํ๋ฅผ ํ์ธํ๊ธฐ ์ํด์๋ EC2 ์ธ์คํด์ค์ CloudWatch ์์ด์ ํธ ์ค์นํด์ผํ๊ณ ๋ณ๋์ ๋น์ฉ์ด ์ถ๊ฐ์ ์ผ๋ก ๋ ๋ค๋ ์ ์ผ๋ก ์ธํ์ฌ ์ฌ์ฉํ์ง๋ ์๊ณ ์์ต๋๋ค.
ํ์ฌ ์ฌ๋ด ์๋ฒ์ ๊ฐ์ธ์ ์ผ๋ก ํ๋ก๋ฉํ ์ฐ์ค ๋ฐ ๊ทธ๋ผํ๋ ์๋ฒ๋ฅผ ์คํํด๋์๊ธฐ ๋๋ฌธ์ Node Exporter๋ฅผ ํ์ฉํด์ EC2 ์ธ์คํด์ค์ ์ ์ํ ์ ์๋ ๊ถํ์ด ์๋ค๋ฉด ์งํ๋ฅผ ์์งํ ์ ์๋ ๋ฐฉ์์ ๋ง๋ จํ ์ ์๋ค๊ณ ์๊ฐ๋์์ต๋๋ค. ๊ณ ๊ฐ์ผ๋ก ๋ถํฐ ์น ์ฝ์์ ์ ๊ทผํ ์ ์๋ ๊ถํ์ ๋ถ์ฌ๋ฐ๊ธฐ๋ ํ๊ณ ์ด๋ค ๊ณ ๊ฐ์ ๋ณด์ ์ ์ด์ ๋ก ์ธํ์ฌ ์ธํ๋ผ ๊ตฌ์ฑ๊ณผ ๊ด๋ฆฌ๋ ์ง์ ๋ด๋นํ๊ณ ์ ํด์ง ์คํ์ ๋ฐ๋ผ์ ์์ฑํ EC2 ์ธ์คํด์ค ์ ์ ๊ถํ๋ง ๋ถ์ฌํ๊ธฐ ๋๋ฌธ์ CloudWatch๋ฅผ ๊ณตํต์ ์ผ๋ก ์ฌ์ฉํ๋๋ก ํ ์ ์์ต๋๋ค.
ํ์ฌ ์ฌ๋ด ์๋ฒ์ ์์์ ์ผ๋ก ๊ตฌ์ฑํ ํ๋ก๋ฉํ ์ฐ์ค ๋ฐ ๊ทธ๋ผํ๋๋ ๋ชจ๋ํฐ๋ง ๋ฐฉ์์ด ๊ฒํ ๋๋ฉด ์กฐ์ง๋ด์์ ์ด์์ค์ธ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ผ๋ก ์ด์ ํ ์๊ฐ์ ๋๋ค.
์๋ฌดํผ ํ์ฌ ์กฐ์ง์์ ๋ชจ๋ํฐ๋ง ๋ฐฉ์์ ์ ๋๋ก ๊ฒํ ํ ์ ์๋ ๋จ๊ณ๋ ์๋์ง๋ง ๊ณ ๊ฐ์ ์ธํ๋ผ ํ๊ฒฝ์ ์์คํ ์ ๋ฐฐํฌํ๊ณ ์ด์ํ๊ณ ์์ผ๋ฏ๋ก ์ต์ํ ์์ธ์ ์ฐพ์๊ฐ๊ธฐ ์ํ ์งํ๋ ๋จ๊ฒจ๋์ด์ผํ๋ค๊ณ ์๊ฐํ๊ธฐ์ Node Exporter๋ฅผ ์ผ๊ด์ ์ผ๋ก ์ค์นํ๋ ์์ ์ ์ํํ๊ณ ์ด์ ๋ํ ์ ๋ณด๋ฅผ ๋จ๊ธฐ๊ณ ์ ํฉ๋๋ค.
Node Exporter โ
Node Exporter๋ ํ๋ก๋ฉํ ์ฐ์ค ํ๋ก์ ํธ์์ ๊ณต์์ ์ผ๋ก ์ง์ํ๋ ์์คํ ๋งคํธ๋ฆญ์ ์์งํ๋ ๋ฐฉ๋ฒ์ ์ ๊ณตํ๋ Exporter ์ ๋๋ค. Installing and running the Node Exporter์ ๊ฐ์ด Node Exporter๋ฅผ ์ค์นํ๊ณ ์คํํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ฐ์ด๋ ๋ฌธ์๋ ์ ๊ณตํ๊ณ ์์ต๋๋ค.
EC2 ์ธ์คํด์ค๋ ์ํ๊ฐ ์ ์์ ์ด์ง ์์์ด ํ์ธ๋๋ฉด ์ธ์คํด์ค ๋ณต๊ตฌ ๊ธฐ๋ฅ์ผ๋ก ์๋ง์กด ์น ์๋น์ค์์ ์๋์ผ๋ก ์ธ์คํด์ค ์ํ๋ฅผ ๋ณต์ํ ์ ์์ต๋๋ค. ๊ทธ๋์ ์ธ์ ๋ ์ง EC2 ์ธ์คํด์ค๊ฐ ์ฌ๋ถํ ๋์ด ์คํ์ค์ธ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ์ ์์ต๋๋ค. ์๋ฒ ์ธ์คํด์ค๊ฐ ์ฌ๋ถํ ๋์ด๋ ์๋์ผ๋ก ํ๋ก์ธ์ค๊ฐ ์คํ๋๋๋ก ์ ์งํ๊ธฐ ์ํด์ Systemd์ ๊ฐ์ ์๋น์ค๋ฅผ ๋ฑ๋กํ๋๋ก ๊ตฌ์ฑํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
EC2 ์ธ์คํด์ค ์ํคํ ์ฒ โ
์๋ง์กด ์น ์๋น์ค์์๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉ๋๋ amd64 ๊ธฐ๋ฐ์ ์ํคํ ์ฒ ๋ฟ๋ง ์๋๋ผ Arm ๊ธฐ๋ฐ์ AWS Graviton ํ๋ก์ธ์๋ก ์ ๊ณต๋๋ ์ธ์คํด์ค๋ฅผ ์ ๊ณตํ๊ณ ์ต๊ทผ์๋ Arm ๊ธฐ๋ฐ์ ์ธ์คํด์ค๋ฅผ ํตํด ๋ ์ ๋ ดํ ๊ฐ๊ฒฉ์ผ๋ก ์๋ฒ ์ธ์คํด์ค๋ฅผ ์คํํ๋ฏ๋ก EC2 ์ธ์คํด์ค์ ์ํคํ ์ฒ๋ฅผ ํ์ธํ๊ณ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฐ๋ฅด๊ฒ ๋น๋๋ ํ์ผ์ ๋ค์ด๋ก๋ ๋ฐ์์ ์ค์นํด์ผํฉ๋๋ค.
$ uname -rmpo
4.14.256-197.484.amzn2.aarch64 aarch64 aarch64 GNU/Linux
๋ฆด๋ฆฌ์ฆ ํ์ผ ๋ค์ด๋ก๋ ๋ฐ ์ค์น โ
EC2 ์ธ์คํด์ค์ ์ํคํ ์ฒ ์ ํ์ ํ์ธํ๋ค๋ฉด ๋ฆด๋ฆฌ์ฆ ํ์ผ์์ ์ ์ํคํ ์ฒ์ ๋ง๋ arm64๊ฐ ํฌํจ๋ ๋ฆด๋ฆฌ์ฆ ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค. ๋๋ถ๋ถ์ ์์ ๋ ์ผ๋ฐ์ ์ผ๋ก ์ฌ์ฉํ๋ x86_64 ์ํคํ ์ฒ๋ฅผ ๊ธฐ์ค์ผ๋ก ํ๊ธฐ ๋๋ฌธ์ amd64๋ฅผ ๋ค์ด๋ก๋ ํฉ๋๋ค.
wget https://github.com/prometheus/node_exporter/releases/download/v1.3.1/node_exporter-1.3.1.linux-arm64.tar.gz
tar zxvf node_exporter-1.3.1.linux-arm64.tar.gz
sudo cp node_exporter-1.3.1.linux-arm64/node_exporter /usr/local/bin/
sudo useradd -M -r -s /bin/false node_exporter
sudo chown node_exporter:node_exporter /usr/local/bin/node_exporter
Node Exporter ์ฉ ์ฌ์ฉ์ ์ถ๊ฐ โ
์ธํ๋ผ ์์ง๋์ด๊ฐ ์๋๊ธฐ์ ์ฌ์ฉ์๋ฅผ ์ง์ ์ถ๊ฐํด๋ณธ์ ์ด ์์ด์ ์ฌ์ฉ์๋ฅผ ์ถ๊ฐํ๋ ๋ช ๋ น์ด์ ๋ํด์ ์์๋ณด์์ผํ์ต๋๋ค. ๋ง์ ์์ ๋ค์์ ์ฌ์ฉ์ ์ถ๊ฐ ์ ์ ์ฉํ๋ ์ต์ ์ด ์ ๊ฐ๊ฐ์ด๋ผ์ ๋ ํผ๋์ด ์์์ต๋๋ค.
- useradd(8) - Linux man page
- /bin/false, /sbin/nologin ์ ์ฐจ์ด์
- How do I add a user in Linux without a home directory?
# sudo useradd --no-create-home --system --shell /bin/false node_exporter
sudo useradd -M -r -s /bin/false node_exporter
์์คํ ๊ณ์ ์ ์์ฑํ๋ ๋ก๊ทธ์ธ์ด ๋ถ๊ฐ๋ฅํ๋๋ก ํ๋ฉด ๋๋ ๊ฒ ๊ฐ์ต๋๋ค.
Systemd ์๋น์ค ๋ฑ๋ก โ
์ค์นํ ๋ฐ์ด๋๋ฆฌ๋ฅผ ์คํํ๊ธฐ ์ํด์ Systemd ์๋น์ค๋ฅผ ๋ฑ๋กํ๊ณ Systemctl ๋ช ๋ น์ด๋ฅผ ํตํด ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ณ ์๋ฒ๊ฐ ๋ถํ ๋ ๋ ์๋์ผ๋ก ์์๋๋๋ก ํ์ฑํํฉ๋๋ค.
sudo tee /etc/systemd/system/node_exporter.service <<"EOF"
[Unit]
Description=Node Exporter
After=network.target
[Service]
User=node_exporter
Group=node_exporter
ExecStart=/usr/local/bin/node_exporter
[Install]
WantedBy=multi-user.target
EOF
sudo systemctl daemon-reload
sudo systemctl start node_exporter
sudo systemctl status node_exporter
sudo systemctl enable node_exporter
๋งคํธ๋ฆญ ํ์ธ โ
Node Exporter ์๋น์ค๊ฐ ์ ์์ ์ผ๋ก ์คํ๋ฌ๋ค๋ฉด curl ๋ช ๋ น์ด๋ฅผ ํตํด์ ์งํ๋ฅผ ๊ฐ์ ธ์ฌ ์ ์๋์ง ํ์ธํ๊ณ ์ข ๋ฃํฉ๋๋ค.
curl -s localhost:9100/metrics