ã·ã¹ãã 管çè
ã¯ã©ã®ããã«åããæ¥åžžæ¥åã§äœã䜿çšããŸãããã©ã®ãŠãŒãã£ãªãã£ãç§ãã¡ã®ç掻ã楜ã«ããŸããïŒ
ãããã®è³ªåã«ç°¡åã«çã
ãäœæ¥ãã©ã®ããã«æ§æãããŠãããã説æã
ãŸã ã
ãã®ãããååãšããŠãã·ã¹ãã 管çè
ã¯æ¬¡ã®ããšãè¡ãå¿
èŠããããŸãïŒã§ããããã«ãªããŸãïŒã
ãœãããŠã§ã¢ã®ã€ã³ã¹ããŒã«/æŽæ°/ã¢ã³ã€ã³ã¹ããŒã«
ãœãããŠã§ã¢ã®ã»ããã¢ãã
èšç»äœæ¥
ææžåãã
ITã·ã¹ãã ã®ã¹ããŒã¿ã¹ãç£èŠãã
ITã·ã¹ãã ã®èšºæãšä¿å®
ãœãããŠã§ã¢ãšããŒã¿ã®ããã¯ã¢ãã/ã¢ãŒã«ã€ã
ãã®ãã¹ãŠã®ããã«ãå€ãã®ç°ãªããœãããŠã§ã¢ããããŸããç§ãã¡ã¯ãã¹ãŠã®æãå¿
èŠãªãã®ã説æããããšããŸãã
ç°å¢ïŒç°å¢ïŒ
ã·ã¹ãã 管çè
ã®ä»äºã®å§ãŸã-䟿å©ãªç°å¢ã®éžæã ããã¯åºã
ãšããæãããªãã£ã¹ãå¿«é©ãªæ€
åã§ã¯ãããŸããããéèŠã§ããããªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã®éžæã§ãã ç§ã®ååã¯Mac OS XãWindowsãUbuntuã§åããŠããŸãã ãã£ã¹ããªãã¥ãŒã·ã§ã³ãšããŸããŸãªãã¹ã¯ãããã·ã§ã«ïŒDebianãKubuntuãFedora Gnome / CinnamonïŒã§å€ãã®è©Šè¡ãšå®éšãè¡ã£ãåŸãUbuntu 12.04ïŒUnityïŒã«èœã¡çããŸããã
æ
£ããŠãUnityã«æ
£ããã°ããã§ãä»ã§ã¯è«ççã§éåžžã«äŸ¿å©ãªPCã·ã§ã«ã®ããã«æããŸãã 管çè
ã®äž»ãªèŠä»¶ã¯ãå®å®æ§ãšã·ã³ãã«ãã§ãã ç§ã¯èª°ãšãè°è«ããããããŸããããããã¯Ubuntuãããèªäœã蚌æããæ¹æ³ã§ãã
ããã¥ã¡ã³ããŒã·ã§ã³ãèšç»ããããã®ããŒã«ã«ã€ããŠã¯ããããã詳ãã説æããŸããã ããã¥ã¡ã³ããŒã·ã§ã³ã«ã€ããŠã¯ãããã¯ãå
±æããã®ã«ååãªã¡ã¢åž³ïŒGeditïŒãšLibre OfficeãšGoogle Docsãããããšã«æ³šæããŠãã ããã æã䟿å©ãªã¡ã¢ãšããã¥ã¡ã³ãã¯ãã¹ãŠãŠã£ãã«ä¿åãããŠããŸãã æéã®è¿œè·¡ãšã¿ã¹ã¯å¶åŸ¡ã«ã¯ãRedmineã䜿çšããŸãã
ãã¡ãããååãã¯ã©ã€ã¢ã³ããšã®ã³ãã¥ãã±ãŒã·ã§ã³ã«ã¯è³éãå¿
èŠã§ãã éåžžãããã¯é»åã¡ãŒã«ãšSkypeããã³é»è©±ã§ãã
èšç»ã«ã¯ãGoogleã«ã¬ã³ããŒã䜿çšããŸããããšãã°ãæ¥èšãªã©ãå®éã«äœ¿çšããå Žåãä»ã®ããŒã«ãåæ§ã«æå¹ã§ãã
äœããã®æ¹æ³ã§ãããŒã«ã«ã§ããŸãã¯ãªã¢ãŒããµãŒããŒã§ãã³ã³ãœãŒã«ã§å€ãã®äœæ¥ãè¡ãå¿
èŠããããŸãã ãããã£ãŠã* nix管çè
ã®æ¥åžžæäœã§æãéèŠãªããšã¯ãã³ãã³ãã©ã€ã³ãŠãŒãã£ãªãã£ã§ãã
ã³ãã³ãã©ã€ã³ãŠãŒãã£ãªãã£
ã»ãšãã©ã®å Žåãããã¹ãïŒæ§æããã°ãããã¥ã¢ã«ãªã©ïŒãæäœããå¿
èŠããããããããã¹ããšãã£ã¿ãŒããããã¹ããšè¡ãæäœããããã®ãã®ä»ã®ããŒã«ããå§ããŸãããã
vi / vim-ãã®ãšãã£ã¿ãŒã¯ã»ãšãã©ãã¹ãŠã®ãµãŒããŒïŒUnixäžã®ïŒã§èŠã€ããããšãã§ããããã管çè
ã«ãšã£ãŠäžå¯æ¬ ãªããŒã«ã§ããå°ãªããšãman vimã§ãããæ£ããè¡ãæ¹æ³ãèªãã§ãã ããã
nanoã¯ãDebian / Ubuntuã§ããã©ã«ãã§å©çšã§ããæãåçŽãªãšãã£ã¿ãŒã§ãã
mcedit -mcãšãã«ãŒã¹ã¯ãªãŒã³ã®ãã¡ã³åãã§ãææªã®ãªãã·ã§ã³ã§ã¯ãªããéåžžã«ã·ã³ãã«ã§äŸ¿å©ã§ãã
cat -concatinate-å
ã
ã¯ãã¡ã€ã«ãçµåããããã®ããŒã«ã§ãããããã¡ã€ã«ã®å
容ã衚瀺ãããããã¡ã€ã«ã«è¡ãæ¿å
¥ãããããããã«ãã䜿çšãããŸãã
tail-ããã©ã«ãã§ã¯ããã¡ã€ã«ã®æåŸã®10è¡ã衚瀺ãããã°ã®è¿œè·¡ã«äœ¿çšã§ããŸãïŒ-fã¹ã€ããã䜿çšïŒ
wc-ãã¡ã€ã«å
ã®åèªæååãšãã€ãæ°ãã«ãŠã³ãããŸã
head -tailã¯ãã¡ã€ã«ã®10è¡ãåºåããŸãããååãããããããã«ããã¡ã€ã«ã®å
é ããã
grepã¯ãããã¹ãåºåããã£ã«ã¿ãªã³ã°ããããããŸãã¯ãã¡ã€ã«å
ã®ç®çã®è¡ãèŠã€ããããã®æãäžå¯æ¬ ãªããŒã«ã§ãã
sed-ã¹ããªãŒã ãšãã£ã¿ãŒ-ã«ãŒãã³ã¿ã¹ã¯ã®èªååããã¡ã€ã«å
ã®è¡ã®çœ®æïŒæ§æã®ç·šéïŒãè¡ã®åé€ããã¹ã¯ã«ããã³ã³ãã³ãã®è¡šç€ºãªã©ã«éåžžã«åœ¹ç«ã¡ãŸãã
awk / gawkã¯éåžžã«åŒ·åãªãŠãŒãã£ãªãã£ã§ïŒAWKã¯å®éã«ã¯ããã°ã©ãã³ã°èšèªå
šäœã§ãïŒããã¡ã€ã«ã®è§£æãè¡åºåã®æäœãªã©ã«åœ¹ç«ã¡ãŸãã
ãªã¹ããããŠãããã¹ãŠã®ãŠãŒãã£ãªãã£ã«é¢ããæ
å ±ã¯ãmanã«ãããŸãã ç·ãšããã°ïŒ
man -manããŒãžãžã®ã¢ã¯ã»ã¹-ããã¯ãUnixã®ç®¡çè
ã1æ¥äœæ¥ããããšã¯ãããããªãããšã§ãã åå¿è
ã®å Žåã¯ãã³ãã³ãã©ã€ã³ã§man manãšå
¥åããŠéå§ããŠãã ããã
ãªã¹ãã¯å»¶ã
ãšç¶ããŸãããå®éã«ã¯å€ãã®ãŠãŒãã£ãªãã£ããããŸãã ããããä»ã®ãšãããããã«ã€ããŠè©³ããèŠãŠãå°ããªç·ãèªãã§ãawkãwcãcatãããã³grepã§äœã圹ç«ã€ãèŠãŠã¿ãŸãããã
ã¡ãã£ãšããç·Žç¿
ãããã®ãŠãŒãã£ãªãã£ãå®éã«åœ¹ç«ã€ã®ã¯ãªããããã°ã解æããäŸã瀺ããŠã¿ãŸãã
次ã®åœ¢åŒã®Apacheãã°ãã¡ã€ã«ïŒaccess.logïŒããããŸãã
1.2.3.4 - - [12/May/2014:03:08:55 +0400] "GET /shop/goods-list HTTP/1.1" 200 1691 "http://example.ru/shop/goods-list" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:29.0) Gecko/20100101 Firefox/29.0"
æ£åžžã«åŠçããããªã¯ãšã¹ãã®å²åãèšç®ããç°¡åãªã¹ã¯ãªãããäœæããŸãã
次ã®ãããªçµæã
Passed: 93.62%
ãŸãã
Passed: 93.62%
ãããŠããã£ãšäŸ¿å©ãªäŸïŒ
çŸåšã®1æéåã«è»¢éãããããŒã¿ã®éãèšç®ããŸã
cat access.log | grep `date +%H:%M -d "-1 hour"` | awk '{ total += $10 } END { print total/1024/1024 FS"MB" }'
転éãããããŒã¿ã®åèšéãèšç®ããŸã
awk '{ total += $10 } END { print total/1024/1024 FS"MB" }' access.log
å¹³åãªã¯ãšã¹ãåŠçæéãèšç®ããŸã
ã·ã¹ãã èµ·å蚺æ
ãµãŒããŒã®ããžãŒç¶æ
ãç解ããããã«ãããã€ãã®ãŠãŒãã£ãªãã£ããããŸãããŸããè² è·å¹³åã€ã³ãžã±ãŒã¿ãŒã«ãã£ãŠè² è·ãè©äŸ¡ã§ããŸããHabréã§ã¯ãããã¯ããããã1åã5åã15åéããªãœãŒã¹ã®åä¿¡ãåŸ
æ©ããŠãããããã¯ããã»ã¹ã®æ°ã§è¡šãããå¹³åã·ã¹ãã è² è·ã®ã€ã³ãžã±ãŒã¿ãŒã§ãããšæ¢ã«æžããŠããŸãã
çŸåšã®ãµãŒããŒè² è·ãè©äŸ¡ããã©ã®ããã»ã¹ããµãŒããŒãããå€ãããŒãããŠãããã確èªããã®ã«åœ¹ç«ã€æåã®ããš-topãŸãã¯htopïŒ
top -Linuxããã»ã¹ã®è¡šç€º-ããã«ã皌åæéãè² è·å¹³åãé²è¡äžã®ã¿ã¹ã¯ãšã¹ã¬ããã®æ°ã衚瀺ããŸãã
CPUããã©ãŒãã³ã¹ïŒããŒã»ã³ããŒãžïŒïŒ
-us-åŠçã®åªå
é äœãå€æŽããã«ãŠãŒã¶ãŒã®å®è¡ã«è²»ãããæéïŒãã€ãã¹ïŒã
-sy-ã·ã¹ãã ïŒã«ãŒãã«ïŒããã»ã¹ã®å®è¡ã«è²»ããããæéã
-ni-åŠçã®åªå
é äœãå€æŽããããŠãŒã¶ãŒå®çŸ©ã®ãã®ïŒniceïŒã«è²»ããããæéã
-wa-å
¥å/åºåã®ã¿ã€ã ã¢ãŠãïŒãã£ã¹ã¯ãµãã·ã¹ãã ïŒã
-hi-ããŒããŠã§ã¢å²ã蟌ã¿ã®åŠçæéã
-si-ãœãããŠã§ã¢å²ã蟌ã¿ã®åŠçæéã
-st-å¥ã®ä»®æ³ãã·ã³ã§ã¿ã¹ã¯ãåŠçããããã«ãã€ããŒãã€ã¶ãŒã«ãã£ãŠãçãŸãããæé-ä»®æ³ãã·ã³ïŒVPS / VDSïŒã«é¢é£ãããã¹ãã®èª å®ããè©äŸ¡ããã®ã«åœ¹ç«ã¡ãŸãããã®ã€ã³ãžã±ãŒã¿ãŒã倧ããå Žåããããã€ããŒã¯é²éªšã«å£²ãããŠããŸãã
ãŸããtopã¯äžè¬ã«æ¶è²»ãããã¡ã¢ãªã®éãšãã®çç±ïŒããã»ã¹ããã£ãã·ã¥ããããã¡ïŒã瀺ããåããã»ã¹ãæ¶è²»ããéã瀺ããŸãã
-VIRT-ã³ãŒããããŒã¿ãå
±æã©ã€ãã©ãªãã¹ã¯ããã«ãã³ããããã¡ã¢ãªããŒãžãäºçŽãããŠããã䜿çšãããŠããªãã¡ã¢ãªããŒãžãªã©ãããã»ã¹ã䜿çšããã¡ã¢ãªéã衚瀺ããŸãã
-RES-åžžé§ã¡ã¢ãªãµã€ãº-ããã»ã¹ã䜿çšããRAMã®çŸåšã®éïŒã¹ã¯ãããªãïŒã
-SHR-å
±æã¡ã¢ãªã®ãµã€ãº-ååãšããŠããã®ã¡ã¢ãªãã¹ãŠãåžžé§ããŠããããã§ã¯ãªããããã»ã¹ã§äœ¿çšå¯èœãªRAMã®çŸåšã®éã ãã®æ°å€ã¯ãä»ã®ããã»ã¹ãšå
±æã§ããã¡ã¢ãªã®éã衚瀺ããã ãã§ãã
ã·ã¹ãã ãªãœãŒã¹ã®äœ¿çšç¶æ³ã瀺ãã€ã³ãžã±ãŒã¿ã衚瀺ããããšã«å ããŠãtopã¯ããã»ã¹ãæäœããããã«ã䜿çšãããã·ã°ãã«ãéä¿¡ããŠããã»ã¹ãçµäºãããããã®åªå
床ãå€æŽãããããããšãã§ããŸãã
htop -
topã®ããã«ã©ãã«ãªããŒãžã§ã³
-topãšåãæ©èœããã¹ãŠåããŠããŸããããã䜿ããããã€ã³ã¿ãŒãã§ã€ã¹ïŒããã»ã¹ã®ãªã¹ããåçŽããã³æ°Žå¹³ã®äž¡æ¹ã«ã¹ã¯ããŒã«ã§ããŸãïŒããããéžæããããã»ã¹ã®lsofãstraceããã³ltraceãåŒã³åºãããšãã§ããŸãïŒãããã«ã€ããŠã¯åŸã§è©³ãã説æããŸãïŒè©³çŽ°ã«èª¬æããŸãïŒã
ãã£ã¹ã¯I / Oãµãã·ã¹ãã ã®è² è·ãè©äŸ¡ããã«ã¯ãiotopãŠãŒãã£ãªãã£ã䜿çšã§ããŸãã
iotop-ãã£ã¹ã¯è² è·ãç£èŠããããã®ãããã©ã€ã¯ãªãŠãŒãã£ãªãã£ã§ã次ã®ãããªãã£ã¹ã¯I / Oã®çŸåšã®ã€ã³ãžã±ãŒã¿ãšãšãã«ããã»ã¹ã®ããŒãã«ã衚瀺ããŸãã
-PRIO-ããã»ã¹ã®åªå
床ã
-ãã£ã¹ã¯èªã¿åã-ãã£ã¹ã¯ãã€ã/ç§ããèªã¿åãã
-ãã£ã¹ã¯æžã蟌ã¿-ãã£ã¹ã¯ãžã®æžã蟌ã¿ãã€ã/ç§ã
-SWAPIN-ããã»ã¹ãã¹ã¯ããã«è²»ãããæéïŒããŒã»ã³ããŒãžïŒã
-IO-å
¥åºåã®åŸ
æ©ã«ããã»ã¹ãè²»ãããæéïŒããŒã»ã³ããŒãžïŒã
ããã«ããã£ã¹ã¯ãµãã·ã¹ãã ã®èªã¿åã/æžã蟌ã¿ãããã¬ãŒãã®åèšã«é¢ããæ
å ±ã衚瀺ãããŸãã
vmstat-ããã»ã¹ãã¡ã¢ãªãå
¥å/åºåãããã»ããµãšãã£ã¹ã¯ã®ã¢ã¯ãã£ããã£ã«é¢ããæŠèŠæ
å ±ã衚瀺ããŸãã iotopãšã¯ç°ãªããã¹ãŒããŒãŠãŒã¶ãŒç¹æš©ã¯å¿
èŠãããŸããã
ããã°ã©ã é害ã®èšºæããã©ãã«ã·ã¥ãŒãã£ã³ã°ããã°ã©ã ãããŒã¢ã³ãæåŸ
ã©ããã«åäœããªãå Žåããäœããã®çç±ã§ã¯ã©ãã·ã¥ããå ŽåããããŸãã ãã¹ãŠã®ãã°ã衚瀺ããããšãïŒãŸãã¯ãã°ããªããšãïŒããã¹ãŠã®èšå®ããã§ãã¯ãããããã¥ã¡ã³ããåèªãããŸãïŒãã¡ããããå ŽåïŒãã·ã¹ãã ãã¬ãŒã¹ã®ãŠãŒãã£ãªãã£ã¯staceãåŒã³åºããltraceãå©ãã«ãªããlsofã¯éããŠãããã¡ã€ã«ã®ãªã¹ãã衚瀺ããŸãïŒ
strace-ãŠãŒãã£ãªãã£ã䜿çšãããšãå®è¡äžã®ããã»ã¹ãŸãã¯æ¢ã«å®è¡äžã®ããã»ã¹ã®ã·ã¹ãã ã³ãŒã«ãšã·ã°ãã«ãPIDã«ãã£ãŠã€ã³ã¿ãŒã»ããã§ããŸãã
åºåã¯ãã£ã«ã¿ãªã³ã°ã§ããŸããããšãã°ãopenïŒïŒãŸãã¯selectïŒïŒåŒã³åºãã®ã¿ãåºåãããŸãã åŒã³åºããè² ã§ãªãå€ãè¿ããå Žåãããšãã°æ¬¡ã®å Žåã¯ãã¹ãŠæ£åžžã§ãã
open("/foo/bar", O_RDONLY) = -1 ENOENT (No such file or directory)
ãããã¢ããªã±ãŒã·ã§ã³ãååšããªããã¡ã€ã«ãéãããšããŠããããšãããããŸãã ãŸãããã¡ã€ã«ã®ã¢ã¯ã»ã¹èš±å¯ãæ£ããèšå®ãããŠããªãããšããããŸãã ããšãã°ããã€ããŒãã€ã¶ãŒã¯å¿
èŠãªéã®RAMãå²ãåœãŠãããšãã§ããªããããä»®æ³ãã·ã³ã¯èµ·åããŸããã Straceã¯ããã®ãããªç¶æ³ã§åœ¹ç«ã¡ãŸãã
ãã®ãµãŒãã¹ãŸãã¯ãã®ãµãŒãã¹ãã©ã®ããã«æ©èœããããã©ã®ã·ã¹ãã ãããã䜿çšãããã確èªãããã ããªããstaceãããªãã®å人ã§ãã ããšãã°ãApacheãNginxãšæ ¹æ¬çã«ã©ã®ããã«ç°ãªããã調ã¹ããå Žåã¯ãèŠãŠãã ããã
ltrace-ã©ã€ãã©ãªåŒã³åºãããã¬ãŒã¹ããããã®ãŠãŒãã£ãªãã£
-straceã«éåžžã«äŒŒãŠããŸãããåçã©ã€ãã©ãªãžã®åŒã³åºãã®ã¿ãã€ã³ã¿ãŒã»ããããŸãã
ldd-ããã°ã©ã ã§èšå®ãããšãã©ã€ãã©ãªã䜿çšããããã°ã©ã ã衚瀺ãããŸãã ããã°ã©ã ãchrootã«è»¢éããå¿
èŠãããå Žåã«äŸ¿å©ã§ãã
lsof-éããŠãããã¡ã€ã«ã®ãªã¹ãã衚瀺ãšãšãã«è¡šç€ºããŸããããã©ã«ãã§ã¯ããã¹ãŠãè¡ã§è¡šç€ºããŸãã PIDïŒhtopã§éåžžã«äŸ¿å©ãªåºåïŒã«ããç¹å®ã®ããã»ã¹ãUIDã«ãããŠãŒã¶ãŒããŸãã¯ç¹å®ã®ãã¡ã€ã«ã䜿çšããããã»ã¹ãªã©ããªã¹ãã§ããŸãã
å Žåã«ãã£ãŠã¯åœ¹ã«ç«ã€ãããããŸããã 説æãšäŸã§éåžžã«è©³çŽ°ãªç·ãããŸãã
ä»ã«äŒããããšã¯äœã§ãã
次ã®èšäºã§ã¯ãæ©åšããããã¯ãŒã¯ãç£èŠããã³èªååããŒã«ã蚺æããããã®ãŠãŒãã£ãªãã£ã«ã€ããŠèª¬æããŸãã
ãããã¯ã¯æ¬åœã«å€§å®¹éã§èå³æ·±ãã®ã§ãã³ã¡ã³ãã§ããªãã®å人çãªçµéšããèå³æ·±ãäŸãèŠãããšãã§ããŸãã
ç¶ç¶ããã«ã¯...UPDïŒ
sledopitããæ£åžžã«åŠçããããªã¯ãšã¹ãã®å²åãèšç®ããããã®ããé©åãªãªãã·ã§ã³
awk '{sum+=1; if ($9==200) ok+=1} END {printf "Passed: %3.2f%%\n", ok / sum * 100}' access.log
ãããŠã
RumataEstoraã®SUMã®ä»£ããã«ãã«ãã€ã³NRå€æ°ã䜿çšããããã«ã·ã³ãã«ãªãªãã·ã§ã³
awk '$9 == 200 { s++ } END { print s / NR * 100; }' access.log