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
}

인프라 μ˜μ—­μ—μ„œ 둜그 관리에 λŒ€ν•œ κ°œλ…μ„ μ•Œκ²Œλœλ‹€λ©΄ 개발자둜써 μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ„œλ²„μ—μ„œ κΈ°λ‘λ˜λŠ” λ‘œκ·Έμ— μ–΄λ– ν•œ 정보λ₯Ό λ‚¨κ²¨μ•Όν•˜λŠ”κ°€λ₯Ό μ’€ 더 κ³ λ―Όν•˜κ²Œ 될 κ²ƒμž…λ‹ˆλ‹€. λ„ˆλ¬΄ λΆˆν•„μš”ν•œ 정보λ₯Ό 둜그둜 λ‚¨κΈ°κ²Œ λ˜μ–΄ μ„œλ²„μ˜ λ””μŠ€ν¬ λ³Όλ₯¨μ˜ μš©λŸ‰μ„ λ„ˆλ¬΄ μ°¨μ§€ν•˜κ²Œ 되고 둜그 뢄석도 νž˜λ“€μ–΄μ§ˆ 수 있기 λ•Œλ¬Έμž…λ‹ˆλ‹€.

κ°œλ°œμžκ°€ μ•Œμ•„μ•Όν•  기초적인 뢀뢄에 λŒ€ν•΄μ„œ λ‹€λ£¨μ–΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€. 더 μžμ„Έν•˜κ²Œ λ“€μ–΄κ°„λ‹€λ©΄ μ‹œμŠ€ν…œ μ„±λŠ₯의 μ§€ν‘œλ₯Ό ν™•μΈν•˜κ±°λ‚˜ μ‹œμŠ€ν…œμ„ 더 효율적으둜 λ§Œλ“œλŠ” 컀널 νŠœλ‹μ— λŒ€ν•œ 뢀뢄도 λ‹€λ£¨μ–΄λ³΄μ•„μ•Όν•©λ‹ˆλ‹€. 인프라 μ˜μ—­μ— λŒ€ν•΄μ„œ 더 λ§Žμ€ κ²½ν—˜μ„ ν•˜κ²Œλ˜λ©΄ 이에 λŒ€ν•œ 뢀뢄도 κ³΅μœ ν•΄λ³Ό 수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

μ°Έκ³