EC2 Node Exporter
μ‘°μ§μμ μλ§μ‘΄ μΉ μλΉμ€λ₯Ό ν΄λΌμ°λ νκ²½μΌλ‘ μ¬μ©νκ³€ μμ§λ§ μΈνλΌ μμ§λμ΄λ‘ ꡬμ±λ μΈνλΌνμ΄ λ³λλ‘ μ‘΄μ¬νμ§ μλ€λ³΄λ ν΄λΌμ°λ μλΉμ€λ₯Ό μ λλ‘ νμ©νμ§ μκ³ νμνλ€κ³ μκ°λ λ μ΄λ»κ² μ¬μ©ν΄μΌνλκ°λ₯Ό μ°Ύμλ³΄κ³ κ³ λ―Όνκ² λλ κ² κ°μ΅λλ€. μλ² μΈμ€ν΄μ€ λͺ¨λν°λ§μ λν΄μλ κΈ°λ³Έμ μΌλ‘λ μΉ μ½μμμ μ§νλ₯Ό νμΈν μ μλλ‘ 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