わたしとホスティング業界 専用サーバチーム交流会@東京支社
2019/03/01
さくらインターネット株式会社 さくらインターネット研究所 @matsumotory / まつもとりー / 松本亮介
͘͞ΒΠϯλʔωοτגࣜձࣾ(C) Copyright 1996-2019 SAKURA Internet Inc͘͞ΒΠϯλʔωοτݚڀॴΘͨ͠ͱϗεςΟϯάۀք2019/03/01 ্ڃݚڀһ দຊ ྄հઐ༻αʔόνʔϜަྲྀձˏ౦ژࢧࣾ
View Slide
2ɾ͘͞ΒΠϯλʔωοτݚڀॴ ্ڃݚڀһɾגࣜձࣾGrooves Forkewll ٕज़ސɾϖύϘݚڀॴ ٬һݚڀһ ݚڀސɾηΩϡϦςΟɾΩϟϯϓߨࢣɾใॲཧֶձ Πϯλʔωοτͱӡ༻ٕज़ݚڀձ ֤छҕһɾژେֶത࢜ʢใֶʣদຊ྄հ / ·ͭͱΓʔ / @matsumotory
31. େֶ2. ཹ3. ৽ଔ4. େֶӃ5. ࠶ब৬6. ͘͞ΒΠϯλʔωοτ࣍
1.େֶ
5ɾ΄ͱΜͲPCΛ৮͍ͬͯͳ͔ͬͨɾߴߍͰ༑ୡʹڭ͑ͯΒͬͨࣆࠢΛܑఋͰதരস͠ͳ͕ΒಡΉߴߍ·Ͱ
6ɾதֶडݧͰ͋·Γʹർฐͯ͠େֶडݧؾྗ͕ͨͳ͔ͬͨɾϞνϕʔγϣϯԿͳ͍··ใֶɾཱྀߦߦͬͨΓήʔϜͱ͔ͨ͠Γ༡ΜͰ͔ͬΓେֶ࣌
7ɾύιίϯͱग़ձ͏ɾतۀͰϓϩάϥϛϯάΛֶͿதͰͳΜ͔ײతʹϠόΠͱࢥͬͨɾͦΕҎ্ʹUNIXͰαʔόΛࠇ͍ը໘Ͱ࿔Δײ͕͔ͬ͜͡Α͔ͬͨɾࣗ࡞ύιίϯΛΔɾ͍҆ʂ → ࡞Δ → PC༨Δ → αʔόͱ͍͏ͷ͕͋ΔΒ͍͠ → αʔό࡞Δ → ࡞Δ → PC༨Δ → αʔό࡞Δ → ……….ɾ͕ࣗσʔληϯλʔͷΑ͏ʹͳ͍ͬͯͬͨେֶ
8ɾࣗͰϝλϧϥοΫͰϥοΫΛ࡞ͬͯҰதΤΞίϯ͚ͬͺͳ͠ɾNagisͰࢹͨ͠ΓmrtgΛோΊͨΓαʔόෛՙΛݟΔͷ͕झຯαʔόӡ༻͕झຯ
9ɾαʔόωοτϫʔΫશମͷࢹ͓ΑͼՄࢹԽɾϩάʹΔProve߈ܸΛݕͯ͠௨ͨ͠ΓޚɾύέοτΛSOMͰՄࢹԽɼSVMChangeFinderͰҟৗݕɾϝʔϧϩά͔ΒspamҟৗΞΫηεΛղੳͯ͠௨ɾϑΝΠϧΛϒϥβ͔Βݕࡧͯ͠μϯϩʔυͰ͖ΔΈɾܝࣔ൘ͷσʔλΛճऩͯ͠index͚ͭͯશจݕࡧͰ͖ΔΈझຯͷαʔόཧͰ͍ͬͯͨ͜ͱͷྫ
10ࣗαʔόͷͳΜͪΌͬͯӡ༻ۀྫ> 2007-04-02 (݄) 2:02֎Ͱ༻ࣄ͕͋ͬͯؼ͖ͬͯͯϝʔϧνΣοΫ͠Α͏ͱͨ͠ΒIMAPͰΤϥʔɻΤϥʔͷͨΊʹWEBϝʔϧΛݟΔ͜ͱ͕Ͱ͖ͳ͍ɻͲ͏ɺmaillogΛΈͯΔͱimapʹϩάΠϯ͢Δ͜ͱ͕Ͱ͖ͯͳ͍༷ࢠɻͬͯ͜ͱɺsquirrelͷํʹ͕͋Δͱࢥ͏͕ಛʹݟ͋ͨΒͣɻmaillogͰ͞Βʹҧ͏ൃݟɻαʔόͷΤϥʔΛड৴͢ΔΞΧϯτʹ200Ҏ্ͷϝʔϧ͕root͔Βಧ͍͍ͯΔɻͱ͍͏Θ͚Ͱɺ࡞ۀ։࢝ɻݟΔͱcronͰ5ى͖ʹಈ͔͍ͯ͠ΔMRTGͰΤϥʔ͕ͰͯΔɻ͔͠ɺग़ͯΔ༰lm_sensorͰऔಘ͍ͯ͠ΔҎ֎ͷͷͱ໌ɻͦ͏͍ɺࡢhostsϑΝΠϧΛదʹ࿔͍ͬͯͨ͜ͱΛࢥ͍ग़͢ɻௐͯΈΔͱɺͲ͏localhostΛ127.0.0.1ʹղܾ͢Δ͜ͱ͕Ͱ͖ͯͳ͍Έ͍ͨɻͱΓ͋͑ͣɺͦͷղܾΛͯ͠Έ͕ͨɺଈ࠲ʹө͞Εͳ͔ͬͨʢͳͥͩΖ͏ɺཁʣͷͰɺMRTGͷcfgϑΝΠϧͷlocalhostͷ෦Λશͯ127.0.0.1ʹ͠ɺsnmpd.conf127.0.0.1ʹมߋɻͦͯ͠WEBϝʔϧͷϩάΠϯΤϥʔ͕ͦͩ͜ͱΘ͔ΓɺsquirrelͷαʔόʔઃఆͰαʔόʔΛlocalhost͔Β127.0.0.1ʹมߋɻsnmpdΛ࠶ىಈͯ͠ɺखಈͰMRTGͷάϥϑ࡞ίϚϯυΛଧͬͨͱ͜ΖΤϥʔग़ͣɺOKɻϩʔΧϧ͔ΒϒϥβͰWEBϝʔϧʹϩάΠϯɺޭɺOKɻͱΓ͋͑ͣɺେྔͷΤϥʔϝʔϧΛআͯ͠ɺҰԠαʔόʔΛ࠶ىಈͯ͠Έͯ͏ҰνΣοΫɺOKɻॏཁͳϝʔϧ͕དྷͨΓ͢Δ࣌ظͳͷͰͪΐͬͱ͕͋ͤͬͨɺαʔόʔࣄଶͳ͘ɺΉ͠ΖͦͷσʔλΛऔΓग़͢ͱ͜ΖͰ͕ى͖ͯͨͨΊʹɺσʔλͳ͍Α͏ͩɻhostsϑΝΠϧΛదʹ࿔ΔͷΊ·͠ΐ͏ͬͯ͜ͱͰ͢Ͷɻ
2.ཹ
12ɾCݴޠͰ؆қσʔλϕʔεͷ࡞ɾCݴޠͰ࢛ଇԋࢉͷίϯύΠϥ࡞ɾϲ݄͔͚࣮ͯ͢ΔͷΛिؒͰ࡞ͯ͠पΓͷखॿ͚ɾఏग़͢ΔίʔυΛؒҧ͑Δɾ͚࣮ࣗͩݧΛམͱ͠ɼཹ͕֬ఆɾݚڀͷଐͰҙؾࠐΜͰ͍ͨ࣌ظ͚ͩʹඇৗʹେ͖ͳ࠳ંใֶ࣮ݧʢ3ੜʣ
13ɾֶੜ࣌ͷཹͱʹ͔͘γϣοΫ͕Ͱ͔͍ɾલΛ͔͘͠ແ͍ͷͰαʔόؔ࿈ͷاۀͰΞϧόΠτΛرɾΧΰϠɾδϟύϯͰσʔληϯλʔɾαʔόཧͷࣄ։࢝ɾෛՙରԠɾোରԠɾσʔληϯλʔཧɾศརπʔϧ։ൃɾDCআதʹέʔϒϧʹͻ͔͔ͬͬͯαʔόΛམͱ͢ɾͳΜͱͳ͘γϡγϡͬͱ͙͢ܨ͛҆৺Έ͍ͨʹࢥͬͨɾΤϯδχΞͷօ͞ΜಛʹΊΔ͜ͱͳ͘ϑΥϩʔͯ͘͠Εͨ1͕࣌ؒͰ͖ͨͱߟ͑͢
3.৽ଔ
15ɾΧΰϠɾδϟύϯͷΤϯδχΞ͕ັྗతɾاۀͷݟ͑ͳ͍ٕज़ྗΛΓ͍ͨɾϗεςΟϯάձࣾब৬ΛرɾΧΰϠ͔Β͓༠͍Λड͚ΔɾΧΰϠ or ϑΝʔεταʔό or ͘͞ΒΠϯλʔωοτɾҰ൪ߦ͖͔ͨͬͨͷ͘͞ΒΠϯλʔωοτɾ৭ʑ͋ͬͯϑΝʔεταʔόΛબͦͷޙେֶͰ4ੜʹແࣄਐڃ
16ɾͱʹ͔͘ྔΛ͜ͳͨ͠ɾোରԠɾෛՙରԠɾπʔϧ։ൃɾPMɾ৽αʔϏεɾOSSίϛϡχςΟʹ͍ͭͯຊͰֶΜͩɾӡ༻ɾࢹɾނোཧɾߏཧɼ֤छγεςϜΛ৽ͨʹ։ൃɾطଘͷ΄΅શͯͷӡ༻ʹؔΘΔΈΛ৽ɾඞཁͳӡ༻ϓϩηεશͯ࠶ఆٛͯ͠ڭҭϑΝʔεταʔό࣌ͷӡ༻ref: ਓؒͱΣϒͷະདྷ LinuxΤϯδχΞΛࢦͯ͠ೖࣾҰʹͬͯʹͨͬͨͱࢥ͏ࣄhttp://blog.matsumoto-r.jp/?p=2219
17ɾ͔࣌Βϓϩηεͷִίϯςφٕज़ɼΧʔωϧʹ৮ΕΒΕͨɾVirtualdɼJailɼVirtuozzoɼLinux From ScratchɾෳίϯςφͷI/OΛಁաతʹtop͢Δπʔϧͱ͔ɾϛυϧΣΞͷ։ൃɾApache httpdͷύονɼApacheϞδϡʔϧɼnginxϞδϡʔϧɼMilterαʔόɼSendmail/PostfixͷύονɾOSΧʔωϧͷௐࠪɼύονϑΝʔεταʔό࣌ͷ։ൃ
18ɾϚωʔδυͰͳ͍ઐ༗αʔό͕֤ࣾग़ͩͨ͠هԱɾཧαʔόͱrootΛͯ͠Կ͔͋ͬͨΒॳظԽͯ͠࠶ఏڙɾͦͷखγεςϜΛ࣮ͨ͠Γӡ༻ͨ͠ΓɾϚωʔδυͰͳ͍͚Ͳ͓٬༷ͱো࣌ʹ৭ʑͱɾϚωʔδυ͠ͳ໊͍ͰՁ͕֨ͩͬͨରԠௐίετߴ͔͕ͬͨೖࣾͨ͠2008
19ɾͱʹ͔࣌ؒ͘Λ੯͠ΜͰຖઌͯ͠खΛಈ͔ͨ͠ɾνʔϜΛकΔͱ͔ͦ͏͍͏͜ͱΛߟ͑͗ͨ͢ɾຊདྷकΔͷͰͳ͘ҰॹʹΔɾίϯηϓτϏδϣϯΛ౷Ұͤͯͦ͜͞ͷΞϓϩʔνଟ༷ԽɾϦʔμʔγοϓͱϑΥϩϫʔγοϓɾݸਓͷΛલఏʹ৫ྗʹΑͬͯ૯ྔΛ࠷େԽ͢ΔɾઌͷΤϯδχΞϦϯάϚωʔδϝϯτΛ͢ΔͨΊͷܦݧʹͳͬͨৼΓฦΓ
4.େֶӃ
21͜͜Ͱࢁ͍ͬͯΔͷͰলུhttps://speakerdeck.com/matsumoto_r/matumotorisutairu
22ത࢜߸औಘͳΜͱ͔ത࢜߸औಘͰ͖·ͨ͠
23ɾ͜Ε·ͰയવͱऔΓΜͩϗεςΟϯάٕज़ΛݴޠԽͨ͠ɾݴޠԽ͢Δͳ͔Ͱ՝Λೝࣝ͠৽͍ٕ͠ज़ΛੜΈग़ͨ͠ɾ4ͭͷςʔϚΛത࢜จͱͯ͠ମܥԽͯ͠ཧͨ͠ɾݴޠԽɾମܥԽ͢Δ͜ͱʹΑͬͯͦͷٕज़Λ౿ΈʹͰ͖Δɾ৽͍͠ΞΠσΞ࣍ͷੈք͕ݟ͑ͯ͘Δɾࢠڙ͕ੜ·Εͨʢݱࡏஉ5ࡀɼ࣍உ3ࡀʣത࢜՝ఔΛৼΓฦΔͱref: WebαʔόͷߴूੵϚϧνςφϯτΞʔΩςΫνϟʹؔ͢Δݚڀhttps://repository.kulib.kyoto-u.ac.jp/dspace/handle/2433/225954
5.࠶ब৬
25ɾ࣌ϖύϘͷٕज़ͷτοϓɾത࢜՝ఔޙͷब৬ઌΛߟ͍͑ͯͨͱ͖ʹ༠͍͍ͬͯͨͩͨʂײܹʂɾ͜Ε͕͖͔͚ͬͰԬࠓೖࣾ͞Εͨmizzy͞Μ
26ϖύϘͰͷ׆ಈࢁ͍ͬͯΔͷͰলུref: શͯͷొஃࢿྉ https://speakerdeck.com/matsumoto_r
27ϖύϘͷϝϯόʔͱ։ൃ߹॓ʢࠓͬͯΔʣͳΜͷΏ͔Γͳ͔ͬͨԬͰࢁͷ͕ؒͰ͖·ͨ͠
28ɾࣄۀΛࠩผԽ͢Δٕज़Λ࡞Δٕज़͕ʹ͍ͭͨɾݚڀ։ൃͷΞϓϩʔνͰࣄۀʹߩݙ͢Δํ๏ҙٛΛཧղͰ͖ͨɾଟ͘ͷΤϯδχΞΛ·ͱΊͯՁͷ࠷େԽʹऔΓΊͨɾϚωʔδϝϯτͱεϖγϟϦετͲͪΒͱͯΉ͔͍ͣ͠ɾεϖγϟϦετͱͯ͠ੜ͖͖ͯͨࣗʹ͏Ұࢿ͍ͨ͠ɾվΊͯεϖγϟϦετͰ͍͚Δͱ͜Ζ·ͰߦͬͯΈ͍ͨɾͦΕͧΕ͋ΔఔͷڥքΛ͑Δͱ͍͏લఏ͋ΔதͰϖύϘͰͷৼΓฦΓ
6.͘͞ΒΠϯλʔωοτ
30ɾ12͔͚ͯୈҰࢤͷ͘͞ΒΠϯλʔωοτʹब৬Ͱ͖ͨɾ৭ʑͱدΓಓͨ͠Γ͚ͨ͠Ͳɼͦͷ݁Ռଟ͘ͷ͜ͱΛֶΜͩɾ͖ͬͱ12લʹೖ͍ࣾͯͨ͠ΒࠓͷΑ͏ʹͳ͍ͬͯͳ͍ͩΖ͏ɾࣗͷٕज़ྗͰΞτϓοτΛੜΈग़ࣾ͠֎ʹӨڹΛ༩͍͑ͯ͘ɾͦΕ͕ɼݸਓͱͯ͘͠͞Βͱͯ͠ʹܨ͕͍ͬͯ͘ɾݸਓͱͯ͠ͷ͕ݸମతʹڧ͍৫ͱͯ͠ܗ͞Ε͍ͯ͘ɾ৫తʹΞτϓοτΛੜΈग़͠ΠϯύΫτΛ༩͑Δձࣾʹ͍ͨ͘͠͞ΒΠϯλʔωοτʹೖΕͨʂ
31ɾαʔόཧ͕͖ͨͩͩͬͨɾཹԑ͋ͬͯ15લʹϗεςΟϯάۀքʹඈͼࠐΜͩɾϗεςΟϯάۀքͷਓͨͪʹ৭ʑͳ໘Ͱҭ͍͍ͯͯͨͩͨɾϗεςΟϯάۀքʹΑͬͯΞΠσϯςΟςΟ͕ܗ͞ΕͨɾϗεςΟϯάۀքʹେ͖ͳԸͱײँͷؾ͕࣋ͪ͋ΔɾΑ͏ٕ͘ज़తʹԸΛฦ͍͚ͯ͠Δ͙Β͍ʹͳ͔ͬͨͳͱࣗըࣗࢍɾ͔ͭͯͷເͩͬͨ͘͞ΒΠϯλʔωοτΛ௨ͯࣾ͡ձʹՁΛؐݩ͠ɼӨڹΛ༩͍͖͍͑ͯͨશମΛৼΓฦΔͱ