Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
新卒がZabbix3でサーバ監視を冗長化!?H2Oにも移行した!
Search
miyazawaiti
September 14, 2017
Technology
0
21k
新卒がZabbix3でサーバ監視を冗長化!?H2Oにも移行した!
https://atnd.org/events/90730
miyazawaiti
September 14, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
Platform Engineering for Software Developers and Architects
syntasso
1
520
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
9
970
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
テストコード品質を高めるためにMutation Testingライブラリ・Strykerを実戦導入してみた話
ysknsid25
7
2.6k
【Pycon mini 東海 2024】Google Colaboratoryで試すVLM
kazuhitotakahashi
2
510
Why App Signing Matters for Your Android Apps - Android Bangkok Conference 2024
akexorcist
0
130
複雑なState管理からの脱却
sansantech
PRO
1
150
AIチャットボット開発への生成AI活用
ryomrt
0
170
【若手エンジニア応援LT会】ソフトウェアを学んできた私がインフラエンジニアを目指した理由
kazushi_ohata
0
150
強いチームと開発生産性
onk
PRO
34
11k
障害対応指揮の意思決定と情報共有における価値観 / Waroom Meetup #2
arthur1
5
480
SREが投資するAIOps ~ペアーズにおけるLLM for Developerへの取り組み~
takumiogawa
1
310
Featured
See All Featured
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
Adopting Sorbet at Scale
ufuk
73
9.1k
Why Our Code Smells
bkeepers
PRO
334
57k
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Done Done
chrislema
181
16k
Scaling GitHub
holman
458
140k
Become a Pro
speakerdeck
PRO
25
5k
Visualization
eitanlees
145
15k
A Philosophy of Restraint
colly
203
16k
Automating Front-end Workflow
addyosmani
1366
200k
Building an army of robots
kneath
302
43k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Transcript
৽ଔ͕ZABBIX3ͰαʔόࢹΛ Խ!?H2OʹҠߦͨ͠ʂ ITI GROUP INFRA SRE TEAM HIKARU MIYAZAWA
ɾ̏ɾ AGENDA 1. ࣗݾհ 2. ZABBIX3.0ͰࢹΛԽͨ͠ܦҢ 3. H2OΛ࠾༻ͯ͠Α͔ͬͨ͜ͱ 4. ZABBIX×H2O
5. ·ͱΊ
ɾ̏ɾ HIKARU MIYAZAWA ɾ2016/10ʙ2017/3 גࣜձࣾITIͷΠϯλʔϯɺ ΠϯϑϥͷۀΛܦݧ ɾ2017/4ʙࠓ·Ͱ גࣜձࣾITIೖࣾ ΠϯϑϥSREνʔϜ झຯɿυϥϜɺ݈߁ΦλΫɺήʔϜɺ
͖ͳςΩετΤσΟλɿSublime Text
ɾ̏ɾ ZABBIX3.0ͰࢹΛԽͨ͠ܦҢ ▸ ฐࣾࢹαʔόzabbix2.2ɺࣗࣾͰߏங,ӡ༻ ▸ 6݄ʹ͘͞Βͷϝϯςφϯε͕ൃද ▸ ϝϯςφϯεதࢹΛܧଓͰ͖ͳ͍ ▸ ͜ͷػձʹ͔ͤͬ͘ͳͷͰ2ମ੍ͰԽ
None
None
ɾ̏ɾ ZABBIX3.0 ▸ શແྉͰΦʔϓϯιʔεͷ ࢹιϑτΣΞ ‣ LAMPڥʴzabbix-serverͰಈ͘ ▸ ࢹରαʔόʹɺ zabbix-agentΛΠϯετʔϧ
▸ ฐࣾͷࢹରαʔόɿ200ʙ
ɾ̏ɾ ͖ʹࢹɺ௨ʂࣗ༝ʂ εΫϦʔϯͰՄࢹԽ →ϦΞϧλΠϜͰোঢ়گѲ SlackνϟοτϫʔΫͷ ௨ઃఆ؆୯
ɾ̏ɾ GMO ConoHa ͷ࠾༻ཧ༝ ▸ AWSଆͷোͷӨڹΛड͚ͳ͍ ▸ ZabbixͷεϖοΫཁ݅Λຬ͍ͨͭͭ҆͠ʂ(2GB,3ίΞ,1700ԁ/݄) ▸ DiskSSDͰ50GB
※ՃDiskߴ͍Ͱ͢(ຖ݄/2400ԁ)
ɾ̏ɾ OSͱϛυϧΣΞ ▸ CentOS6.9(Final) ▸ Apache2.2.15 ▸ MySQL5.7.19 ▸ PHP7.0.18
▸ zabbix-server3.0.10-1 ▸ (zabbix-agent3.0.10-1)
ZABBIXΠϯετʔϧ ؆୯ͳͷͰ ׂѪ͍͖ͤͯͨͩ͞·͢ʂ
ɾ̏ɾ طଘͷZABBIXࢹαʔόͷઃఆΛ৽αʔόʹө ▸ ZABBIXผόʔδϣϯҠߦ࣌ͷҙ ▸ ɾτϦΨʔͷ݅ࣜͷมߋ ▸ ɾෆ࠾༻ʹͳͬͨΞΠςϜ ▸ ɾো࣌ΞΫγϣϯͷઃఆ͕exportग़དྷͳ͍
▸ ɾexportͨ͠xmlϑΝΠϧॻ͖͕͑ඞཁ
ͦͯ͠͏·͘ ͍ͬͨͷ͔ʂʁ
▸ ͘͞ΒͷϝϯςφϯεલʹԽྃ ▸ ΄ͱΜͲ͋ͩͪΜ͞Μ͕Γ·ͨ͠ ▸ ݟ͍͑ͯͨ՝ ▸ DBͷఆظతͳόοΫΞοϓ ▸ zabbixDB͕ੜ͖͍ͯΕ༰қʹ෮چͰ͖Δɻ
ɾ̏ɾ ॕʂࢹԽʂʂ
ɾ̏ɾ ϝϯςφϯε3લͷҰίϚ ▸ ▸ ɹɹɹɹɹɹɹɹɹɹɹʮఆظతʹDBΛόοΫΞοϓ͢ΔγΣϧ,ॻ͚·ͨ͠ʂʯ ▸ ▸ ɹ͋ͩͪΜ͞Μʮςετͯ͠Έͨʁ ɹɹɹɹɹɹɹɹͪΐͬͱ֬ೝͯ͠ΈΑ͏ʯ(ΧλΧλ)
▸ mysqldump -u user -x -p --all-databases < mysqldump.sql
Μʁ
—all-databases < mysqldump.sql ͋……
None
ɾ̏ɾ ͓͔Γ͚ͨͩΖ͏͔ ▸ mysqldump -u user -x -p --all-databases <
mysqldump.sql ▸ ۭͬΆΛͿͪࠐΉ ۭͬΆ ZABBIXͷDB
None
ɾ̏ɾ ຊདྷ͜Ε ▸ mysqldump -u user -x -p --all-databases >
mysqldump.sql ۭͬΆ ZABBIXͷDB
࣍ͷɺ͋ͩͪΜ͞Μ͕ ޕલதͰ͠·ͨ͠ɻ(ૣ͗͢) (ࣗ༗څͰͨ͠ww)
ɾ̏ɾ εΫϦʔϯͷ࡞ ▸ ཁɿো࣌ʹࢹσʔλΛάϥϑͰ͙͢ʹݟ͍ͨʂ ▸ Γ·͢ʂͤͯԼ͍͞ʂ͋Εʁ ▸ ฐࣾͷࢹରϗετ200Ҏ্ ▸ 1ϗετʹ͖ͭ12ݸͷࢹ߲
▸ खಈͰϙνϙν͢Δ߹ ▸ 200ϗετ×12߲×4ΫϦοΫʹ9600…Ұສճͷ࡞ۀ…
ɾ̏ɾ ਖ਼͠ΜͲ͍…
ɾ̏ɾ ޮΑ͘Ζ͏ʂ
ɾ̏ɾ ZABBIXͷઃఆIMPORT/EXPORTͰ͖Δ ZabbixͷઃఆʢҰ෦ʣ ɹɹɹɹɹɹɹɹɹɹɹɾάϧʔϓɹɹɹɹɹ ɹɹɹɹɹɹɹɹɹɹɹɹɹɾςϯϓϨʔτ ɹɹɹɹɹɹɹɹɹɹɾϗετ ɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɾωοτϫʔΫϚοϓ ɹɹɹɹɹɹɹɹɹɹɹɾΠϝʔδ ɹɹɹɹɹɹɹɹɹɹɹɹɾεΫϦʔϯ XMLorJSONܗࣜ
ɾ̏ɾ εΫϦʔϯ͜Μͳײ͡Ͱ͢
ɾ̏ɾ εΫϦʔϯͷXMLͱ࣮ࡍͷWEB্
ɾ̏ɾ XMLϑΝΠϧΛࣗಈੜ͢ΔSHELLΛ࡞
͜ ͜ Ͱ͕ ʂ
ɾ̏ɾ ͍ͬͦ͘ ▸ ϦΞϧλΠϜͰߋ৽͞ΕΔ120ݸͷάϥϑͷදࣔͬͺΓ ॏ͔ͬͨɻ
ͱͳΔͱNGINX ͕͍͍ͷ͔ʁ
▸ ݩDeNAͷԞҰึࢯ͕։ൃɻ ▸ HTTP/2ʹରԠͨ͠രͷWEBαʔόʔͰ͋Δ ▸ ͋ͩͪΜ͞Μਪ͠(ΏΔ;ΘΩϟϯύʔ͞Μ) ɾ̏ɾ H2Oͷ࠾༻
ɾ̏ɾ HTTP/1.1ͷͲ͕͜ѱ͍ͷʁ ‣ ʮHTTPύΠϓϥΠϯʯ ˠલճϦΫΤετͷྃΛͨͣʹ࣍ͷϦΫΤετΛૹ৴͢Δ͜ͱ͕Մೳ ‣ ʮαʔόʔϦΫΤετͷॱ൪௨ΓʹϨεϙϯεΛฦ͞ͳ͚ΕͳΒͳ͍ʯ →݁ہॱ൪͕ͪൃੜ͠ɺ Ԇ͍ͯͨ͠ɻ
ɾ̏ɾ HTTP/2ͰԿ͕มΘΔ͔ ‣ ଟॏԽ ɾಉ࣌ʹ100Ҏ্ͷϦΫΤετΛൃߦՄೳ ɾλΠϛϯάɺϨεϙϯεͷॱং͕ؔͳ͍ ɾෳฒྻॲཧ →HTTP/1.1Ͱͷॱ൪͕ͪͳ͍ ‣ ϔομѹॖ(HTTP/2ͷϔομେ͖͍300~500B)
ྫʣ100ճϦΫΤετ͕དྷͯɺຖճ300όΠτͷ ϔομΛૹΒͳͯ͘ࡁΉ →খ͞ͳϦΫΤετΛԿճૹͬͯ͘ͳΒͳ͍
ɾ̏ɾ ͦΜͳHTTP/2Λ࠷େݶʹ׆͔ͤΔ͔ ▸ ࣮HTTP/2ʹରԠ͔ͨ͠Βͱ͍ͬͯɺ αʔόଆͷઃఆ͕ͪΌΜͱ͍ͯ͠ͳ͍ͱ ͍͍ͱ͜ΖΛ׆͔ͤͳ͍ ▸ྫ͑…
ɾ̏ɾ ༏ઌ੍ޚ͕͍͢͝ ▸ ༏ઌ੍ޚ WEBϖʔδΛදࣔ͢ΔͷʹඞཁͳϑΝΠϧΛͲͷॱ൪Ͱ༏ઌతʹಡΈࠐΉ͔Λ͖Ί ͓ͯ͘ ᶃHTMLᶄCSSᶅJSᶆը૾ᶇը૾ᶈը૾ ▸ ΫϥΠΞϯτଆ →Firefoxݡ͍
→Chrome͋Δ͚Ͳશવ׆͔͍ͤͯͳ͍ Safari,IE-Edge,ͦͷଞͷϒϥβ༏ઌͷ֓೦͢Βແ͠ɻɻ αʔόଆͰͳΜͱ͔͢Δɻɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹɹ
ɾ̏ɾ ༏ઌ੍ޚ͕͍͢͝ ▸ ʮhttp2-reprioritize-blocking-assetsʯ ▸ CSSͱJSΛ࠷༏ઌͰϨεϙϯεΛฦ͢ ▸ HTMLΛฦ͢ʢ͜ͷ࣌ͰɺWEBϖʔδͷϨϯμϦϯά͕ ։࢝Ͱ͖Δʣ ▸
ը૾Λฦ͢ʢฒྻॲཧͳͷͰॱ൪ΛؾʹͤͣҰؾʹૹΔʣ ▸ ※nginxͰؤுΕಉ͡Α͏ͳઃఆ͕ग़དྷΔΒ͍͠
ɾ̏ɾ αʔόϓογϡ ▸ αʔόϓογϡ ▸ ϦΫΤετΛઌಡΈͯ͠ඞཁͳϑΝΠϧΛૹΔ ྫʣHTMLͷϦΫΤετड͚ͨΒCSS·ͱΊͯૹΔ ▸ Ωϟογϡ༗ແΛ֬ೝͰ͖ΔͷͰɺແବʹૹΔ͜ͱͳ͍
Ͳ͏ͤઃఆ͢Δͷ ΊΜͲ͍͘͞Μ͡Ό Ζʁ
ɾ̏ɾ ͳΜͱνϡʔχϯάσϑΥϧτͰON ▸ ී௨ʹ্ཱͪ͛ͨॠ͔ؒΒരʂ ▸ νϡʔχϯάʹ͔͚ͯͨ࣌ؒΛଞͷλε Ϋʹ͑Δ
ɾ̏ɾ APACHE ઃఆϑΝΠϧ
ɾ̏ɾ H2O ઃఆϑΝΠϧ ▸ h2o.conf
ɾ̏ɾ ▸ zabbix.conf
ɾ̏ɾ ෛՙςετ ▸ AWS EC2Πϯελϯεt2.micro ▸ Apache2.4(νϡʔχϯάσϑΥϧτ) ▸ H2O2.2(νϡʔχϯάσϑΥϧτ) ▸
30ສϦΫΤετɺಉ࣌ଓ1000ϢʔβͰݕূɻ ▸ ςετπʔϧGoad
ɾ̏ɾ ෛՙςετ݁Ռ ▸ Apache 13.65ඵͰϑϦʔζ ▸ H2O 20ඵͰશϦΫΤετΛࡹ͘
ɾ̏ɾ ෛՙςετ݁Ռ Apache-2.4 H2O-2.2 300,000Requests 300,000Requests 1,000user 1,000user 1m3.65s 20.0s
ɾ̏ɾ ෛՙςετ݁Ռ Apache-2.4 H2O-2.2 300,000Requests 300,000Requests 1,000user 1,000user 1m3.65s 20.0s
Freeze… Done!
࣮ࡍʹH2Oͷ ͢͝͞Λ͓ݟͤ͠·͢
ɾ̏ɾ H2O×HTTP/2ͷ͗͢͢͝Δฒྻॲཧೳྗ
ɾ̏ɾ ZABBIX3.0×H2O×PHP7.0 ▸ H2O →ฒྻॲཧͰૣ͍ɺ࠷ॳ͔Βνϡʔχϯά͕͞ΕͯΔ Մಡੑͷߴ͍ઃఆϑΝΠϧ ▸ PHP7.0ૣ͍ ▸ ฐࣾͷ୲αʔϏεʹಋೖ͢Δ͖͔͚ͬʹͳͬͨɻ
▸ JoinsJob(δϣΠϯζδϣϒ),ITϓϩδΣΫτ໊ؑ,kiii(डୗ)
ɾ̏ɾ ·ͱΊ ▸ ࢹࣗࣾͰߏங ˠίετେ෯μϯˠ͔͠͠ӡ༻͕େม ▸ ࢹAWSҎ֎ͰԽ͢Δͷ͕͓͢͢Ί ˠAWSଆͷωοτϫʔΫো͕ى͖ͯࠔΔ͜ͱͳ͍ ▸ ͜Ε͔ΒͷWEBαʔόH2OʹมΘ͍͖ͬͯͦ͏
▸ Prometheusʹઓ͍ͨ͠
͝ਗ਼ௌ ͋Γ͕ͱ͏͍͟͝· ͨ͠ʂ