216.73.216.124 TODAY : 14,805

PHP ์˜จ๋ผ์ธ ๊ฐ•์˜

 > 

PHP - ์ตœ์ƒ๊ธ‰

๐Ÿ“š PHP ์ตœ์ƒ๊ธ‰ - 8์ฃผ์ฐจ: ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ๋ฐ ์„ค๊ณ„ ์‹ฌํ™” - 04 ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋กœ๊น… ์‹œ์Šคํ…œ ์‹ฌํ™” (ELK Stack)

๐Ÿ“š PHP ์ตœ์ƒ๊ธ‰ - 8์ฃผ์ฐจ: ์•„ํ‚คํ…์ฒ˜ ํŒจํ„ด ๋ฐ ์„ค๊ณ„ ์‹ฌํ™” - 04 ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋กœ๊น… ์‹œ์Šคํ…œ ์‹ฌํ™” (ELK Stack)

์ฃผ์š” ํ”„๋กœ๊ทธ๋žจ ์ŠคํŽ™

  • ํ‰์ : 10.0
  • ๋ผ์ด์„ ์Šค: free
  • ์šด์˜์ฒด์ œ:
  • ํŒŒ์ผ ํฌ๊ธฐ: 0

ํ”ผ๋“œ๋ฐฑ ๋ฐ ๋‹ค์šด๋กœ๋“œ

  • ์‚ฌ์šฉ์ž ํ‰์ : 10.0
  • ๋‹ค์šด๋กœ๋“œ ์ˆ˜: 0
  • ์กฐํšŒ์ˆ˜: 2

์ œ์กฐ์‚ฌ ๋ฐ ๋“ฑ๋ก ์ •๋ณด

  • ์ œ์ž‘์‚ฌ: LUZENSOFT
  • ๋“ฑ๋ก์ผ: 2025-10-29 08:52:47
  •  

- ์„ค๋ช…

๋Œ€๊ทœ๋ชจ PHP ์„œ๋น„์Šค๋ฅผ ์œ„ํ•œ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ๋กœ๊น…

uploadImage

#๋Œ€๊ทœ๋ชจ #PHP #์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ #์šด์˜ํ•  ๋•Œ, #์„œ๋น„์Šค์˜ #์„ฑ๋Šฅ๊ณผ #์•ˆ์ •์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ํ•ต์‹ฌ์€ #๋ชจ๋‹ˆํ„ฐ๋ง๊ณผ #๋กœ๊น… #์‹œ์Šคํ…œ์ด์—์š”. ๋ถ„์‚ฐ๋œ #์„œ๋ฒ„ #ํ™˜๊ฒฝ(#AWS, #Azure, #GCP)์—์„œ ์ˆ˜์ง‘๋˜๋Š” ๋ฐฉ๋Œ€ํ•œ #๋กœ๊ทธ์™€ #๋ฉ”ํŠธ๋ฆญ์„ ํšจ์œจ์ ์œผ๋กœ #์ˆ˜์ง‘, #๋ถ„์„, #์‹œ๊ฐํ™”ํ•˜๊ธฐ ์œ„ํ•ด #์ตœ์ƒ๊ธ‰ #๊ฐœ๋ฐœ์ž๋Š” ์ „๋ฌธ์ ์ธ #์†”๋ฃจ์…˜์„ ํ™œ์šฉํ•ด์š”. ๊ทธ์ค‘ ๊ฐ€์žฅ ๋Œ€ํ‘œ์ ์ธ ๊ฒƒ์ด #ELK #Stack์ด๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” #์˜คํ”ˆ์†Œ์Šค #์†”๋ฃจ์…˜์ด์—์š”.



1. ELK Stack์˜ ๊ตฌ์„ฑ ์š”์†Œ์™€ ์—ญํ• 

uploadImage

#ELK #Stack์€ ์„ธ ๊ฐ€์ง€ ํ•ต์‹ฌ #์˜คํ”ˆ์†Œ์Šค #ํ”„๋กœ์ ํŠธ์˜ #์•ฝ์ž์˜€์œผ๋‚˜, ์ตœ๊ทผ์—๋Š” ์—ฌ๊ธฐ์— #Beats๋ฅผ ํฌํ•จํ•˜์—ฌ #Elastic #Stack์ด๋ผ๊ณ  ๋ถˆ๋ ค์š”.


E: Elasticsearch (#๊ฒ€์ƒ‰ #๋ฐ #๋ถ„์„)


  • ์—ญํ• : ๋Œ€๋Ÿ‰์˜ #๋ฐ์ดํ„ฐ(#๋กœ๊ทธ, #์ด๋ฒคํŠธ, #๋ฉ”ํŠธ๋ฆญ)๋ฅผ ๊ฑฐ์˜ #์‹ค์‹œ๊ฐ„(#Near #Real-time)์œผ๋กœ #์ €์žฅ, #๊ฒ€์ƒ‰, #๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” #๋ถ„์‚ฐ #๊ฒ€์ƒ‰ #์—”์ง„์ด์—์š”.

  • PHP ์ ์šฉ: #Logstash๋‚˜ #Filebeat๊ฐ€ ์ˆ˜์ง‘ํ•œ #PHP #์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ #๋กœ๊ทธ๋ฅผ #์ƒ‰์ธ(#Indexing)ํ•˜๊ณ  #์ฟผ๋ฆฌํ•˜์—ฌ #์˜ค๋ฅ˜ #๋ถ„์„์„ ๋น ๋ฅด๊ฒŒ ์ˆ˜ํ–‰ํ•ด์š”.


L: Logstash (#๋ฐ์ดํ„ฐ #์ˆ˜์ง‘ ๋ฐ #๋ณ€ํ™˜)


  • ์—ญํ• : ๋‹ค์–‘ํ•œ #์†Œ์Šค(#ํŒŒ์ผ, #๋„คํŠธ์›Œํฌ #ํฌํŠธ ๋“ฑ)์—์„œ #๋กœ๊ทธ๋ฅผ #์ˆ˜์ง‘ํ•˜์—ฌ #Elasticsearch๊ฐ€ #๋ถ„์„ํ•˜๊ธฐ ์‰ฝ๋„๋ก #๋ฐ์ดํ„ฐ #ํ˜•์‹์„ #๋ณ€ํ™˜ํ•˜๊ณ  #ํ•„ํ„ฐ๋งํ•ด์š”.

  • PHP ์ ์šฉ: #PHP #์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด #์ถœ๋ ฅํ•œ #๋กœ๊ทธ(#Apache #๋กœ๊ทธ, #PHP #Error #๋กœ๊ทธ ๋“ฑ)๋ฅผ #ํŒŒ์‹ฑํ•˜์—ฌ #ํ•„์š”ํ•œ #ํ•„๋“œ(#ํƒ€์ž„์Šคํƒฌํ”„, #๋กœ๊ทธ #๋ ˆ๋ฒจ, #๋ฉ”์‹œ์ง€ ๋“ฑ)๋งŒ ์ถ”์ถœํ•˜๊ณ  #Elasticsearch๋กœ ์ „์†กํ•ด์š”.


K: Kibana (#์‹œ๊ฐํ™” ๋ฐ #๋Œ€์‹œ๋ณด๋“œ)


  • ์—ญํ• : #Elasticsearch์— #์ €์žฅ๋œ #๋ฐ์ดํ„ฐ๋ฅผ #ํƒ์ƒ‰ํ•˜๊ณ  #๋Œ€์‹œ๋ณด๋“œ์™€ #์ฐจํŠธ ํ˜•ํƒœ๋กœ #์‹œ๊ฐํ™”ํ•˜์—ฌ #์šด์˜ #์ƒํ™ฉ์„ ํ•œ๋ˆˆ์— ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ด์š”.

  • PHP ์ ์šฉ: #์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ #์˜ค๋ฅ˜ #๋ฐœ์ƒ๋ฅ , #API #์‘๋‹ต #์‹œ๊ฐ„, #์‚ฌ์šฉ์ž #์ ‘์† #ํŒจํ„ด ๋“ฑ์„ #์‹œ๊ฐํ™”ํ•˜์—ฌ #๋ฌธ์ œ๋ฅผ #์ธ์ง€ํ•˜๊ณ  #์„ฑ๋Šฅ์„ #๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ผ์š”.



2. PHP ํ™˜๊ฒฝ์—์„œ์˜ ๋กœ๊น… ์‹ฌํ™”

uploadImage

#PHP #์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ #๋กœ๊ทธ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ #์ˆ˜์ง‘ํ•˜๊ณ  #๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์ „๋žต์ด ํ•„์š”ํ•ด์š”.


Monolog ์‚ฌ์šฉ (#PSR-3 ํ‘œ์ค€)


#PHP #์ƒํƒœ๊ณ„์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” #๋กœ๊น… #๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ #Monolog๋Š” #PSR-3 #๋กœ๊น… #์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•ด์š”.

  • ๊ตฌ์กฐ: #Monolog๋Š” #๋กœ๊ทธ #๋ ˆ๋ฒจ(#DEBUG, #INFO, #ERROR ๋“ฑ)๊ณผ #ํ•ธ๋“ค๋Ÿฌ(#Handler)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ #๋กœ๊ทธ๋ฅผ #ํŒŒ์ผ, #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค, #์›๊ฒฉ #์„œ๋ฒ„ ๋“ฑ ๋‹ค์–‘ํ•œ #๋Œ€์ƒ์œผ๋กœ #์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์š”.


๋กœ๊ทธ์˜ ์ค‘์•™ ์ง‘์ค‘ํ™”


๋ถ„์‚ฐ๋œ ์—ฌ๋Ÿฌ #์„œ๋ฒ„(#๋ฃจ์  ํ˜ธ์ŠคํŒ…(#https://hosting.luzensoft.com) ํ™˜๊ฒฝ์˜ #๋‹ค์ค‘ #์ธ์Šคํ„ด์Šค ๋“ฑ)์—์„œ ์ƒ์„ฑ๋˜๋Š” #๋กœ๊ทธ๋Š” ํ•œ๊ณณ์œผ๋กœ ๋ชจ์•„์•ผ ํ•ด์š”.

  • #Filebeat ์‚ฌ์šฉ: #Elastic #Stack์˜ #๊ฒฝ๋Ÿ‰ํ˜• #๋กœ๊ทธ #์ˆ˜์ง‘๊ธฐ์ธ #Filebeat๋ฅผ ๊ฐ #PHP #์„œ๋ฒ„์— #์„ค์น˜ํ•˜์—ฌ #๋กœ๊ทธ #ํŒŒ์ผ์„ #๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  #Elasticsearch๋‚˜ #Logstash๋กœ #์ „์†กํ•ด์š”. #Filebeat๋Š” #๋ฆฌ์†Œ์Šค #์†Œ๋ชจ๊ฐ€ ์ ๊ณ  #์•ˆ์ •์„ฑ์ด ๋†’์•„์š”.


๊ตฌ์กฐํ™”๋œ ๋กœ๊น… (#Structured #Logging)


๋กœ๊ทธ ๋ฉ”์‹œ์ง€๋ฅผ ๋‹จ์ˆœํ•œ #ํ…์ŠคํŠธ #๋ฌธ์ž์—ด์ด ์•„๋‹Œ, #JSON๊ณผ ๊ฐ™์€ #๊ตฌ์กฐํ™”๋œ #ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•ด์•ผ #๋ถ„์„์ด ์šฉ์ดํ•ด์š”.

  • PHP ์ ์šฉ: #Monolog๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ #๋กœ๊ทธ #๋ฉ”์‹œ์ง€๋ฅผ #JSON #ํ˜•์‹์œผ๋กœ ์ถœ๋ ฅํ•˜๊ณ , #์š”์ฒญ #ID(#Request #ID), #์‚ฌ์šฉ์ž #ID ๋“ฑ #๊ฒ€์ƒ‰์— ์œ ์šฉํ•œ #์ถ”๊ฐ€ #์ •๋ณด๋ฅผ #์ปจํ…์ŠคํŠธ #๋ฐ์ดํ„ฐ๋กœ ํ•จ๊ป˜ ํฌํ•จํ•ด์š”. ์ด๋ฅผ ํ†ตํ•ด #Kibana์—์„œ ํŠน์ • #์š”์ฒญ์˜ ์ „์ฒด #ํ๋ฆ„์„ ์‰ฝ๊ฒŒ ์ถ”์ ํ•  ์ˆ˜ ์žˆ์–ด์š”.



3. ๊ณ ๊ธ‰ ๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ ์•Œ๋ฆผ (Alerting)


๋‹จ์ˆœํžˆ #๋กœ๊ทธ๋ฅผ ํ™•์ธํ•˜๋Š” ๊ฒƒ์„ ๋„˜์–ด, #์„œ๋น„์Šค์— #์ด์ƒ์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ #์šด์˜์ž์—๊ฒŒ ์ฆ‰์‹œ ์•Œ๋ ค์ฃผ๋Š” #์•Œ๋ฆผ #์‹œ์Šคํ…œ ๊ตฌ์ถ•์ด ์ค‘์š”ํ•ด์š”.


APM (#Application #Performance #Monitoring)


#PHP #์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ #์‹ค์ œ #์„ฑ๋Šฅ์„ #์ƒ์„ธํ•˜๊ฒŒ #๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋Š” ๋„๊ตฌ์˜ˆ์š”.

  • ๊ธฐ๋Šฅ: #๊ฐœ๋ณ„ #ํŠธ๋žœ์žญ์…˜์˜ #์‘๋‹ต #์‹œ๊ฐ„, #๊ฐ€์žฅ #๋А๋ฆฐ #ํ•จ์ˆ˜ #ํ˜ธ์ถœ, #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค #์ฟผ๋ฆฌ #์‹œ๊ฐ„ ๋“ฑ์„ #์‹œ๊ฐํ™”ํ•˜์—ฌ #์„ฑ๋Šฅ #๋ณ‘๋ชฉ #์ง€์ ์„ ์ •ํ™•ํžˆ ํŒŒ์•…ํ•˜๋„๋ก ๋„์™€์ค˜์š”. #Elastic #APM, #New #Relic ๋“ฑ์ด ๋Œ€ํ‘œ์ ์ด์—์š”.


์•Œ๋ฆผ ์„ค์ • (#Alerting)


#Elasticsearch์— #์ €์žฅ๋œ #๋ฉ”ํŠธ๋ฆญ์ด๋‚˜ #๋กœ๊ทธ #ํŒจํ„ด์„ ๊ธฐ๋ฐ˜์œผ๋กœ #์ž๋™ #์•Œ๋ฆผ์„ ์„ค์ •ํ•ด์•ผ ํ•ด์š”.

  • ์˜ˆ์‹œ:

    • #๋กœ๊ทธ์—์„œ 'Fatal #Error' ๋˜๋Š” 'Exception'์˜ ๋ฐœ์ƒ ๋นˆ๋„๊ฐ€ #์ž„๊ณ„์น˜๋ฅผ ์ดˆ๊ณผํ•  ๋•Œ.

    • #PHP #์„œ๋ฒ„์˜ #CPU #์‚ฌ์šฉ๋ฅ ์ด 5๋ถ„ ์ด์ƒ 90%๋ฅผ ์ดˆ๊ณผํ•  ๋•Œ.

#Kibana์˜ #Alerting #๊ธฐ๋Šฅ์ด๋‚˜ #CloudWatch์™€ ๊ฐ™์€ #ํด๋ผ์šฐ๋“œ #๋ชจ๋‹ˆํ„ฐ๋ง #๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ์ด๋Ÿฌํ•œ #์ด์ƒ #์ƒํ™ฉ ๋ฐœ์ƒ ์‹œ #์Šฌ๋ž™(#Slack), #์ด๋ฉ”์ผ ๋“ฑ์œผ๋กœ ์ฆ‰์‹œ #์šด์˜ํŒ€์— ์•Œ๋ฆผ์„ ์ „์†กํ•ด์•ผ ํ•ด์š”.

#ELK #Stack์„ ์ค‘์‹ฌ์œผ๋กœ ํ•œ #๋ชจ๋‹ˆํ„ฐ๋ง ๋ฐ #๋กœ๊น… #์‹œ์Šคํ…œ์€ #์ตœ์ƒ๊ธ‰ #PHP #๊ฐœ๋ฐœ์ž๊ฐ€ #์šด์˜ํ•˜๋Š” #๊ณ ์„ฑ๋Šฅ, #๊ณ ๊ฐ€์šฉ์„ฑ #์„œ๋น„์Šค์˜ #์•ˆ์ •์„ฑ์„ ๋ณด์žฅํ•˜๋Š” #ํ•„์ˆ˜์ ์ธ #๊ธฐ๋ฐ˜์ด์—์š”.

ELK Stack, Elastic Stack, Elasticsearch, Logstash, Kibana, Monolog, PHP, ๋กœ๊น…, ๋ชจ๋‹ˆํ„ฐ๋ง, APM, ์•Œ๋ฆผ, Filebeat, ๊ตฌ์กฐํ™”๋œ ๋กœ๊น…, PSR-3, ๋ฃจ์  ํ˜ธ์ŠคํŒ…



VPN, ๋งˆ์ผ€ํŒ…IP, ๊ฒŒ์ž„IP, ํด๋ฆฐIP, KTํ†ต์‹ ์‚ฌIP, 1์ดˆ IP๋ณ€๊ฒฝ

https://vpn.luzensoft.com