Logging 101

1,066 views

Published on

로깅에 관한 기본 + 알파를 정리하려 하였으나, 수박 겉핡기

0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,066
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
6
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Logging 101

  1. 1. “ A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in.” - John Carmack.13년 2월 21일 목요일
  2. 2. “ A large fraction of the flaws in software development are due to programmers not fully understanding all the possible states their code may execute in.” - John Carmack. ☛ We can fix bugs by understanding states where our code was executing in.13년 2월 21일 목요일
  3. 3. Logging 101 haje01@gmail.com13년 2월 21일 목요일
  4. 4. Agenda • Log? • How to log? • Log analysis • Case Study13년 2월 21일 목요일
  5. 5. Log?13년 2월 21일 목요일
  6. 6. What is log? • Record of continuos events • ex) Black Box of an Airplane • For complex, little-interaction system • Long term iteration13년 2월 21일 목요일
  7. 7. Why is log important? • For obscure, unreproducible problems • Pinpoint, analyze & fix • Understand complex activities at large • (Very) Often, log is your last resort!13년 2월 21일 목요일
  8. 8. How to log13년 2월 21일 목요일
  9. 9. Format • Text, one line, consistent field delimiter • Timestamp • timezone, milli-seconds, NTP • Unique identifier • transaction id, session id • Log level - infos as well as problems • debug, info, warning, error, critical13년 2월 21일 목요일
  10. 10. Output • Console, file, network, etc.. • Multiple output targets • File is a fairly reliable output • Better to have async log writer • Buffer & thread, throttling policy13년 2월 21일 목요일
  11. 11. Rotating & archiving • Solution for growing log files • Disk full is common cause of false operation • Remove old files with rules • by size, time, backup count, • Archiving if needed13년 2월 21일 목요일
  12. 12. Configurable • Change log level, format, output, etc.. • Config file - no recompile • Dynamic reloading is handy13년 2월 21일 목요일
  13. 13. Log Centralization • Collect logs from various sources • application, database, network, system, performance (iostat, vmstat, ps, ... ) • Log client / server13년 2월 21일 목요일
  14. 14. A Complex System Chat Server Log DB Channel Server Game Server Client Game Login Server DB Billing Server Billing DB Patcher CDN Browser Web Server Web Switch DB Web Server13년 2월 21일 목요일
  15. 15. Complex Logs Chat Log Channel Log Game Log Login Log Client Log Billing Log Patcher Log Web Log Switch Log Web Log13년 2월 21일 목요일
  16. 16. Centralized Logs Web Log Patcher Log Channel Log Login Log Game Log Client Log Timeline Chat Log Switch Log Billing Log Client Log Web Log13년 2월 21일 목요일
  17. 17. Log analysis13년 2월 21일 목요일
  18. 18. When? • Developing stage • Understand application states and flows • Monitoring stage • Is everything going well? • Debugging stage • What had happened when something went wrong?13년 2월 21일 목요일
  19. 19. How? • Classic Tools • grep • awk • sed • Custom Tools13년 2월 21일 목요일
  20. 20. Case Study13년 2월 21일 목요일
  21. 21. syslog • 1980 Eric Allman ( now standard ) • Separates dependencies • Multi-purpose & devices • system management, security auditing, informational & debugging messages • servers, printers, routers • Facility • auth, daemon, cron, ftp, lpr, kern, mail, user..13년 2월 21일 목요일
  22. 22. 13년 2월 21일 목요일
  23. 23. log4j / log4cxx • Logging utility • Logger, appenders and layouts • Buffering, Rotating • Configurable • dynamic reloading • Plugin13년 2월 21일 목요일
  24. 24. fluentd • The Log Collector • ‘syslogd that understands JSON’ • Pluggable Architecture • Input(Http + JSON), Buffer(Memory, File), Output(File, AmazonS3, Fluentd, ... )13년 2월 21일 목요일
  25. 25. loggly • Cloud-based log management • unlimited storage • Web-based log analysis • access logs anywhere • Application debugging, Deployment monitoring13년 2월 21일 목요일
  26. 26. 13년 2월 21일 목요일
  27. 27. Q&A13년 2월 21일 목요일
  28. 28. Refs. • python log config - http://docs.python.org/2/library/ logging.config.html • Log4j best practices - http://juliusdavies.ca/logging.html • Logging best practices - http://dev.splunk.com/view/logging/SP- CAAADP6 • Log4j/cxx - http://logging.apache.org/log4j/2.x/ http:// logging.apache.org/log4cxx/ • Fluentd - http://fluentd.org http://before30.tistory.com/179 • Loggly - http://loggly.com13년 2월 21일 목요일

×