κ°λ°μλ₯Ό μν μΈνλΌ μ§μ
ITκ° μ΄λ ΅λ€κ³ λλΌκ² λλ μ΄μ λ κΈ°μ μ λ°μ μΌλ‘ μμ μλ λΆκ°λ₯νλ€κ±°λ κ·Έλ¬μ§ μμλ λΆλΆλ€μ΄ λ³νν΄μ λ§μ μ νμ§κ° μκΈ°κΈ° λλ¬Έμ λλ€. μ¨-νλ λ―Έμ€ νκ²½μ λμ΄μ ν΄λΌμ°λ νκ²½μΌλ‘ μΈνλΌλ₯Ό ꡬμ±νκ² λλ κ²λ λμΌν©λλ€.
IT λΆμΌμμ λ°λμ κ·ΈλμΌνλ€λ κ²μ΄ 보μ₯λμ§ μλ κ²κ³Ό λΉμ·νκ² λͺ¨λ νμ¬ λλ μ‘°μ§μ΄ μμ€ν μ μ΄μνκΈ° μν μΈνλΌλ₯Ό μ΄λ»κ² ꡬμ±νλ€κ±°λ μΈνλΌλ₯Ό λ΄λΉνκΈ° μν νμ λ³λλ‘ κ΅¬μ±ν μ§ μΌλΆ μΈμλ€μ΄ λ΄λΉν μ§λ μ μ μμ΅λλ€. μμ μ‘°μ§μμλ μΈκ±΄λΉμ λ¬Έμ λ‘ μΈνμ¬ μλ² μΈνλΌ μμ§λμ΄λ₯Ό μ΅μννκ³ ν΄λΌμ°λ νκ²½μ ν΅ν΄ κ°λ°μκ° μ€μ€λ‘ μΈνλΌλ₯Ό ꡬμ±νκ³ μ΄μνλ μ νμ ν κ²μ λλ€. μ‘°μ§μμ λ§λλ μμ€ν μ΄λ μλΉμ€μ κ·λͺ¨κ° 컀μ§κ²λλ©΄ μ 무μ κ³Όμ€νλ‘ μΈνμ¬ μΉ΄μΉ΄μ€ μλΉμ€μ λͺ¨λ μμ€ν κ³Ό νΈλν½μ μ± μμ§λ βμΈνλΌνβ μ΄μΌκΈ° λλ ν μ€ μλΉμ€μ κ·Όκ°μ λ€μ§λ μ¬λλ€, μΈνλΌ μμ§λμ΄λ§ νμ λ§λλ€μμμ²λΌ ν΄λΌμ°λ νκ²½μ μΈνλΌλ₯Ό μ¬μ©νλλΌλ λ ν¨μ¨μ μΌλ‘ μΈνλΌλ₯Ό ꡬμ±νκ³ μ€μ μ μΌλ‘ κ΄λ¦¬νκΈ° μν΄μ μΈνλΌ νμ ꡬμ±νκ² λ κ²μ λλ€.
μΈνλΌμ€νΈλμ²
μΈνλΌ μμμ λν΄μ μλ² μΈνλΌ μμ§λμ΄μκ² μνλ λ°λ₯Ό μ λ¬νκΈ° μν΄μλ μΈνλΌ μμμ λν μ§μμ μ΄λμ λ μκ³ μμ΄μΌ ν©λλ€. μΈνλΌ μμμ λ΄λΉνλ κ²κ³Ό μΈνλΌ μμμ λν μ§μμ μκ³ νμ νλ κ²μ λ€λ₯΄λ€κ³ μκ°λ©λλ€. μ루μ νμ¬μ μ¬μ ν μΈμλ€μ IT λΆμΌ λλ μμ€ν μμ μ¬μ©λλ μ©μ΄λ κ°λ λ€μ νμ΅νμ¬ μ 무μ νμ©νλ κ²μ²λΌ κ°λ°μλ κ°λ° μμ λΏλ§ μλλΌ μΈνλΌ μμμ λν κ°λ μ μκ³ μλκ² λΉμ°ν κ² μ λλ€. κ°λ° μμκ³Ό λ§μ°¬κ°μ§λ‘ μΈνλΌ μμμμ μμμΌν μ§μλ 무κΆλ¬΄μ§ν©λλ€. ν΄λΌμ°λ νκ²½μμ κ°μμ λ€νΈμν¬ μμμ ꡬμ±νκΈ° μν΄μ μ¬μ΄λ(CIDR) λΈλ‘ λ° NATμ κ°μ κ°λ μ μμμΌνκ±°λ μμ€ν μ μ΄μνκΈ° μν΄μ μ ν©ν EC2 μΈμ€ν΄μ€ μ νμ μ νν μ μμ΄μΌν©λλ€.
μλ² CPU μν€ν μ²
μ¨-νλ λ―Έμ€ νκ²½μμλ νΈνμ±μ μν΄μ μΌλ°μ μΌλ‘ μΈν μ νκ΅°μ μ μ¨ νλ‘μΈμμ κ°μ X86_64 μν€ν μ² κΈ°λ°μ μλ²μ© CPUλ₯Ό μ¬μ©νλ κ²½μ°κ° λ§μμ κ²μ λλ€. ν΄λΌμ°λ νκ²½μμλ μΈν κ³Ό AMDμ κ°μ amd64 μν€ν μ² κΈ°λ°μ νλ‘μΈμ λΏλ§ μλλΌ arm64 μν€ν μ² κΈ°λ°μ νλ‘μΈμλ₯Ό μ¬μ©ν μ μλλ‘ μ§μνλ―λ‘ μ νμ§κ° λ€μνκ³ μλ² μΈμ€ν΄μ€μμ ꡬλλλ νλ‘μΈμ€μ λͺ©μ μ λ°λΌμ μ ννκ² λ©λλ€. νμ¬ μ‘°μ§μμλ EC2 μΈμ€ν΄μ€ μ νμ κ΅μ²΄νλ μ΄μ μμμ²λΌ μλ² λΉμ©μ μ€μ΄κΈ° μν λͺ©μ μΌλ‘ μΌλΆ μλ² μΈμ€ν΄μ€μ λν΄μ ν΄λΌμ°λ μλΉμ€μμ μ 곡νλ μ΅μ μΈμ€ν΄μ€ μ νμΌλ‘ μ ννκΈ°λ νμ£ .
μλ² CPU μν€ν μ²μ μ νμ§κ° λ€μν΄μ§μΌλ‘μ¨ μ¬μ©ν΄μΌνλ νλ‘μΈμ€λ λꡬμμ CPU μν€ν μ²λ₯Ό μ§μνλμ§λ₯Ό κ²ν ν΄μΌν μ μμ΅λλ€. μ μ€ν¬λ¦°μ·μ²λΌ Promethues Node Exporterλ₯Ό Arm μν€ν μ² κΈ°λ°μ μλ²μμ μ¬μ©νκΈ° μν΄μλ arm64λ‘ λΉλλ λ°μ΄λ리λ₯Ό λ€μ΄λ‘λν΄μΌν©λλ€. λ컀 컨ν μ΄λλ₯Ό ν΅ν΄μ νλ‘μΈμ€λ₯Ό μ€ννλ κ²λ λ컀 μ΄λ―Έμ§κ° Arm μν€ν μ²λ‘ λΉλλ μ΄λ―Έμ§λ₯Ό μ§μνλμ§ νμΈν΄λ³΄κ³ μ¬μ©ν΄μΌν©λλ€.
μλ² μν€ν μ² νμΈ
ν΄λΌμ°λ μλΉμ€ μ½μμ μ μν μ μλ€λ©΄ μλ² μΈμ€ν΄μ€κ° μ΄λ€ μν€ν μ² κΈ°λ°μΈμ§ μ½κ² νμΈν μ μμ κ² μ λλ€. κ·Έλ¬λ μΌλ°μ μΌλ‘λ SSH μ μμ ν΅ν΄μ μλ²μ μ κ·Όν μ μλ κΆνμ λΆμ¬ν κ²μ΄λ―λ‘ νμ¬ μ μν μλ²λ΄μμ μ΄λ€ μν€ν μ²λ₯Ό μ¬μ©νλμ§λ₯Ό νμΈν μ μμ΄μΌν©λλ€. μλ² λ΄μμ μν€ν μ² μ 보λ₯Ό νμΈνλ €λ©΄ 컀λ λλ CPUμ λν μ 보λ₯Ό μ‘°ννλ λͺ λ Ήμ΄λ λꡬλ₯Ό μ¬μ©νλ©΄ λ©λλ€. μ¬λ¬λΆλ€μ΄ μ μνλ μλ²μμ λ€μμ λͺ λ Ήμ΄λ₯Ό νμΈν΄λ³΄μΈμ.
$ uname -rmpo
4.14.256-197.484.amzn2.aarch64 aarch64 aarch64 GNU/Linux
$ cat /proc/version
Linux version 4.14.256-197.484.amzn2.aarch64 (mockbuild@ip-10-0-46-15) (gcc version 7.3.1 20180712 (Red Hat 7.3.1-13)
(GCC)) #1 SMP Tue Nov 30 00:18:02 UTC 2021
$ hostnamectl
Static hostname: ip-192-168-53-1.ap-northeast-2.compute.internal
Icon name: computer-vm
Chassis: vm
Machine ID: ec2d229d0283ccced53f112dc3648f3a
Boot ID: 67c156512c204340b1ac01d60eb45b26
Virtualization: amazon
Operating System: Amazon Linux 2
CPE OS Name: cpe:2.3:\o:amazon:amazon_linux:2
Kernel: Linux 4.14.256-197.484.amzn2.aarch64
Architecture: arm64
$ lscpu
Architecture: aarch64
Byte Order: Little Endian
CPU(s): 4
On-line CPU(s) list: 0-3
Thread(s) per core: 1
Core(s) per socket: 4
Socket(s): 1
NUMA node(s): 1
Model: 1
BogoMIPS: 243.75
L1d cache: 64K
L1i cache: 64K
L2 cache: 1024K
L3 cache: 32768K
NUMA node0 CPU(s): 0-3
Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm lrcpc dcpop asimddp ssbs
x86_64μ amd64λ X86 λͺ λ Ήμ΄ μ§ν©μ μν€ν μ²μ΄λ©° aarch64μ arm64λ arm λͺ λ Ήμ΄ μ§ν©μ μν€ν μ²μ λλ€.
λμ€ν¬ λ³Όλ₯¨
μλ² μΈμ€ν΄μ€μμ μ¬μ©νλ λμ€ν¬ λ³Όλ₯¨μ λν λΆλΆμ λν΄μ μ΄μΌκΈ°κ° μ€κ³ κ° μ μμ΅λλ€. ν΄λΌμ°λ μλΉμ€λ λ€μν λμ€ν¬ λ³Όλ₯¨ μ νμ μ νν μ μλλ‘ μ§μνλ―λ‘ μλ² μΈμ€ν΄μ€μ λͺ©μ μ λ§λ λμ€ν¬ λ³Όλ₯¨μ μΆκ°νμ¬ μ¬μ©νκΈ° λλ¬Έμ λλ€. νμ¬ μ¬μ©μ€μΈ λμ€ν¬ λ³Όλ₯¨ μ 보λ₯Ό νμΈνκ³ μ΄λ€ νμΌμμ€ν μ νν°μ μΈμ§λ₯Ό νμΈνκ³ λμ€ν¬ λ³Όλ₯¨μ μ©λμ μ¦μ€ν΄μΌν μλ μμ£ .
$ df -hT
Filesystem Type Size Used Avail Use% Mounted on
/dev/root ext4 30G 8.9G 21G 31% /
/dev/nvme1n1 xfs 1000G 629G 371G 63% /data/main
/dev/nvme2n1 xfs 2.0T 306G 1.7T 16% /data/sub
$ lsblk -f
NAME FSTYPE LABEL UUID FSAVAIL FSUSE% MOUNTPOINT
nvme1n1 xfs 18891124-be54-415d-ba02-21dc6acf9e4f 370.9G 63% /data/main
nvme2n1 xfs 5be85d99-8ed0-440b-a423-486bdef1b1b4 1.7T 15% /data/sub
nvme0n1
ββnvme0n1p1 ext4 cloudimg-rootfs e8070c31-bfee-4314-a151-d1332dc23486 20.1G 31% /
μ μμ κ²°κ³Όλ₯Ό 보면 μλ² μΈμ€ν΄μ€μ μ°κ²°λ λ£¨νΈ λ³Όλ₯¨μ NVMe κΈ°λ°μ΄λ©° ext4 νμΌμμ€ν μ νν°μ μΌλ‘ λμ΄μμμ νμΈν μ μμ΅λλ€. μΆκ°λ‘ μ°κ²°λ λ°μ΄ν° λ³Όλ₯¨μ λμΌνκ² NVMe κΈ°λ°μ΄μ§λ§ xfs νμΌμμ€ν μΌλ‘ λμ΄μλ κ²μ νμΈν μ μμ΅λλ€.
$ du --max-depth 1 | sort -nr
188679628 .
187045152 ./elasticsearch-7.3.2
1034772 ./kibana-7.3.2
18756 ./node_exporter-1.1.2.linux-amd64
du λͺ λ Ήμ΄λ₯Ό ν΅ν΄μ νμ¬ κ²½λ‘ κΈ°μ€μμ μ¬μ©λμ΄ λ§μ λλ ν 리 μμλλ‘ μΆλ ₯νμ΅λλ€. λμ€ν¬ λ³Όλ₯¨μ μ©λμ΄ λΆμ‘±ν΄μ§λ©΄ μ¬μ©λμ΄ λ§μ λλ ν λ¦¬κ° λ¬΄μμΈμ§ νμΈνκ³ λΆνμν νμΌμ΄ λ¨μμλμ§λ₯Ό λ¨Όμ νμΈνκ³ μ©λ νλ³΄κ° λΆκ°λ₯νλ€λ©΄ λμ€ν¬ λ³Όλ₯¨ μ¦μ€μ μμ²νκ±°λ μμ μ μνν κ² μ λλ€.
λ€νΈμν¬
μΈνλΌ μμ μ€ λ€νΈμν¬μ λν λΆλΆμ μΈλΆ μμ€ν κ³Όμ μ°λμ΄ νμν κ²½μ°κ° μλλΌλ©΄ μκ°λ³΄λ€ κ²½νν΄λ³Ό κ°λ₯μ±μ΄ μ μ΅λλ€. μΈλΆ μμ€ν μ IP λλ νΈμ€νΈ μ£Όμλ‘ νΈλν½μ΄ μ λ¬λλμ§λ₯Ό νμΈνκ±°λ μΈλΆ APIλ₯Ό μλ² λ΄μμ μ§μ μμ²ν΄λ³Ό μλ μμ΅λλ€.
# λ€νΈμν¬ μΈν°νμ΄μ€ μ‘°ν
ifconfig
# λ΄λΆ μμ΄νΌ μ‘°ν
hostname -I
# μΈλΆ μμ΄νΌ μ‘°ν
curl ipconfig.io
# TCP λ°μΈλ© ν¬νΈ μ‘°ν
netstat -tnlp
# νΈλν½ κ²½λ‘ μΆμ
traceroute google.com
# DNS μ‘°ν
nslookup -type=mx google.com
dig google.com mx
μμ€ν λ‘κ·Έ
μΈνλΌ μμ§λμ΄λ‘ ꡬμ±λ μΈνλΌ νμ΄ μ‘°μ§λ΄μ μλ€λ©΄ μλ² μμ€ν μμ λ°μνλ λ€μν λ‘κ·Έ λλ μ§νλ₯Ό λͺ¨λν°λ§ν μ μλ Zabbix, Datadogκ³Ό κ°μ μ루μ μ λμ ν κ²μ λλ€. μλ²μ κΈ°λ‘λ μμ€ν λ‘κ·Έλ μλ²μμ λ°μν μΌλ ¨μ μ΄λ²€νΈλ€μ κΈ°λ‘μ΄λ―λ‘ μ΄λ ν λ¬Έμ κ° νμ λμμλ μμΈμ μ°Ύμκ°κΈ° μν λΆμ μ©λλ‘ μ¬μ©ν μ μμ΅λλ€. λͺ¨λν°λ§ μμ€ν μ΄ κ΅¬μΆλμ΄μμ§ μμλ μμ€ν λ‘κ·Έλ₯Ό νμΈν μ μλ λ°©λ²μ μμμΌν©λλ€. μ¬μ©μμ μμ²μ΄ μ ν리μΌμ΄μ μΌλ‘ μ λ¬λλ κ³Όμ μμ μλ² λ€νΈμν¬ νΈλν½μ΄ λ‘κ·Έλ‘ κΈ°λ‘λλ€κ±°λ μμ§μμ€μ κ°μ μΉμλ²μμ 리λ²μ€ νλ‘μλ₯Ό μννκΈ° μ μ μμ²μ λν΄ μ‘μΈμ€ λ‘κ·Έλ₯Ό κΈ°λ‘ν©λλ€. μ¬μ§μ΄λ μ ν리μΌμ΄μ μλ²μμλ μ체μ μΌλ‘ μ‘μΈμ€ λ‘κ·Έλ₯Ό λ¨κΈ°κ±°λ μ ν리μΌμ΄μ μ μ£Όμ κΈ°λ₯μ λν λμμ λ‘κ·Έλ‘ μ μ₯λλλ‘ μ μνκΈ°λ ν©λλ€. μλ² μΈνλΌ μμ§λμ΄κ° μλ€λ©΄ λ μμΈνκ² μμΈμ νμ ν μ μλ λ°©λ²μ μλνκ² μ§λ§ κ°λ°μλ‘μ¨λ κ°λ¨νκ² λ‘κ·Έλ₯Ό νμΈν μ μμΌλ©΄ λ©λλ€.
리λ μ€ λ‘κ·Έ λλ ν 리
리λ μ€ μμ€ν μ λ‘κ·Έκ° μ μ₯λλ κΈ°λ³Έ λλ ν 리λ /var/log μ λλ€. λ³λλ‘ μ€μΉν νλ‘μΈμ€μ λ‘κ·Έκ° μλλΌλ©΄ λλΆλΆμ λ‘κ·Έλ€μ΄ μ΄ κ²½λ‘μ μ μ₯λ κ²μ λλ€.
# μ μ κΈ°λ‘ μ‘°ν
lastlog -t 1
# systemd λ‘κ·Έ μ‘°ν
journalctl -b
# 컀λ λΆνΈ λ©μμ§ μ‘°ν
dmesg
# μμ€ν
λ‘κ·Έ μ‘°ν
tail /var/log/syslog
Zabbixμ κ°μ λͺ¨λν°λ§ μ루μ μ λμ νλ κ²½μ° λ‘κ·Έ νμΌ κ°μ κΈ°λ₯μΌλ‘ μμλλ λ¬Έμ λ₯Ό κ°μ§ν μ μμ΅λλ€.
λ‘κ·Έ κ΄λ¦¬
μλ²λ₯Ό κ΄λ¦¬νλ μΈνλΌ μμ§λμ΄ μ μ₯μμλ λ‘κ·Έ νμΌμ ν¨μ¨μ μΌλ‘ κ΄λ¦¬νκΈ° μν΄μ logrotateλΌκ³ νλ λ‘κ·Έ κ΄λ¦¬ λꡬλ₯Ό μ¬μ©ν©λλ€. μλ²μ μ μ₯λλ λ‘κ·Έ νμΌμ μΌμ ν ν¨ν΄μ μ£ΌκΈ°λ‘ κ΅¬λΆνμ¬ μ μ₯ν¨μΌλ‘μ¨ λμ€μ μ΄λ ν λ¬Έμ κ° λ°μνκ±°λ κ°μ¬λ₯Ό μν΄μ νΉμ μμ μ λν λ‘κ·Έλ₯Ό μμ²νμλ μ½κ² μ λ¬ν μ μλλ‘ λλΉν©λλ€. μλ₯Ό λ€μ΄, Nginxμ λν λ‘ν μ΄μ μ€μ νμΌμ μ΄ν΄λ³΄λ©΄ μλμ κ°μ΄ λμ΄μλ κ²μ νμΈν μ μμ΅λλ€.
$ cat /etc/logrotate.d/nginx
/var/log/nginx/*.log {
daily
missingok
rotate 52
compress
delaycompress
notifempty
create 640 nginx adm
sharedscripts
postrotate
if [ -f /var/run/nginx.pid ]; then
kill -USR1 `cat /var/run/nginx.pid`
fi
endscript
}
μΈνλΌ μμμμ λ‘κ·Έ κ΄λ¦¬μ λν κ°λ μ μκ²λλ€λ©΄ κ°λ°μλ‘μ¨ μ ν리μΌμ΄μ μλ²μμ κΈ°λ‘λλ λ‘κ·Έμ μ΄λ ν μ 보λ₯Ό λ¨κ²¨μΌνλκ°λ₯Ό μ’ λ κ³ λ―Όνκ² λ κ²μ λλ€. λ무 λΆνμν μ 보λ₯Ό λ‘κ·Έλ‘ λ¨κΈ°κ² λμ΄ μλ²μ λμ€ν¬ λ³Όλ₯¨μ μ©λμ λ무 μ°¨μ§νκ² λκ³ λ‘κ·Έ λΆμλ νλ€μ΄μ§ μ μκΈ° λλ¬Έμ λλ€.
κ°λ°μκ° μμμΌν κΈ°μ΄μ μΈ λΆλΆμ λν΄μ λ€λ£¨μ΄λ³΄μμ΅λλ€. λ μμΈνκ² λ€μ΄κ°λ€λ©΄ μμ€ν μ±λ₯μ μ§νλ₯Ό νμΈνκ±°λ μμ€ν μ λ ν¨μ¨μ μΌλ‘ λ§λλ 컀λ νλμ λν λΆλΆλ λ€λ£¨μ΄λ³΄μμΌν©λλ€. μΈνλΌ μμμ λν΄μ λ λ§μ κ²½νμ νκ²λλ©΄ μ΄μ λν λΆλΆλ 곡μ ν΄λ³Ό μ μκΈ°λ₯Ό λ°λλλ€.